Từ ý định đến cơ sở hạ tầng: Di chuyển dựa trên tác nhân sang GKE

1. Giới thiệu

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng một tác nhân AI để tự động thực hiện quy trình di chuyển cơ sở hạ tầng phức tạp. Thay vì viết tệp kê khai Kubernetes theo cách thủ công hoặc chạy các tập lệnh tự động hoá, bạn sẽ thể hiện ý định của mình bằng ngôn ngữ tự nhiên và tác nhân sẽ sử dụng Giao thức ngữ cảnh mô hình (MCP) và máy chủ Gemini Cloud Assist để tạo và áp dụng cấu hình cho bạn.

Các chức năng của máy chủ MCP GCA

Máy chủ MCP GCA cung cấp một số công cụ chuyên dụng cho tác nhân:

  • ask_cloud_assist: Đây là giao diện chính để được hỗ trợ về Google Cloud Platform và cho tác nhân Gemini Cloud Assist. Bạn có thể truy cập vào mọi chức năng của Gemini Cloud Assist thông qua công cụ này và công cụ này bao gồm cả chức năng của các công cụ MCP khác.
  • design_infra: Hỗ trợ quy trình thiết kế và xây dựng cơ sở hạ tầng trên Google Cloud Platform.
  • investigate_issue: Tính năng này hỗ trợ quy trình khắc phục sự cố trong Google Cloud. Bạn có thể khắc phục sự cố nhanh chóng hoặc khắc phục sự cố chuyên sâu hơn thông qua tài nguyên Điều tra.
  • invoke_operation: API này hỗ trợ quy trình tạo, cập nhật và xoá tài nguyên trong Google Cloud. Công cụ này chỉ hoạt động khi bạn bật tính năng Thao tác của đặc vụ. Bạn chỉ có thể thực hiện các thao tác ghi trong Gemini Cloud Assist thông qua việc gọi công cụ này.
  • optimize_costs: Tính năng này hỗ trợ quy trình phân tích, theo dõi và tối ưu hoá chi phí trên Google Cloud. Công cụ này cung cấp thông tin chi tiết về mức chi tiêu và xác định các cơ hội để nâng cao hiệu quả chi phí bằng cách tìm ra những tài nguyên không hoạt động hoặc chưa được sử dụng hết.

Bạn sẽ bắt đầu bằng một môi trường được chuẩn bị trước với một cụm GKE và một mô hình đã tải xuống. Sau đó, bạn sẽ dùng gemini-cli để nhắc tác nhân di chuyển một khối lượng công việc từ Cloud Run sang GKE và khởi động một phiên bản suy luận Gemma bằng vLLM bằng cách sử dụng mô hình theo giai đoạn trong vùng lưu trữ.

Bạn sẽ thực hiện

  • Giai đoạn một cụm GKE và tải một mô hình Gemma xuống bằng Terraform.
  • Định cấu hình gemini-cli bằng các quy tắc của tác nhân và máy chủ MCP.
  • Sử dụng một câu lệnh cụ thể bằng ngôn ngữ tự nhiên để hướng dẫn tác nhân thực hiện toàn bộ quá trình di chuyển và triển khai.
  • Xác minh quá trình triển khai do nhân viên hỗ trợ thực hiện.

Bạn cần có

  • Một trình duyệt web như Chrome.
  • Một dự án trên Google Cloud đã bật tính năng thanh toán.
  • Mã thông báo Hugging Face (bắt buộc để tải mô hình Gemma xuống trong giai đoạn dàn dựng).

Lớp học lập trình này dành cho nhà phát triển ở mọi cấp độ, kể cả người mới bắt đầu.

Thời lượng ước tính: 45 – 60 phút.

2. Trước khi bắt đầu

Tạo hoặc chọn một dự án trên Google Cloud

  1. Trong Google Cloud Console, hãy chọn hoặc tạo một dự án trên Google Cloud.
  2. Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên Cloud.

Khởi động Cloud Shell

  1. Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển Cloud.
  2. Xác minh hoạt động xác thực:
gcloud auth list
  1. Xác nhận dự án của bạn:
gcloud config get project
  1. Đặt nếu cần:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

Bật API

Chạy lệnh này để bật tất cả các API bắt buộc:

gcloud services enable \
  run.googleapis.com \
  container.googleapis.com \
  aiplatform.googleapis.com \
  compute.googleapis.com \
  cloudbuild.googleapis.com \
  cloudresourcemanager.googleapis.com

