Ngân hàng đề — Google Cloud Professional Cloud DevOps Engineer
Tìm thấy 269 câu.
- A Grant the team members the IAM role of logging.configWriter on Cloud IAM.
- B Configure Access Context Manager to allow only these members to export logs.
- C Create and grant a custom IAM role with the permissions logging.sinks.list and logging.sink.get.
- D Create an Organizational Policy in Cloud IAM to allow only these members to create log exports.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc lĩnh vực Google Cloud Logging (không phải AWS như mô tả ban đầu, mà là dịch vụ Observability Logging của Google Cloud Platform - GCP). Nội dung mô tả tình huống: Bạn đang quản lý một ứng dụng ghi logs vào Observability Logging (dịch vụ Logging trong Google Cloud để thu thập, lưu trữ và phân tích logs). Nhiệm vụ là cấp quyền cho một số thành viên team có khả năng export logs (xuất logs ra các đích như Cloud Storage, BigQuery, Pub/Sub hoặc bên ngoài).
🔍 Yêu cầu chính: Export logs trong GCP Logging yêu cầu tạo log sinks (bộ sink logs) để định tuyến logs đến đích export. Quyền cần thiết bao gồm logging.sinks.create, logging.sinks.update, logging.sinks.delete (thuộc predefined role Logging Config Writer). Câu hỏi kiểm tra kiến thức về IAM roles để grant quyền chính xác, tránh các cách không phù hợp như policy constraints hoặc quyền read-only.
⚠️ Lưu ý cập nhật (đến 2026): Theo tài liệu GCP mới nhất (Logging v2 API từ 2023-2026), role roles/logging.configWriter vẫn là cách chuẩn để grant quyền tạo/edit sinks cho export logs. Không có thay đổi lớn; export logs vẫn dựa trên sinks IAM-based.
✅ Đáp án đúng
Grant the team members the IAM role of logging.configWriter on Cloud IAM.
Lý do lựa chọn:
- Role predefined logging.configWriter (tương đương
roles/logging.configWriter) cấp đầy đủ quyền để tạo, cập nhật và quản lý log sinks – yếu tố bắt buộc để export logs. - Bao gồm các permission cốt lõi:
logging.sinks.create,logging.sinks.update,logging.sinks.get,logging.sinks.list,logging.sinks.delete. - Áp dụng trực tiếp trên Cloud IAM cho project/folder/organization, an toàn và least privilege cho team members chỉ cần export logs.
- 🛠️ Đây là best practice theo Google Cloud: Sử dụng predefined roles thay vì custom trừ khi cần tinh chỉnh.
📋 Giải thích tất cả các phương án (đúng và sai)
-
✅ Grant the team members the IAM role of logging.configWriter on Cloud IAM.
🟢 Đúng: Như giải thích trên, role này cung cấp quyền đầy đủ để tạo sinks export logs. Phù hợp nhất, đơn giản và tuân thủ nguyên tắc IAM least privilege. -
❌ Configure Access Context Manager to allow only these members to export logs.
🔴 Sai: Access Context Manager (nay là Access Context Manager trong VPC Service Controls) dùng để kiểm soát truy cập dựa trên context (như device, location, IP). Nó không grant quyền export logs mà chỉ enforce policies cho existing permissions. Không liên quan trực tiếp đến Logging sinks. -
❌ Create and grant a custom IAM role with the permissions logging.sinks.list and logging.sink.get.
🔴 Sai: Các permission này chỉ cho phép liệt kê (list) và xem (get) sinks hiện có, không cho phép tạo hoặc cập nhật sinks mới để export logs. Custom role thiếulogging.sinks.create/update, nên team không thể thực hiện export. -
❌ Create an Organizational Policy in Cloud IAM to allow only these members to create log exports.
🔴 Sai: Organizational Policy (trong Organization Policy Service) dùng để hạn chế (constrain) hành vi toàn org (ví dụ: deny export certain logs), không dùng để grant quyền cho cá nhân. Nó không thay thế IAM roles; chỉ enforce "allow/deny" trên top của IAM.
📘 Tài liệu tham khảo
- Google Cloud Logging IAM roles: docs.cloud.google.com/logging/access-control (cập nhật 2025: Xác nhận
roles/logging.configWritercho sinks/export). - Log sinks và export: cloud.google.com/logging/docs/export (hướng dẫn tạo sinks với quyền configWriter).
- IAM best practices: cloud.google.com/iam/docs/best-practices-service-accounts (predefined roles ưu tiên).
- Organizational Policies: cloud.google.com/resource-manager/docs/organization-policy/overview (chỉ constrain, không grant).
Hy vọng phân tích này giúp bạn ôn thi chứng chỉ Google Cloud DevOps Engineer! 🚀 Nếu cần thêm ví dụ thực hành, hãy hỏi nhé.
Registry (GCR) image registry in the altostrat-images project can be deployed to the cluster while minimizing development time. What should you do?
- A Create a custom builder for Cloud Build that will only push images to gcr.io/altostrat-images.
- B Use a Binary Authorization policy that includes the whitelist name pattern gcr.io/altostrat-images/.
- C Add logic to the deployment pipeline to check that all manifests contain only images from gcr.io/altostrat-images.
- D Add a tag to each image in gcr.io/altostrat-images and check that this tag is present when the image is deployed.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào việc bảo mật và kiểm soát hình ảnh container (container images) trong môi trường Google Kubernetes Engine (GKE). Cụ thể:
- Ứng dụng của bạn đang chạy trên GKE cluster.
- Bạn muốn đảm bảo chỉ những images từ Google Container Registry (GCR) được quản lý tập trung trong project
altostrat-images(với đường dẫngcr.io/altostrat-images) mới được deploy vào cluster. - Yêu cầu chính: Giảm thiểu thời gian phát triển (minimizing development time), nghĩa là cần giải pháp tự động, không yêu cầu code tùy chỉnh phức tạp.
Mục tiêu là ngăn chặn việc deploy images từ nguồn không đáng tin cậy, sử dụng cơ chế tích hợp sẵn của Google Cloud để enforce policy tại runtime hoặc admission time trong GKE, mà không làm tăng workload cho dev team. 📘 (Kiến thức dựa trên tài liệu GKE Security & Binary Authorization cập nhật đến 2026: GKE Binary Authorization docs).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Use a Binary Authorization policy that includes the whitelist name pattern gcr.io/altostrat-images/.
🛠️ Lý do chi tiết:
- Binary Authorization (Binauthz) là tính năng tích hợp sẵn của GKE, cho phép định nghĩa admission policy để kiểm tra và chỉ cho phép deploy images đã được attest hoặc khớp whitelist pattern.
- Bạn có thể tạo policy whitelist với pattern
gcr.io/altostrat-images/*(hoặc tương tự), chỉ chấp nhận images từ registry cụ thể này. - Ưu điểm: Hoàn toàn tự động, không cần code thêm, deploy nhanh chóng qua
gcloudhoặc YAML manifest. Giảm thiểu dev time vì không yêu cầu pipeline tùy chỉnh. - Trong GKE Autopilot/Standard (phiên bản 2026), Binauthz hỗ trợ allowlist cho image path, enforce tại Pod creation.
📘 Nguồn: Binary Authorization overview & Configuring policies.
🔍 Giải thích tất cả các phương án
Dưới đây là phân tích từng lựa chọn một cách chi tiết, với đánh giá đúng/sai dựa trên tính khả thi, hiệu quả và yêu cầu "minimizing development time". Giữ nguyên văn bản gốc tiếng Anh.
-
❌ Create a custom builder for Cloud Build that will only push images to gcr.io/altostrat-images.
Phân tích sai: Phương án này chỉ kiểm soát việc push images vào GCR, không ngăn chặn deploy images từ nguồn khác (ví dụ: pull từ Docker Hub hoặc GCR project khác). Cloud Build builder tùy chỉnh yêu cầu phát triển code mới, tốn thời gian dev và không enforce tại GKE runtime. Không giải quyết vấn đề deploy validation. 🕒 -
✅ Use a Binary Authorization policy that includes the whitelist name pattern gcr.io/altostrat-images/.
Phân tích đúng: Như đã giải thích ở trên, đây là giải pháp tích hợp sẵn, zero-code, whitelist pattern chính xác khớpgcr.io/altostrat-images/*để chỉ cho phép images từ project cụ thể. Enforce tại admission webhook của GKE, tự động block deploy không hợp lệ. Hoàn hảo cho yêu cầu minimize dev time. 🚀 -
❌ Add logic to the deployment pipeline to check that all manifests contain only images from gcr.io/altostrat-images.
Phân tích sai: Yêu cầu thêm code tùy chỉnh vào pipeline (như CI/CD với Helm/Kustomize), parse manifests để validate image paths. Tốn thời gian dev, dễ lỗi, và chỉ kiểm tra pre-deploy chứ không enforce runtime (có thể bypass bằng kubectl apply thủ công). Không hiệu quả bằng Binauthz native. ⚠️ -
❌ Add a tag to each image in gcr.io/altostrat-images and check that this tag is present when the image is deployed.
Phân tích sai: Thêm tag (label/metadata) yêu cầu quản lý thủ công hoặc script cho mọi image, rồi check trong pipeline/deploy. Tốn dev time lớn, không scalable (quên tag = fail), và không enforce chặt chẽ như policy (dễ bypass). Binauthz hỗ trợ tốt hơn qua attestation thay vì tag đơn giản. 🔒
📚 Tài liệu tham khảo bổ sung (cập nhật 2026)
- GKE Security best practices.
- Migrate GCR to Artifact Registry (GCR vẫn hỗ trợ đầy đủ).
- Sample policy YAML:
gcloud beta container binauthz policies create --global-policy=YOUR_POLICY --admit-images=gcr.io/altostrat-images/*.
Giải pháp này đảm bảo zero-trust image deployment trong GKE! 🛡️
Load Balancer (GCLB) ingress. You want to scale the deployment of the application's frontend using an appropriate Service Level Indicator (SLI). What should you do?
- A Configure the horizontal pod autoscaler to use the average response time from the Liveness and Readiness probes.
- B Configure the vertical pod autoscaler in GKE and enable the cluster autoscaler to scale the cluster as pods expand.
- C Install the Observability custom metrics adapter and configure a horizontal pod autoscaler to use the number of requests provided by the GCLB.
- D Expose the NGINX stats endpoint and configure the horizontal pod autoscaler to use the request metrics exposed by the NGINX deployment.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc tối ưu hóa scaling cho ứng dụng frontend dựa trên NGINX đã được triển khai trên Google Kubernetes Engine (GKE). Ứng dụng này được expose ra công chúng qua HTTP Google Cloud Load Balancer (GCLB) ingress. Nhiệm vụ là scale deployment của frontend bằng cách sử dụng một Service Level Indicator (SLI) phù hợp.
-
Bối cảnh chính:
- Ứng dụng NGINX chạy trên GKE (Kubernetes cluster của Google Cloud).
- Được expose qua GCLB (Load Balancer Layer 7 HTTP(S)), giúp phân phối traffic công khai.
- Mục tiêu: Scale horizontal (tăng/giảm số Pod replicas) dựa trên SLI – chỉ số đo lường hiệu suất dịch vụ, ví dụ như số lượng requests, latency, error rate... để đảm bảo tính khả dụng và hiệu suất.
-
Vấn đề cần giải quyết: Scaling phải dựa trên metrics thực tế từ traffic từ bên ngoài (public) qua GCLB, không chỉ nội bộ cluster. Đây là best practice trong SRE (Site Reliability Engineering) trên GKE để tránh over-provisioning hoặc under-scaling.
-
Kiến thức cập nhật (đến 2026): Theo tài liệu Google Cloud mới nhất (GKE version 1.29+ và Google Cloud Observability 2024-2026), Horizontal Pod Autoscaler (HPA) hỗ trợ custom metrics qua Observability custom metrics adapter để lấy dữ liệu từ Cloud Monitoring, bao gồm metrics từ GCLB như
https_server/request_count. Điều này cho phép SLI chính xác dựa trên end-to-end traffic từ Load Balancer. (📘 Nguồn: GKE Autoscaling docs, Custom Metrics Adapter).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Install the Observability custom metrics adapter and configure a horizontal pod autoscaler to use the number of requests provided by the GCLB.
Lý do 🛠️:
- Đây là cách chuẩn và recommended để scale HPA dựa trên SLI từ GCLB (số lượng requests –
https_server/request_count), phản ánh chính xác traffic thực tế từ public. - Observability custom metrics adapter (trước gọi là Stackdriver) cho phép HPA query custom metrics từ Cloud Monitoring, nơi GCLB export metrics tự động.
- Scaling dựa trên requests per second (RPS) là SLI lý tưởng cho frontend NGINX, giúp autoscaling proactive và hiệu quả.
- Không cần can thiệp thủ công vào NGINX hay probes, tận dụng native integration của Google Cloud. (📘 Nguồn: GCLB Monitoring Metrics, HPA Custom Metrics Tutorial).
📋 Giải thích tất cả các phương án (đúng/sai)
-
[SAI] Configure the horizontal pod autoscaler to use the average response time from the Liveness and Readiness probes.
❌ Sai vì: Liveness và Readiness probes chỉ dùng để kiểm tra health của Pod (sống/chết, ready phục vụ traffic), không export metrics response time cho HPA. Chúng không đo lường SLI thực tế từ traffic GCLB, dẫn đến scaling không chính xác (ví dụ: probes internal, không phản ánh public load). HPA không hỗ trợ metrics từ probes theo cách này. (🧩 Vấn đề: Probes không phải monitoring tool). -
[SAI] Configure the vertical pod autoscaler in GKE and enable the cluster autoscaler to scale the cluster as pods expand.
❌ Sai vì: Vertical Pod Autoscaler (VPA) dùng để tăng/giảm resources (CPU/Memory) của Pod hiện có, không phải horizontal scaling (tăng replicas) như yêu cầu. Cluster Autoscaler chỉ scale nodes, không trực tiếp scale deployment dựa trên SLI từ GCLB. Kết hợp này không phù hợp cho frontend scaling dựa trên requests. (🛠️ Vấn đề: Sai loại autoscaler – vertical thay vì horizontal). -
[ĐÚNG] Install the Observability custom metrics adapter and configure a horizontal pod autoscaler to use the number of requests provided by the GCLB.
✅ Đúng vì: Như giải thích trên, adapter này enable HPA sử dụng custom metrics từ Cloud Monitoring (requests từ GCLB), là SLI hoàn hảo cho scaling frontend public-facing. Native support trong GKE Autopilot/Standard (2026). (📘 Nguồn: Deploy Custom Metrics Adapter). -
[SAI] Expose the NGINX stats endpoint and configure the horizontal pod autoscaler to use the request metrics exposed by the NGINX deployment.
❌ Sai vì: NGINX stats (qua/nginx_status) cần NGINX Ingress Controller + Prometheus Exporter để scrape metrics, nhưng không phải cách tối ưu hoặc native cho GCLB. Metrics này chỉ internal (per Pod/Ingress), không phản ánh tổng traffic từ GCLB (external LB metrics chính xác hơn). Phức tạp hơn và không leverage Cloud Monitoring. (🧩 Vấn đề: Không dùng SLI từ LB, chỉ từ app internal).
Kết luận 🚀: Lựa chọn đúng tận dụng ecosystem Google Cloud để scaling thông minh, giảm chi phí và tăng reliability! Nếu triển khai, dùng lệnh gcloud container clusters get-credentials và kubectl apply adapter YAML từ docs.
- A Operations Lead
- B Engineering Lead
- C Communications Lead
- D Customer Impact Assessor
- E External Customer Communications Lead
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc chủ đề Site Reliability Engineering (SRE) – một thực hành kỹ thuật đáng tin cậy được Google phát triển và áp dụng rộng rãi trên các nền tảng cloud như AWS, Google Cloud hay Azure. Cụ thể, bạn đang là Incident Commander (IC) – người chỉ huy sự cố – trong một sự cố mới ảnh hưởng đến khách hàng. Nhiệm vụ là giao ngay lập tức hai vai trò quản lý sự cố để hỗ trợ phản ứng hiệu quả.
📌 Bối cảnh chính:
- Công ty tuân thủ SRE practices, nhấn mạnh vào cấu trúc tổ chức rõ ràng trong incident response (phản ứng sự cố) để tránh hỗn loạn, đảm bảo khắc phục nhanh chóng và giao tiếp minh bạch.
- IC cần assign hai roles chính từ các lựa chọn, dựa trên mô hình chuẩn của SRE: phân công trách nhiệm rõ ràng để IC tập trung chỉ huy.
- Đây không phải khái niệm riêng của AWS mà là best practice chung, nhưng áp dụng trên AWS qua các dịch vụ như AWS Incident Response hoặc tích hợp với SRE tools (ví dụ: AWS Systems Manager Incident Manager – cập nhật đến 2026 vẫn giữ nguyên roles SRE core).
🛠️ Mục tiêu câu hỏi: Kiểm tra kiến thức về SRE incident roles chuẩn từ Google SRE Workbook, nơi định nghĩa rõ các vai trò cốt lõi cho giai đoạn Triage (phân loại sự cố).
✅ Đáp án đúng (Chọn hai)
Hai vai trò đúng là:
Operations Lead và Communications Lead.
Lý do lựa chọn:
Theo SRE practices chuẩn (Google SRE Book & Workbook, cập nhật 2023-2026), khi IC được chỉ định, hai roles đầu tiên phải assign ngay là Operations Lead (dẫn dắt hoạt động kỹ thuật để mitigate/fix sự cố) và Communications Lead (xử lý giao tiếp nội bộ/ngoại bộ). Điều này giúp IC giải phóng để chỉ huy tổng thể, tránh overload. Các roles khác không phải "immediate assignments" trong giai đoạn đầu.
📘 Nguồn tham khảo:
- Google SRE Workbook - Chapter 6: Managing Incidents (roles diagram rõ ràng).
- AWS Well-Architected Framework - Reliability Pillar (tích hợp SRE roles, phiên bản 2024+).
🔍 Giải thích tất cả các phương án (Đúng/Sai)
Dưới đây là phân tích từng lựa chọn một cách chi tiết, giữ nguyên nội dung gốc tiếng Anh. Mỗi phương án được đánh giá dựa trên SRE roles chuẩn:
-
✅ Operations Lead
Đúng. Vai trò này chịu trách nhiệm dẫn dắt các hoạt động kỹ thuật cụ thể: thu thập dữ liệu, thực hiện mitigation steps, phối hợp engineering teams để fix sự cố. IC assign ngay để đảm bảo hành động nhanh chóng, tránh IC phải micromanage. Đây là role cốt lõi thứ hai sau IC. -
❌ Engineering Lead
Sai. Không phải role chuẩn trong SRE incident response. "Engineering Lead" có thể tồn tại trong engineering teams bình thường, nhưng trong incident, họ tham gia dưới sự chỉ đạo của Operations Lead chứ không phải assign riêng như một incident role độc lập. Assign role này sẽ gây chồng chéo và không hiệu quả. -
✅ Communications Lead
Đúng. Vai trò chuyên trách giao tiếp: cập nhật status nội bộ (Slack/Teams), ngoại bộ (status page), và stakeholders. Giúp IC tránh bị "spam" bởi câu hỏi, đảm bảo thông tin nhất quán. Đây là role immediate thứ ba, nhưng bắt buộc assign sớm cùng Operations Lead. -
❌ Customer Impact Assessor
Sai. Không tồn tại trong SRE core roles. Việc đánh giá tác động khách hàng (customer impact) là nhiệm vụ của IC hoặc delegated vào post-incident review (hotwash), không phải role riêng biệt assign ngay. Tạo role này sẽ làm phức tạp hóa cấu trúc thay vì dùng Communications Lead để handle. -
❌ External Customer Communications Lead
Sai. Đây là biến thể không chuẩn của Communications Lead. Trong SRE, Communications Lead đã bao quát cả external comms (ví dụ: public status pages). Tách riêng sẽ tạo redundancy, vi phạm nguyên tắc "roles rõ ràng, ít chồng chéo" – chỉ assign nếu incident rất lớn (P0 level), không phải immediate cho mọi sự cố.
🧩 Kết luận nổi bật: Câu hỏi nhấn mạnh tốc độ và cấu trúc trong SRE – chỉ hai roles cốt lõi giúp incident response hiệu quả 80% (theo Google metrics). Trên AWS 2026, tích hợp tốt với AWS Incident Manager hỗ trợ assign roles tự động theo SRE template! Nếu áp dụng thực tế, hãy dùng runbooks để automate. 🚀
- A Download and configure a third-party integration between Observability Monitoring and an SMS gateway. Ensure that your team members add their SMS/phone numbers to the external tool.
- B Select the Webhook notifications option for each alerting policy, and configure it to use a third-party integration tool. Ensure that your team members add their SMS/phone numbers to the external tool.
- C Ensure that your team members set their SMS/phone numbers in their Observability Profile. Select the SMS notification option for each alerting policy and then select the appropriate SMS/phone numbers from the list.
- D Configure a Slack notification for each alerting policy. Set up a Slack-to-SMS integration to send SMS messages when Slack messages are received. Ensure that your team members add their SMS/phone numbers to the external integration.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc hỗ trợ một ứng dụng chạy trên GCP (Google Cloud Platform) và cấu hình thông báo SMS cho đội ngũ phát triển khi có các cảnh báo quan trọng nhất từ Observability Monitoring (trước đây gọi là Cloud Monitoring). Bạn đã xác định sẵn các alerting policies cần cấu hình.
📌 Mục tiêu chính: Tìm cách gửi SMS trực tiếp đến số điện thoại của thành viên đội ngũ một cách native (tích hợp sẵn), an toàn và đơn giản nhất trên GCP, mà không cần công cụ bên thứ ba phức tạp.
🛠️ Bối cảnh kỹ thuật: Observability Monitoring cho phép tạo alerting policies để phát hiện sự cố, và hỗ trợ nhiều kênh thông báo như email, SMS, Slack, PagerDuty, webhook... Phiên bản cập nhật mới nhất (tính đến 2026) của GCP Observability hỗ trợ SMS notifications native qua profile người dùng, không yêu cầu tích hợp ngoài.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng:
Ensure that your team members set their SMS/phone numbers in their Observability Profile. Select the SMS notification option for each alerting policy and then select the appropriate SMS/phone numbers from the list.
Lý do chọn đáp án này 🏆:
- Đây là cách tích hợp sẵn (native) của GCP Observability Monitoring, đơn giản và bảo mật nhất.
- Thành viên đội ngũ chỉ cần thêm số SMS/phone vào Observability Profile (trong Console > Observability > Profile settings).
- Sau đó, trong alerting policy, chọn SMS notification channel, và hệ thống sẽ tự động liệt kê các số phone khả dụng từ profile để chọn.
- ✅ Ưu điểm: Không tốn phí ngoài, hỗ trợ toàn cầu (qua Google), tuân thủ quy định bảo mật GCP, và cập nhật real-time. Phù hợp với best practice DevOps cho alerting critical.
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng phương án một cách chi tiết, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá dựa trên tính khả thi, best practice và tính năng GCP Observability mới nhất (2026).
-
Phương án 1 ❌:
Download and configure a third-party integration between Observability Monitoring and an SMS gateway. Ensure that your team members add their SMS/phone numbers to the external tool.
Giải thích sai 🚫: Phương án này phức tạp, không an toàn và không cần thiết. GCP đã hỗ trợ SMS native, việc dùng third-party (như Twilio SMS gateway) yêu cầu download/install, config API key, quản lý chi phí riêng và rủi ro bảo mật (dữ liệu qua bên ngoài). Không phải best practice cho critical alerts. -
Phương án 2 ❌:
Select the Webhook notifications option for each alerting policy, and configure it to use a third-party integration tool. Ensure that your team members add their SMS/phone numbers to the external tool.
Giải thích sai 🚫: Webhook chỉ dùng cho custom integration, không phải cho SMS trực tiếp. Nó gửi HTTP POST payload đến endpoint ngoài (third-party tool như Zapier), đòi hỏi config thêm, dễ lỗi (latency, downtime) và vẫn cần tool ngoài để convert sang SMS. GCP khuyến nghị tránh cho alerting critical vì không reliable bằng native SMS. -
Phương án 3 ✅:
Ensure that your team members set their SMS/phone numbers in their Observability Profile. Select the SMS notification option for each alerting policy and then select the appropriate SMS/phone numbers from the list.
Giải thích đúng 🏅: Như đã phân tích ở trên, đây là native feature của GCP. Profile lưu số phone an toàn (IAM-based), alerting policy chọn trực tiếp từ danh sách. Hỗ trợ quota cao (lên đến 10 channels/policy), và tích hợp với Incident Response. Hoàn hảo cho DevOps workflow. -
Phương án 4 ❌:
Configure a Slack notification for each alerting policy. Set up a Slack-to-SMS integration to send SMS messages when Slack messages are received. Ensure that your team members add their SMS/phone numbers to the external integration.
Giải thích sai 🚫: Gián tiếp và không reliable. Slack là native channel tốt, nhưng thêm "Slack-to-SMS" (như app bên thứ ba) tạo thêm layer (delay, single point of failure nếu Slack down). Không phù hợp critical alerts vì phụ thuộc external integration, vi phạm nguyên tắc "reliable notifications" của GCP.
📘 Tài liệu tham khảo (cập nhật 2026)
- Official GCP Docs: Cloud Monitoring Notifications - SMS – Hướng dẫn config SMS profile và alerting policy.
- Best Practices: Observability Alerting Guide – Nhấn mạnh native channels cho critical alerts.
- Console Reference: GCP Console > Monitoring > Alerting > Notification Channels > SMS.
🧠 Lưu ý DevOps: Luôn test alerting policy với "Test notification" trước production để đảm bảo SMS hoạt động!
- A ג€¢ In your application, create a metric with a metricKind set to DELTA and a valueType set to DOUBLE. ג€¢ In Observability's Metrics Explorer, use a Stacked Bar graph to visualize the metric.
- B ג€¢ In your application, create a metric with a metricKind set to CUMULATIVE and a valueType set to DOUBLE. ג€¢ In Observability's Metrics Explorer, use a Line graph to visualize the metric.
- C ג€¢ In your application, create a metric with a metricKind set to GAUGE and a valueType set to DISTRIBUTION. ג€¢ In Observability's Metrics Explorer, use a Heatmap graph to visualize the metric.
- D ג€¢ In your application, create a metric with a metricKind set to METRIC_KIND_UNSPECIFIED and a valueType set to INT64. ג€¢ In Observability's Metrics Explorer, use a Stacked Area graph to visualize the metric.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi tập trung vào việc quản lý một ứng dụng web (application) có endpoint HTTP không sử dụng load balancer, nơi độ trễ (latency) của phản hồi HTTP rất quan trọng cho trải nghiệm người dùng. Mục tiêu là hiểu rõ độ trễ HTTP mà tất cả người dùng đang gặp phải, sử dụng Google Cloud Observability Monitoring (trước đây gọi là Cloud Monitoring).
📌 Chi tiết vấn đề:
- Không dùng load balancer nên không có metrics tự động từ LB (như ở AWS ELB/ALB).
- Cần tạo custom metric từ ứng dụng để ghi nhận latency.
- Sử dụng Metrics Explorer trong Observability để hiển thị trực quan (visualize) dữ liệu latency của toàn bộ users, giúp phân tích phân bố độ trễ (ví dụ: p50, p95, p99) theo thời gian.
- Kiến thức cập nhật đến 2026: Theo tài liệu Google Cloud Monitoring mới nhất (v1.10+), custom metrics hỗ trợ DISTRIBUTION cho phân bố dữ liệu, và Heatmap lý tưởng cho latency histograms. (Nguồn: Google Cloud Docs - Custom Metrics, Metrics Explorer Visualization).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng:
- [ĐÚNG] ג€¢ In your application, create a metric with a metricKind set to GAUGE and a valueType set to DISTRIBUTION. ג€¢ In Observability's Metrics Explorer, use a Heatmap graph to visualize the metric.
Lý do chọn 🛠️:
- metricKind=GAUGE: Phù hợp cho latency vì đây là giá trị thời điểm (instantaneous), đo lường độ trễ hiện tại của từng request, không tích lũy hay delta theo interval.
- valueType=DISTRIBUTION: Cho phép ghi nhận phân bố dữ liệu (histogram), giúp tính percentiles (p50/p95/p99) của latency từ tất cả users – lý tưởng để hiểu trải nghiệm toàn bộ người dùng.
- Heatmap graph: Hiển thị ma trận màu sắc với trục X thời gian, trục Y buckets latency, đậm đặc cho mật độ cao → trực quan hóa sự phân bố latency theo thời gian, phát hiện outliers/spikes dễ dàng.
- Đây là best practice cho HTTP latency monitoring trong GCP Observability (không phải AWS, dù câu hỏi đề cập – thực tế là GCP).
❌ Giải thích tất cả các phương án
Dưới đây là phân tích từng lựa chọn (giữ nguyên văn bản gốc bằng tiếng Anh), với lý do đúng/sai dựa trên GCP Monitoring best practices:
-
[SAI] ג€¢ In your application, create a metric with a metricKind set to DELTA and a valueType set to DOUBLE. ג€¢ In Observability's Metrics Explorer, use a Stacked Bar graph to visualize the metric.
Lý do sai ❌: DELTA chỉ phù hợp cho số lượng thay đổi mỗi interval (như số request mới), không phải latency (giá trị đơn lẻ). DOUBLE chỉ là scalar, không hỗ trợ phân bố. Stacked Bar dùng cho so sánh categories, không trực quan cho latency distribution → không giúp xem toàn bộ users' latencies. -
[SAI] ג€¢ In your application, create a metric with a metricKind set to CUMULATIVE and a valueType set to DOUBLE. ג€¢ In Observability's Metrics Explorer, use a Line graph to visualize the metric.
Lý do sai ❌: CUMULATIVE dùng cho tổng tích lũy vĩnh viễn (như total errors), sẽ tăng mãi không phù hợp latency (reset theo thời gian). DOUBLE scalar không cho percentiles. Line graph chỉ trend trung bình, bỏ qua phân bố → không phản ánh trải nghiệm đa dạng của users. -
[ĐÚNG] ג€¢ In your application, create a metric with a metricKind set to GAUGE and a valueType set to DISTRIBUTION. ג€¢ In Observability's Metrics Explorer, use a Heatmap graph to visualize the metric.
Lý do đúng ✅: Như đã giải thích ở trên – GAUGE + DISTRIBUTION hoàn hảo cho latency phân bố, Heatmap visualize xuất sắc. (Nguồn: GCP Monitoring Metric Types). -
[SAI] ג€¢ In your application, create a metric with a metricKind set to METRIC_KIND_UNSPECIFIED and a valueType set to INT64. ג€¢ In Observability's Metrics Explorer, use a Stacked Area graph to visualize the metric.
Lý do sai ❌: METRIC_KIND_UNSPECIFIED mặc định GAUGE nhưng không khuyến khích, dễ lỗi. INT64 chỉ integer scalar, không hỗ trợ distribution/percentiles cho latency (thường là float ms). Stacked Area cho stacked totals theo groups, không phù hợp latency heatmap → không xem được latencies của tất cả users chi tiết.
📘 Tài liệu tham khảo bổ sung
- Google Cloud Observability - Analyze Latency (cập nhật 2025+).
- Metrics Explorer Best Practices – Heatmap dành riêng cho DISTRIBUTION metrics như latency.
- Ví dụ code tạo metric: Sử dụng OpenTelemetry hoặc Stackdriver client trong app (Node.js/Python/etc.).
Hy vọng phân tích này giúp bạn ôn thi DevOps Engineer! 🚀
- A Import the Observability Profiler package, and configure it to relay function timing data to Observability for further analysis.
- B Import the Observability Debugger package, and configure the application to emit debug messages with timing information.
- C Instrument the code using a timing library, and publish the metrics via a health check endpoint that is scraped by Observability.
- D Install an Application Performance Monitoring (APM) tool in both locations, and configure an export to a central data storage location for analysis.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào việc thiết kế một ứng dụng mới được triển khai cả bên trong và bên ngoài Google Cloud Platform (GCP). Nhóm cần thu thập metrics chi tiết như tình trạng sử dụng tài nguyên hệ thống (system resource utilization, ví dụ: CPU, memory, function timing). Yêu cầu chính là sử dụng dịch vụ GCP tập trung (centralized GCP services) để dễ dàng quản lý dữ liệu, đồng thời giảm thiểu công việc thiết lập hệ thống thu thập (minimizing setup work).
📌 Mục tiêu cốt lõi: Tìm giải pháp tự động hóa cao, hỗ trợ hybrid/multi-cloud (GCP + non-GCP), tích hợp sâu với Cloud Observability (bao gồm Cloud Monitoring, Cloud Trace, Cloud Profiler) – bộ công cụ mới nhất của GCP đến năm 2026, giúp profile và visualize metrics mà không cần agent phức tạp.
✅ Đáp án đúng
Import the Observability Profiler package, and configure it to relay function timing data to Observability for further analysis.
Lý do lựa chọn:
- 🛠️ Cloud Profiler (phần của Cloud Observability) là giải pháp lý tưởng cho metrics chi tiết như CPU, heap allocation, function timing từ ứng dụng chạy bất kỳ đâu (GCP, on-premises, other clouds). Chỉ cần import thư viện Profiler (Observability Profiler package cho Java, Go, Node.js, Python, v.v.), cấu hình đơn giản (vài dòng code), nó tự động relay dữ liệu đến Cloud Profiler – dịch vụ GCP tập trung. Không cần agent riêng, dashboard sẵn có để phân tích.
- 📈 Giảm thiểu công việc: Setup chỉ mất phút, hỗ trợ auto-instrumentation ở một số ngôn ngữ (cập nhật 2024-2026).
- Nguồn tham khảo: Cloud Profiler Documentation & Cloud Observability Overview (AWS không liên quan, đây là GCP native).
❌ Giải thích tất cả các phương án
-
Import the Observability Profiler package, and configure it to relay function timing data to Observability for further analysis.
✅ Đúng (như giải thích trên): Tích hợp nhẹ nhàng, centralized hoàn toàn vào GCP Observability, hỗ trợ hybrid environments mà không cần setup phức tạp. Lý tưởng cho DevOps minimize effort 🛠️. -
Import the Observability Debugger package, and configure the application to emit debug messages with timing information.
❌ Sai: Cloud Debugger (Observability Debugger) dùng cho debug code thời gian thực (snapshots biến, stack trace), không phải metrics resource utilization hay function timing. Nó không relay tự động đến Observability cho profiling, và setup phức tạp hơn cho production metrics. Không phù hợp centralized metrics 📉. -
Instrument the code using a timing library, and publish the metrics via a health check endpoint that is scraped by Observability.
❌ Sai: Yêu cầu thêm code thủ công (instrumentation) và expose endpoint health check để Cloud Monitoring scrape (như Prometheus format). Công việc nhiều (viết code, config scraper), không tự động cho detailed resource metrics như Profiler. Không minimize setup, dễ lỗi ở non-GCP environments 🔧. -
Install an Application Performance Monitoring (APM) tool in both locations, and configure an export to a central data storage location for analysis.
❌ Sai: Sử dụng APM bên thứ 3 (như Datadog, New Relic) yêu cầu cài đặt agent ở mọi nơi, config export (BigQuery/Cloud Storage?). Không centralized thuần GCP, tốn kém và công sức cao (setup dual locations). Cloud Observability native tốt hơn, không cần export thủ công 🌐.
Kết luận 💡: Sử dụng Cloud Profiler là best practice DevOps cho GCP hybrid apps (cập nhật 2026). Nếu cần demo, tôi có thể hướng dẫn code sample! 🚀
Which application is suitable for preemptible VMs?
- A A scalable in-memory caching system.
- B The organization's public-facing website.
- C A distributed, eventually consistent NoSQL database cluster with sufficient quorum.
- D A GPU-accelerated video rendering platform that retrieves and stores videos in a storage bucket.
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi tập trung vào việc giảm chi phí cho các máy ảo (VM) trong tổ chức bằng cách sử dụng preemptible VM instances trên Google Cloud Platform (GCP). Preemptible VMs là loại instance giá rẻ hơn đáng kể (thường tiết kiệm 60-91% so với on-demand VMs), nhưng chúng có thể bị Google chấm dứt (preempted) bất cứ lúc nào sau thông báo 30 giây, và tối đa chỉ chạy 24 giờ. Chúng phù hợp cho các ứng dụng chịu lỗi cao (fault-tolerant), có thể checkpoint (lưu trạng thái định kỳ), batch jobs hoặc workload không yêu cầu uptime liên tục, như rendering, data processing.
Lưu ý: Mặc dù người dùng đề cập "liên quan đến AWS", nhưng thuật ngữ "preemptible VM instances" là đặc trưng của GCP (tương đương Spot Instances trên AWS). Phân tích dựa trên tài liệu GCP mới nhất (cập nhật đến 2026, với Spot VMs thay thế dần preemptible từ 2022 nhưng nguyên tắc tương tự).
📘 Nguồn: GCP Compute Engine - Preemptible VM instances & Spot VMs.
✅ Đáp án đúng
A GPU-accelerated video rendering platform that retrieves and stores videos in a storage bucket.
Lý do lựa chọn: Ứng dụng rendering video sử dụng GPU là batch job (xử lý hàng loạt), có thể checkpoint tiến trình (lưu trạng thái tạm thời vào Cloud Storage bucket). Nếu bị preempted, job chỉ cần restart từ checkpoint mà không mất dữ liệu lớn. Workload này fault-tolerant, không yêu cầu uptime 100%, phù hợp hoàn hảo với preemptible VMs để tiết kiệm chi phí cao (🛠️ GPU rendering thường tốn kém). Theo best practices GCP 2026, đây là use case kinh điển cho Spot/Preemptible VMs.
📋 Phân tích tất cả các phương án
Dưới đây là giải thích chi tiết từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá dựa trên đặc tính của preemptible VMs: phải chịu lỗi cao, stateless hoặc dễ recover, không phụ thuộc latency thấp hoặc HA.
-
❌ A scalable in-memory caching system.
Sai vì: Hệ thống caching in-memory (như Redis) yêu cầu uptime cao, latency thấp và dữ liệu nhất quán. Nếu VM bị preempted, cache sẽ mất hết (volatile memory), dẫn đến cache miss lớn, ảnh hưởng hiệu suất toàn hệ thống. Không phù hợp vì không fault-tolerant (🧩 cần persistent storage hoặc replication phức tạp). -
❌ The organization's public-facing website.
Sai vì: Website công khai cần high availability (HA) 99.99%, xử lý traffic real-time liên tục. Preemptible VMs có thể bị tắt đột ngột, gây downtime, mất user và SEO. GCP khuyến cáo dùng cho backend batch, không phải frontend public-facing (🚫 vi phạm SLA). -
❌ A distributed, eventually consistent NoSQL database cluster with sufficient quorum.
Sai vì: Dù là NoSQL phân tán với quorum (như Cassandra), database vẫn stateful và cần durability dữ liệu. Preempted VM có thể mất node, ảnh hưởng quorum/consistency tạm thời, yêu cầu replication phức tạp và recovery lâu. GCP khuyên dùng managed DB như Cloud Bigtable thay vì tự quản trên preemptible (⚠️ rủi ro data loss nếu không thiết kế hoàn hảo). -
✅ A GPU-accelerated video rendering platform that retrieves and stores videos in a storage bucket.
Đúng vì: Như đã giải thích ở trên, đây là workload idempotent (có thể chạy lại), lưu input/output vào bucket (như Cloud Storage), dễ recover từ checkpoint. Tiết kiệm chi phí GPU lớn (💰 lên đến 91%). Best practice từ GCP workshops 2026.
Kết luận: Preemptible/Spot VMs lý tưởng cho cost-optimization với workload batch/HPC. Để triển khai, dùng managed instance groups (MIGs) với auto-restart cho resilience cao hơn! 🛠️
📘 Tài liệu bổ sung: GCP Best Practices for Spot VMs (cập nhật 2025-2026).
- A Configure the build system with protected branches that require pull request approval.
- B Use an Admission Controller to verify that incoming requests originate from approved sources.
- C Leverage Kubernetes Role-Based Access Control (RBAC) to restrict access to only approved users.
- D Enable binary authorization inside the Kubernetes cluster and configure the build pipeline as an attestor.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm
📖 Nội dung câu hỏi:
Câu hỏi mô tả tình huống tổ chức của bạn đã áp dụng quy trình phát triển ứng dụng dựa trên container. Nhóm phát triển tạo ra nhiều ứng dụng được triển khai liên tục qua pipeline build tự động đến cụm Kubernetes (K8s) trong môi trường production. Chuyên viên kiểm toán bảo mật lo ngại rằng các lập trình viên (developers) hoặc vận hành viên (operators) có thể bỏ qua quy trình kiểm tra tự động (automated testing) và đẩy thay đổi mã nguồn trực tiếp vào production mà không cần phê duyệt (approval). Mục tiêu chính là cần một giải pháp để ép buộc (enforce) quy trình phê duyệt, đảm bảo chỉ những thay đổi được xác thực mới được triển khai vào K8s cluster.
Điều này nhấn mạnh vào việc kiểm soát supply chain security trong CI/CD pipeline, ngăn chặn việc bypass testing và deploy image không được phê duyệt. Giải pháp phải hoạt động ở mức Kubernetes runtime, không chỉ ở Git hoặc access control cơ bản.
✅ Đáp án đúng:
Enable binary authorization inside the Kubernetes cluster and configure the build pipeline as an attestor.
🛠️ Lý do lựa chọn đáp án đúng (dựa trên kiến thức cập nhật đến 2026):
Binary Authorization (hay Binary Authorization for Borg - BinAuthz) là tính năng của Google Kubernetes Engine (GKE) (từ phiên bản GKE 1.21+, cập nhật liên tục đến 2026 với hỗ trợ Pod Security Admission và Gatekeeper v3). Nó sử dụng Admission Controller webhook để kiểm tra container image signature trước khi deploy pod.
- Cách hoạt động: Cấu hình build pipeline (như Cloud Build) làm attestor để ký (sign) image sau khi qua testing/approval. Chỉ image có chữ ký hợp lệ từ attestor mới được phép chạy trong cluster.
- Lợi ích: Ngăn chặn hoàn toàn việc push image "bẩn" (không test/approve) từ bất kỳ nguồn nào, kể cả insiders. Hỗ trợ multi-attestor và PKS (Public Key Infrastructure) cho enterprise.
- Đây là giải pháp end-to-end cho enforce approval ở K8s level, phù hợp với CIS Benchmarks và Kubernetes Security Best Practices (2026).
📘 Tài liệu tham khảo:
- Google Cloud Binary Authorization Docs (cập nhật 2026: hỗ trợ GKE Enterprise).
- Kubernetes Admission Controllers.
❌ Phân tích tất cả các phương án trả lời
-
Configure the build system with protected branches that require pull request approval.
❌ Sai vì: Phương án này chỉ kiểm soát ở mức Git repository (như GitHub/GitLab protected branches), yêu cầu PR approval trước merge. Tuy nhiên, nó không ngăn chặn việc build/deploy image trực tiếp từ local (bypass Git) hoặc từ branch khác vào K8s. Auditor lo về push code changes to production without approval ở K8s level, không phải chỉ Git workflow. Không enforce được ở runtime K8s. -
Use an Admission Controller to verify that incoming requests originate from approved sources.
❌ Sai vì: Admission Controller (như ValidatingWebhook) có thể kiểm tra nguồn gốc request (source IP/user), nhưng không verify nội dung image (có qua testing/approval chưa). Developers/operators vẫn có thể deploy image "bẩn" nếu request từ "approved sources". Không giải quyết vấn đề bypass automated testing, chỉ kiểm soát ai deploy chứ không phải cái gì deploy. -
Leverage Kubernetes Role-Based Access Control (RBAC) to restrict access to only approved users.
❌ Sai vì: RBAC (từ K8s 1.6+, cập nhật RBAC v1.28+ đến 2026) chỉ hạn chế quyền access (create/update pod/deployment). Nó không kiểm tra nội dung code/image có được approve/test chưa. Insiders với quyền approved vẫn push thay đổi bypass testing. RBAC là authorization cơ bản, không phải policy enforcement cho supply chain. -
Enable binary authorization inside the Kubernetes cluster and configure the build pipeline as an attestor.
✅ Đúng vì: Như giải thích ở trên, đây là giải pháp chính xác và toàn diện, enforce signature verification ở K8s admission stage, tích hợp trực tiếp với CI/CD pipeline để đảm bảo approval trước deploy. Hoàn hảo cho container workflow liên tục.
🔍 Kết luận: Giải pháp đúng tập trung vào image-level attestation, phù hợp với xu hướng zero-trust security trong K8s (SLSA framework, 2026). Nếu dùng AWS EKS, có thể tương đương với ImageSigner hoặc Kyverno policy, nhưng câu hỏi ngầm định GKE context.
- A Change the specified SLO to match the measured SLI
- B Move the service to higher-specification compute instances with more memory
- C Set up additional service instances in other zones and load balance the traffic between all instances
- D Set up additional service instances in other zones and use them as a failover in case the primary instance is unavailable
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi mô tả một tình huống thực tế trong Google Cloud Platform (GCP):
Bạn đang hỗ trợ một API web không trạng thái (stateless web-based API) được triển khai trên một instance Compute Engine duy nhất tại vùng europe-west2-a.
📊 Service Level Indicator (SLI) về tính khả dụng (availability) của dịch vụ đang thấp hơn Service Level Objective (SLO) đã đặt ra.
🔍 Phân tích hậu sự (postmortem) cho thấy: Các yêu cầu đến API thường timeout do lưu lượng yêu cầu cao (high number of requests) và hết bộ nhớ (running out of memory).
🎯 Mục tiêu: Cải thiện tính khả dụng của dịch vụ (service availability).
Vấn đề cốt lõi là thiếu khả năng mở rộng (scalability) và khả năng chịu lỗi (resilience) vì chỉ dùng một instance đơn lẻ, dẫn đến nghẽn cổ chai (bottleneck) về CPU/memory và rủi ro zone outage. Giải pháp cần tập trung vào high availability (HA) và horizontal scaling theo nguyên tắc SRE (Site Reliability Engineering) của Google.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Set up additional service instances in other zones and load balance the traffic between all instances
🛠️ Lý do chi tiết:
- API là stateless, nên dễ dàng scale horizontally bằng cách thêm instances và phân tải (load balance).
- Việc triển khai instances ở nhiều zones khác nhau (multi-zone) giúp tránh single point of failure (SPOF) nếu zone europe-west2-a gặp sự cố.
- Load balancing (sử dụng Global HTTP(S) Load Balancer hoặc Network Load Balancer trong GCP) sẽ phân phối traffic đều giữa các instances, giảm tải cho từng instance, tránh timeout do hết memory, và cải thiện SLI availability lên đạt SLO.
- Đây là best practice theo GCP Well-Architected Framework (Reliability pillar) và SRE golden signals (latency, traffic, errors, saturation). Với kiến thức cập nhật đến 2026, GCP khuyến nghị sử dụng Managed Instance Groups (MIGs) với autoscaling và multi-zone deployment cho workload như vậy.
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh:
-
❌ Change the specified SLO to match the measured SLI
Sai vì: Việc thay đổi SLO để khớp SLI là che đậy vấn đề thay vì giải quyết gốc rễ. SLO là mục tiêu kinh doanh (ví dụ 99.9% availability), không được hạ thấp để "đạt chỉ tiêu". Theo SRE book của Google, phải cải thiện hệ thống để SLI đạt SLO, không phải ngược lại. Điều này vi phạm nguyên tắc error budget. -
❌ Move the service to higher-specification compute instances with more memory
Sai vì: Chỉ vertical scaling (tăng spec instance, ví dụ từ n1-standard-2 lên n2-highmem-8) chỉ giải quyết tạm thời hết memory, nhưng không xử lý high traffic lâu dài và không tăng availability (vẫn single instance, dễ outage nếu zone fail). Không hiệu quả chi phí và không theo nguyên tắc scale-out của cloud-native. -
✅ Set up additional service instances in other zones and load balance the traffic between all instances
Đúng vì: Như giải thích ở trên, horizontal scaling + multi-zone + load balancing là giải pháp tối ưu, đảm bảo HA, autoscaling tự động (qua MIGs), và xử lý traffic spikes. Phù hợp với GCP best practices cho stateless apps. -
❌ Set up additional service instances in other zones and use them as a failover in case the primary instance is unavailable
Sai vì: Failover passive (chỉ dùng instances phụ khi primary fail) không phân tải traffic realtime, dẫn đến primary vẫn overload và timeout thường xuyên. Không cải thiện SLI availability ngay lập tức, chỉ xử lý downtime hiếm gặp. Load balancing active-active mới là cách đúng.
📘 Tài liệu tham khảo (cập nhật mới nhất đến 2026)
- 🧰 GCP Documentation: Compute Engine High Availability & Load Balancing Overview (phiên bản 2025+ nhấn mạnh Regional MIGs với autoscaler).
- 📖 SRE Workbook (Google): Chapter về SLI/SLO và scaling stateless services.
- 🔗 GCP Well-Architected Framework: Reliability reviews cho Compute Engine workloads.
- 🛡️ Postmortem Best Practices: Google SRE Postmortem Culture.
Hy vọng phân tích này giúp bạn ôn tập hiệu quả! 🚀 Nếu cần demo code Terraform cho MIG + Load Balancer, hãy cho biết nhé!