|
1 | 1 | --- |
2 | | -title: Build a mixed-placement AI shopping assistant on GKE with Axion |
3 | | - |
4 | | -draft: true |
5 | | -cascade: |
6 | | - draft: true |
| 2 | +title: Deploy a mixed-placement AI shopping assistant on Google Kubernetes Engine with Axion-based compute |
7 | 3 |
|
8 | 4 | minutes_to_complete: 120 |
9 | | -description: Deploy and validate an Online Boutique storefront on GKE, add an AI shopping assistant, and compare N4A and C4A placement for the assistant tier. |
10 | | -who_is_this_for: This is an advanced topic for cloud developers, platform engineers, and site reliability engineers who run applications on Google Kubernetes Engine and want to place application tiers on the Axion-based machine series that fits each workload. |
| 5 | +description: Deploy and validate an Online Boutique storefront on GKE on Arm, add an AI shopping assistant, and compare N4A and C4A placement for the assistant tier. |
| 6 | +who_is_this_for: This is an advanced topic for cloud developers, platform engineers, and site reliability engineers who run applications on Google Kubernetes Engine (GKE) and want to place application tiers on the Axion-based machine series that fits each workload. |
11 | 7 |
|
12 | 8 | learning_objectives: |
13 | | - - Create and validate an Online Boutique storefront on an N4A node pool |
| 9 | + - Deploy and validate an Online Boutique storefront on an N4A node pool |
14 | 10 | - Build and push a `linux/arm64` container image, then add the AI shopping assistant to the storefront |
15 | 11 | - Use Kustomize overlays to run the assistant on N4A first, then move it to C4A |
16 | 12 | - Capture and compare benchmark summaries for the same assistant workload on N4A and C4A |
17 | 13 |
|
18 | 14 | prerequisites: |
19 | 15 | - A [Google Cloud account](https://console.cloud.google.com/) with billing enabled |
20 | | - - Access to a [GKE Standard cluster with Arm node pools](https://cloud.google.com/kubernetes-engine/docs/how-to/create-arm-clusters-nodes), including N4A and C4A node pools |
21 | | - - Basic familiarity with Docker, Kubernetes, Kustomize, and Google Kubernetes Engine |
| 16 | + - Access to a [GKE Standard cluster with Arm node pools](https://cloud.google.com/kubernetes-engine/docs/how-to/create-arm-clusters-nodes), including N4A and C4A node pools, with the Kubernetes Metrics API enabled |
| 17 | + - Permissions to get cluster credentials, deploy Kubernetes workloads and services, read pod logs and metrics, and create or use an Artifact Registry Docker repository |
| 18 | + - Cloud Shell or a Linux or macOS administrative workstation with Docker Buildx, `gcloud`, `kubectl`, `git`, `curl`, Python 3.10 or later, and `jq` |
| 19 | + - Basic familiarity with Docker, Kubernetes, Kustomize, and GKE |
| 20 | + |
| 21 | +# START generated_summary_faq |
| 22 | +generated_summary_faq: |
| 23 | + template_version: summary-faq-v3 |
| 24 | + generated_at: '2026-07-13T19:30:38Z' |
| 25 | + generator: ai |
| 26 | + ai_assisted: true |
| 27 | + ai_review_required: true |
| 28 | + model: gpt-5 |
| 29 | + prompt_template: summary-faq-v3 |
| 30 | + source_hash: cdd45953e2784d3a6b0894fac600b6b03048b514493d6526709908f3049595cc |
| 31 | + summary_generated_at: '2026-07-13T19:30:38Z' |
| 32 | + summary_source_hash: cdd45953e2784d3a6b0894fac600b6b03048b514493d6526709908f3049595cc |
| 33 | + faq_generated_at: '2026-07-13T19:30:38Z' |
| 34 | + faq_source_hash: cdd45953e2784d3a6b0894fac600b6b03048b514493d6526709908f3049595cc |
| 35 | + summary: >- |
| 36 | + You'll deploy the Online Boutique storefront on Google Kubernetes |
| 37 | + Engine using Arm-based Axion nodes, validate a baseline on N4A, and add a gRPC-driven AI shopping |
| 38 | + assistant. You'll build and push a single `linux/arm64` container image to Artifact Registry, then |
| 39 | + use Kustomize overlays to run the assistant on N4A before moving only that tier to C4A. After |
| 40 | + reviewing the assistant’s source code and runtime dependencies, you'll confirm scheduling on the intended |
| 41 | + node pool and capture benchmark summaries to compare the same assistant workload across N4A |
| 42 | + and C4A. You'll finish with a mixed-placement deployment where the steady storefront remains |
| 43 | + on N4A and the burstier assistant runs on the selected pool. |
| 44 | + faqs: |
| 45 | + - question: How do I verify the cluster has both N4A and C4A node pools before I start? |
| 46 | + answer: >- |
| 47 | + Use `kubectl` to list nodes and confirm that both pools are present. The workflow assumes |
| 48 | + an `arm64` GKE Standard cluster with separate N4A and C4A pools. |
| 49 | + - question: What result should I expect after I apply the baseline overlay? |
| 50 | + answer: >- |
| 51 | + The storefront runs on N4A, and `shoppingassistantservice` isn't present. This is intentional |
| 52 | + because you'll build and deploy the assistant in later steps. |
| 53 | + - question: I've run this path before. What should I remove before I recreate the baseline? |
| 54 | + answer: >- |
| 55 | + Delete any existing assistant deployment, related service, and service account so the baseline reflects a |
| 56 | + storefront without the assistant. |
| 57 | + - question: Do I need different container images for N4A and C4A when I deploy the assistant? |
| 58 | + answer: >- |
| 59 | + No. You'll build one `linux/arm64` image targeted for Axion that'll run in either placement. |
| 60 | + - question: How do I confirm the assistant is scheduled on the intended node pool when I switch |
| 61 | + from N4A to C4A? |
| 62 | + answer: >- |
| 63 | + Check the node assigned to the assistant pod and verify it matches the target pool after |
| 64 | + applying the appropriate Kustomize overlay. Inspect pod logs and service reachability to |
| 65 | + confirm the tier is healthy before capturing benchmarks. |
| 66 | +# END generated_summary_faq |
22 | 67 |
|
23 | 68 | author: |
24 | 69 | - Rani Chowdary Mandepudi |
25 | 70 |
|
26 | | -generate_summary_faq: true |
| 71 | +generate_summary_faq: false |
27 | 72 | rerun_summary: false |
28 | 73 | rerun_faqs: false |
29 | 74 |
|
@@ -78,3 +123,4 @@ weight: 1 # _index.md always has weight of 1 to order corr |
78 | 123 | layout: "learningpathall" # All files under learning paths have this same wrapper |
79 | 124 | learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. |
80 | 125 | --- |
| 126 | + |
0 commit comments