Ngoài ra, hãy bật dịch vụ MCP của Gemini Cloud Assist:

gcloud beta services mcp enable geminicloudassist.googleapis.com

3. Chuẩn bị môi trường

Ở bước này, bạn sẽ chuẩn bị môi trường bằng cách tạo một hình ảnh chatbot tuỳ chỉnh, tạo cụm GKE và tải mô hình Gemma xuống một vùng lưu trữ Cloud Storage.

Thông thường, các tổ chức bắt đầu bằng Gemini API nhưng sau đó quyết định di chuyển sang mô hình tự lưu trữ để có quyền kiểm soát, tuỳ chỉnh nhiều hơn hoặc sử dụng một phiên bản được tinh chỉnh dành riêng cho doanh nghiệp của họ. Trong lớp học lập trình này, chúng ta sẽ sử dụng Gemma làm ví dụ về một mô hình mở mạnh mẽ mà bạn có thể tự lưu trữ trên GKE. Việc dàn xếp trong một bộ chứa Cloud Storage giúp cụm của chúng tôi có thể sử dụng.

Tải tài sản minh hoạ xuống

Sao chép thư mục cụ thể trong kho lưu trữ GitHub.

git clone --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/next-26-keynotes.git
cd next-26-keynotes
git sparse-checkout set devkey/intent-to-infrastructure
cd devkey/intent-to-infrastructure

Tạo hình ảnh cho chatbot

Trước khi cung cấp cơ sở hạ tầng, bạn cần tạo hình ảnh chatbot tuỳ chỉnh và đẩy hình ảnh đó vào Artifact Registry. Cloud Run sẽ sử dụng hình ảnh này trong bước tiếp theo.

  1. Tạo một kho lưu trữ Artifact Registry có tên chatbot-repo trong asia-southeast1:
    gcloud artifacts repositories create chatbot-repo \
        --repository-format=docker \
        --location=asia-southeast1 \
        --description="Chatbot Docker repository"
    
  2. Chuyển đến thư mục src:
    cd src
    
  3. Tạo và đẩy hình ảnh bằng Cloud Build:
    gcloud builds submit --config cloudbuild.yaml \
        --substitutions=_LOCATION="asia-southeast1",_REPOSITORY_ID="chatbot-repo",_IMAGE_NAME="chatbot",_IMAGE_TAG="latest"
    
  4. Chuyển về thư mục gốc của dự án:
    cd ..
    

Cung cấp cơ sở hạ tầng cơ bản

Chuyển đến thư mục terraform rồi chạy Bước 1 để tạo cụm GKE.

cd terraform
./deploy.sh demo step1 apply

Tập lệnh này sử dụng Terraform để cung cấp cơ sở hạ tầng cơ bản. Thao tác này sẽ tạo VPC, cụm GKE, tài khoản dịch vụ và triển khai dịch vụ Cloud Run ban đầu bằng hình ảnh chatbot mà bạn vừa tạo.

Trong quá trình này, Terraform sẽ hiển thị kế hoạch và nhắc bạn xác nhận. Bạn cần nhập yes để phê duyệt và tiếp tục:

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

Toàn bộ quá trình có thể mất từ 15 đến 20 phút để hoàn tất.

Sau khi quá trình triển khai hoàn tất, hãy tìm cloud_run_url trong đầu ra Terraform được in trong thiết bị đầu cuối. Nhấp vào URL để mở chatbot trong trình duyệt. Giờ đây, bạn có thể tương tác với chatbot này. Chatbot này hiện đang chạy trên Gemini 2.5 Flash.

Tải mô hình xuống

Ở bước này, chúng ta sẽ dàn dựng mô hình Gemma trong một bộ chứa Cloud Storage. Mặc dù chúng tôi bắt đầu với Gemini API được quản lý, nhưng bạn có thể chọn chạy một mô hình được tinh chỉnh tuỳ chỉnh hoặc một mô hình nguồn mở tuỳ chỉnh khác. Ngoài ra, bạn có thể chỉ muốn giữ cho quá trình thực thi mô hình được quản lý trong cụm của riêng bạn vì lý do bảo mật hoặc tuân thủ. Việc dàn dựng mô hình tại đây sẽ giúp chúng ta chuẩn bị cho quá trình di chuyển từ Gemini API được quản lý sang mô hình tự lưu trữ trên GKE.

Chạy Bước 2 để tải mô hình Gemma xuống vùng lưu trữ GCS của bạn. Bạn sẽ cần có mã thông báo Hugging Face. Quy trình này chạy trên cụm GKE của bạn và sẽ mất khoảng 15 phút (hoặc lâu hơn tuỳ thuộc vào lưu lượng truy cập) để tải mô hình xuống từ Hugging Face và tải mô hình đó lên bộ chứa của bạn để sử dụng sau này.

./deploy.sh demo step2 apply -var="hf_token=<YOUR_HF_TOKEN>"

Lệnh Terraform này sẽ tạo một Kubernetes Job trên cụm GKE để xử lý quá trình tải xuống. Tập lệnh Terraform sẽ vẫn hoạt động miễn là lệnh đang chạy.

Nếu muốn theo dõi tiến trình từ một phiên shell khác hoặc xác minh rằng tiến trình đã hoàn tất sau khi chạy, bạn có thể chạy:

kubectl get jobs

4. Thiết lập Agent và MCP

Bây giờ, chúng ta sẽ định cấu hình tác nhân sẽ thực hiện quá trình di chuyển. Chúng ta sẽ sử dụng gemini-cli và trang bị cho nó các quy tắc để tương tác với môi trường.

Máy chủ MCP của Gemini Cloud Assist (GCA) là một thành phần quan trọng trong quy trình này. Công cụ này đóng vai trò là cầu nối giữa tác nhân phía máy khách và Google Cloud, cho phép tác nhân thực hiện các hoạt động điều tra, tạo kế hoạch (chẳng hạn như các lệnh gcloudkubectl) và áp dụng các thay đổi trực tiếp cho tài nguyên trong dự án trên đám mây của bạn.

Đảm bảo bạn đã được cấp một vai trò cho phép gọi các công cụ MCP, chẳng hạn như roles/geminicloudassist.user. Nếu sau này bạn gặp vấn đề về quyền, hãy tham khảo tài liệu về cách định cấu hình vai trò IAM cho Cloud Assist.

Để biết hướng dẫn chi tiết hơn về cách tích hợp Gemini Cloud Assist với các công cụ của bên thứ ba, hãy xem tài liệu Tích hợp Gemini Cloud Assist với các công cụ của bên thứ ba bằng MCP.

Cài đặt tiện ích Gemini Cloud Assist

  1. Xác thực thông qua Thông tin xác thực mặc định của ứng dụng (ADC) bằng cách chạy:
gcloud auth application-default login
  1. Cài đặt máy chủ MCP dưới dạng một tiện ích của Gemini CLI:
gemini extensions install https://github.com/GoogleCloudPlatform/gemini-cloud-assist-mcp
  1. Xác minh rằng bạn đã cài đặt thành công kỹ năng: Khởi động gemini và chạy lệnh sau để liệt kê các kỹ năng đang hoạt động:
/skills list

Xác minh rằng bạn thấy kỹ năng liên quan đến Gemini Cloud Assist trong danh sách. Nhập exit để quay lại dấu nhắc Cloud Shell.

Bật tính năng Mutations trong Gemini Cloud Assist

Để cho phép tác nhân áp dụng các thay đổi cho cơ sở hạ tầng của bạn, bạn phải bật các tính năng biến đổi trong giao diện người dùng Gemini Cloud Assist.

  1. Mở thanh bên của Gemini Assist bằng cách nhấp vào biểu trưng Gemini ở trên cùng bên phải của cửa sổ Google Cloud Console.
    Thanh bên của Gemini Assist
  2. Bật mọi API cần thiết có trong thanh bên.
    Bật API
  3. Chuyển đến phần cài đặt trong thanh bên rồi đánh dấu vào "Cho phép Cloud Assist thực hiện các hành động".
    Chuyển đến phần Cài đặt
    Bật tính năng Thực thi

Định cấu hình quy tắc của tác nhân

Thư mục dự án có một tệp gemini.md tuỳ chỉnh trong thư mục gốc (intent-to-infrastructure). Tệp này chứa các quy tắc hướng dẫn tác nhân sử dụng đúng công cụ.

Xác minh rằng tệp này có trong thư mục của bạn. Bạn nên chạy gemini từ thư mục này để có quyền truy cập vào các tệp Terraform, mã xử lý ứng dụng và tệp quy tắc gemini.md.

5. Bước 1: Di chuyển Chatbot sang GKE

Bây giờ, chúng ta sẽ dùng tác nhân này để thực hiện phần đầu tiên của quá trình di chuyển: di chuyển ứng dụng chatbot từ Cloud Run sang GKE.

  1. Bắt đầu gemini từ thư mục gốc của thư mục intent-to-infrastructure (đảm bảo thư mục này có quyền truy cập vào gemini.md).
  2. Trước tiên, hãy yêu cầu tác nhân khám phá dự án để hiểu rõ ứng dụng và cơ sở hạ tầng. Nhập câu lệnh sau:
Tell me about the app and infrastructure in this project

Tác nhân này sẽ đọc các tệp trong thư mục và cung cấp cho bạn thông tin tổng quan về ứng dụng chatbot và cấu hình Terraform.

  1. Bây giờ, hãy dùng câu lệnh sau để hướng dẫn tác nhân thực hiện quy trình di chuyển.
Convert my Cloud Run service to the equivalent on GKE.
  1. Nhân viên hỗ trợ nên:
    • Sử dụng công cụ ask_cloud_assist để hiểu rõ bối cảnh.
    • Sử dụng công cụ design_infra để tạo YAML Kubernetes cho ứng dụng chatbot.
    • Hỏi: "Bạn có muốn tiếp tục áp dụng cấu hình này không?"
  1. Phản hồi bằng yes để áp dụng các thay đổi. Tác nhân này sẽ dùng invoke_operation để triển khai tài nguyên vào cụm GKE của bạn.

Bước xác minh 1

  1. Lấy danh sách dịch vụ:
kubectl get services

Bạn sẽ thấy một dịch vụ đang chạy cho ứng dụng chatbot.

  1. Chuyển tiếp cổng dịch vụ để truy cập vào chatbot:
kubectl port-forward svc/chatbot-service 8080:80

(Lưu ý: Thay thế

chatbot-service

kèm theo tên thực tế của dịch vụ do nhân viên hỗ trợ tạo nếu tên đó khác).

Kiểm thử chatbot. Ứng dụng này vẫn sẽ phản hồi bằng Gemini API (như đã được định cấu hình trong Cloud Run).

6. Bước 2: Triển khai Gemma thông qua vLLM và Reconnect

Trong bước này, chúng ta sẽ dùng tác nhân để triển khai một mô hình Gemma tự lưu trữ trên GKE và kết nối lại ứng dụng của mình với mô hình đó.

  1. Trong cùng một phiên gemini, hãy nhập câu lệnh sau:
Now that the chatbot is on GKE, add a vLLM service running the Gemma model from my storage bucket in the same cluster. Make sure to give the vLLM service at least 10 minutes to start up to account for loading the large model. Then, update the chatbot service to reference this vLLM service instead of the Gemini API.
  1. Nhân viên hỗ trợ nên:
    • Sử dụng design_infra để tạo YAML cho việc triển khai và dịch vụ vLLM.
    • Cập nhật tệp YAML triển khai chatbot để thay đổi các biến môi trường (hoặc cấu hình) nhằm trỏ đến dịch vụ vLLM mới thay vì Gemini API.
    • Yêu cầu xác nhận để áp dụng các thay đổi.
  2. Phản hồi bằng yes để áp dụng các thay đổi.

Xác minh bước 2

  1. Lấy lại danh sách các pod:
kubectl get pods

Lúc này, bạn sẽ thấy các nhóm cho cả chatbot và vLLM.

  1. Sau khi vLLM sẵn sàng, hãy chuyển tiếp cổng dịch vụ chatbot một lần nữa nếu cần và kiểm thử. Giờ đây, ứng dụng sẽ được hỗ trợ bởi mô hình Gemma tự lưu trữ của bạn!

7. Dọn dẹp

Để tránh các khoản phí phát sinh cho tài khoản Google Cloud của bạn, hãy xoá các tài nguyên đã tạo trong lớp học lập trình này.

Chạy lệnh huỷ cho cơ sở hạ tầng cơ bản:

cd terraform
./deploy.sh demo step1 destroy

Ngoài ra, bạn có thể gỡ cài đặt hoặc tắt tiện ích Gemini Cloud Assist nếu muốn dọn dẹp môi trường cục bộ. Sử dụng gemini extensions uninstall hoặc gemini extensions disable, theo sau là tên tiện ích.

8. Bước tiếp theo

Để tìm hiểu thêm về Gemini Cloud Assist và các tính năng nâng cao, hãy tham khảo những tài nguyên sau:

9. Xin chúc mừng

Xin chúc mừng! Bạn đã di chuyển thành công một khối lượng công việc sang GKE bằng ngôn ngữ tự nhiên và MCP.