Menganalisis aplikasi menggunakan metrik
Panduan memulai ini menunjukkan cara menggunakan Cloud Deploy untuk menganalisis layanan Cloud Run yang di-deploy, berdasarkan metrik dari Google Cloud Observability, untuk memastikan aplikasi berperforma seperti yang diharapkan.
Dalam panduan memulai ini, Anda akan melakukan hal berikut:
Buat dan deploy satu layanan Cloud Run.
Dalam hal ini, Anda tidak akan menggunakan Cloud Deploy untuk men-deploy-nya.
Buat cek uptime di Google Cloud Observability.
Pemeriksaan ini memantau layanan Cloud Run Anda untuk memastikan layanan tersebut berjalan.
Buat kebijakan pemberitahuan di Cloud Monitoring.
Secara default, analisis Cloud Deploy dapat menggunakan berbagai jenis metrik dari Google Cloud Observability. Kebijakan ini membuat pemberitahuan jika cek uptime menunjukkan adanya masalah.
Buat konfigurasi Skaffold untuk mengidentifikasi layanan Cloud Run.
Tentukan target dan pipeline pengiriman Cloud Deploy Anda.
Pipeline ini hanya mencakup satu tahap dan menggunakan satu target saja, serta mencakup definisi untuk tugas analisis.
Buat rilis, yang otomatis di-deploy ke target.
Setelah aplikasi di-deploy, analisis berjalan sebagai tugas dalam peluncuran.
Layanan akan berhasil di-deploy ke target, tetapi peluncuran akan gagal karena kebijakan pemberitahuan akan menghasilkan pemberitahuan.
Ubah definisi layanan Cloud Run untuk meningkatkan jumlah instance layanan, dan buat rilis baru.
Kali ini, layanan akan berhasil di-deploy, dan peluncuran akan berhasil diselesaikan.
Sebelum memulai
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
Verify that billing is enabled for your Google Cloud project.
Aktifkan Cloud Deploy API, Cloud Build API, Cloud Run API, dan Cloud Storage API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan
peran.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud initIn the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
Verify that billing is enabled for your Google Cloud project.
Aktifkan Cloud Deploy API, Cloud Build API, Cloud Run API, dan Cloud Storage API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan
peran.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud initPeran yang diperlukan
Untuk memastikan bahwa akun layanan Cloud Deploy memiliki izin yang diperlukan untuk menjalankan operasi Cloud Deploy dan men-deploy ke Cloud Run, minta administrator untuk memberikan peran IAM berikut kepada akun layanan Cloud Deploy di project Anda:
-
Cloud Run Developer (
roles/run.developer) -
Runner Cloud Deploy (
roles/clouddeploy.jobRunner) -
Pengguna Akun Layanan IAM (
roles/iam.serviceAccountUser) -
Monitoring Alert Viewer (
roles/monitoring.alertViewer) -
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan Cloud Deploy melalui peran khusus atau peran bawaan lainnya.
Pelajari lebih lanjut akun layanan Cloud Deploy.
Men-deploy layanan Cloud Run
Panduan memulai ini menggunakan kebijakan pemberitahuan yang mengharuskan
Cloud Run sudah ada. Jadi, kita akan men-deploy satu di sini, dan di bagian selanjutnya, kita akan menentukan service.yaml menggunakan nama layanan yang sama.
Jalankan perintah berikut untuk membuat layanan awal:
gcloud run deploy my-analysis-run-service \
--image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a \
--project=PROJECT_ID \
--region=us-central1 \
--allow-unauthenticated
Ganti PROJECT_ID dengan project ID Anda.
Membuat cek uptime Google Cloud Observability
Pemeriksaan uptime ini memantau layanan yang sedang berjalan untuk mengonfirmasi bahwa layanan tersebut berjalan. Di bagian selanjutnya, Anda akan membuat kebijakan pemberitahuan Google Cloud Observability yang menghasilkan pemberitahuan jika layanan Anda tidak memiliki setidaknya satu instance yang tersedia yang sedang berjalan.
Untuk membuat pemeriksaan uptime, jalankan perintah berikut:
gcloud monitoring uptime create my-analysis-run-service-cloud-run-uptime-check \ --resource-type=cloud-run-revision \ --resource-labels="project_id=PROJECT_ID,location=us-central1,service_name=my-analysis-run-service" \ --project=PROJECT_ID \ --protocol=https \ --path="/" \ --port=443 \ --period=1 \ --timeout=10 \ --service-agent-auth="oidc-token" \ --status-classes="2xx"Salin ID pemeriksaan uptime.
Output dari perintah yang baru saja Anda jalankan berisi ID.
Menyiapkan konfigurasi Skaffold dan definisi layanan
Dalam panduan memulai ini, Anda akan membuat file skaffold.yaml, yang mengidentifikasi
manifest yang akan digunakan untuk men-deploy layanan Cloud Run contoh, dan
Anda juga akan menentukan file service.yaml yang menentukan
Cloud Run itu sendiri.
Buka jendela terminal.
Buat direktori baru dan buka direktori tersebut.
mkdir deploy-analysis-run-quickstart
cd deploy-analysis-run-quickstart
- Buat file bernama
skaffold.yamldengan konten berikut:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
Lihat referensi skaffold.yaml
untuk mengetahui informasi selengkapnya tentang file konfigurasi ini.
- Buat file bernama
service.yaml, dengan konten berikut:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: my-analysis-run-service
annotations:
run.googleapis.com/scalingMode: manual
run.googleapis.com/manualInstanceCount: 0
spec:
template:
spec:
containers:
- image: my-app-image
File ini adalah definisi layanan Cloud Run, yang digunakan untuk
men-deploy aplikasi. Image container yang akan di-deploy ditetapkan di sini sebagai
placeholder, my-app-image, yang diganti dengan image tertentu saat Anda
membuat rilis.
Perhatikan bahwa kita telah menyetel mode penskalaan ke manual, dan jumlah instance ke 0.
Artinya, layanan yang di-deploy tidak akan dapat menerima traffic dan tidak akan ada instance yang berjalan, yang akan memicu pemberitahuan. Anda akan mengonfigurasi
pemberitahuan tersebut selanjutnya.
Buat kebijakan pemberitahuan
Panduan memulai ini menggunakan kebijakan pemberitahuan Google Cloud Observability. Kebijakan pemberitahuan ini akan menghasilkan pemberitahuan saat layanan Cloud Run gagal dalam pemeriksaan waktu aktif yang Anda buat sebelumnya.
Di direktori
deploy-analysis-run-quickstart, buat file bernamapolicy.yaml, dengan konten berikut:displayName: Cloud Run service uptime check userLabels: policy-for: analysis-run-pipeline combiner: OR conditions: - displayName: Failure of uptime check UPTIME_ID conditionThreshold: filter: metric.type="monitoring.googleapis.com/uptime_check/check_passed" AND metric.label.check_id="UPTIME_ID" AND resource.type="cloud_run_revision" aggregations: - alignmentPeriod: 60s crossSeriesReducer: REDUCE_COUNT_FALSE groupByFields: - resource.label.* perSeriesAligner: ALIGN_NEXT_OLDER comparison: COMPARISON_GT duration: 60s thresholdValue: 1.0Ganti
UPTIME_IDdengan ID pemeriksaan uptime yang Anda buat sebelumnya.Jalankan perintah berikut untuk membuat kebijakan:
gcloud monitoring policies create \ --policy-from-file=policy.yaml\ --project=PROJECT_IDGanti
PROJECT_IDdengan project ID Anda.Salin ID kebijakan dari output perintah yang baru saja Anda jalankan.
Kali ini, salin seluruh ID resource, termasuk jalur. Anda akan menggunakan ID ini di bagian berikutnya, dalam konfigurasi analisis di pipeline penayangan.
Membuat target dan pipeline pengiriman
Pipeline pengiriman ini memiliki satu tahap, untuk satu target: analysis-staging.
Di direktori
deploy-analysis-run-quickstart, buat file baru,clouddeploy.yaml, dengan konten berikut:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: deploy-analysis-demo-app-run description: main application pipeline serialPipeline: stages: - targetId: analysis-staging profiles: [] strategy: standard: analysis: duration: 300s googleCloud: alertPolicyChecks: - id: check-1 alertPolicies: - ALERT_POLICY_ID --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: analysis-staging description: staging Run service run: location: projects/PROJECT_ID/locations/us-central1Dalam YAML ini, ganti
ALERT_POLICY_IDdengan output dari perintahgcloud monitoring policies listyang Anda jalankan sebelumnya, dan gantiPROJECT_IDdengan ID project yang Anda gunakan.Daftarkan pipeline dan target Anda dengan layanan Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_IDSekarang Anda memiliki pipeline pengiriman, dengan satu target, yang siap men-deploy aplikasi Anda.
Konfirmasi pipeline dan target Anda:
Di konsol Google Cloud , buka halaman Cloud Deploy Delivery pipelines untuk melihat daftar pipeline pengiriman yang tersedia.
Buka halaman Delivery pipelines
Pipeline pengiriman yang baru saja Anda buat akan ditampilkan, dengan satu target yang tercantum di kolom Target.

Membuat rilis
Rilis adalah resource Cloud Deploy pusat yang merepresentasikan perubahan yang di-deploy. Pipeline pengiriman menentukan siklus proses rilis tersebut. Lihat Arsitektur layanan Cloud Deploy untuk mengetahui detail tentang siklus proses tersebut.
Jalankan perintah berikut dari direktori deploy-analysis-run-quickstart untuk
membuat resource release yang merepresentasikan image container yang akan di-deploy:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=deploy-analysis-demo-app-run \
--images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
Perhatikan
flag --images=, yang
Anda gunakan untuk mengganti placeholder (my-app-image) dalam
definisi layanan dengan image spesifik yang memenuhi syarat SHA. Google merekomendasikan agar Anda membuat template definisi layanan dengan cara ini,
dan menggunakan nama image yang memenuhi syarat SHA saat pembuatan rilis.
Seperti semua rilis (kecuali jika menyertakan --disable-initial-rollout),
Cloud Deploy juga otomatis membuat resource
rollout. Aplikasi akan
dideploy secara otomatis ke satu target yang dikonfigurasi untuk pipeline
pengiriman ini.
Melihat hasil di konsol Google Cloud
Setelah beberapa menit, rilis Anda akan di-deploy ke target runtime. Anda dapat melihatnya.
Di konsol Google Cloud , buka halaman Delivery pipelines Cloud Deploy untuk melihat pipeline pengiriman ("deploy-analysis-demo-app-run").
Klik nama pipeline pengiriman Anda ("deploy-analysis-demo-app-run").
Visualisasi pipeline menampilkan status deployment aplikasi. Karena hanya ada satu tahap dalam pipeline, visualisasi hanya menampilkan satu node.

Rilis Anda juga tercantum di tab Rilis di bagian Detail pipeline pengiriman.
Klik tab Peluncuran, di bagian Detail pipeline penayangan.
Klik nama peluncuran untuk melihat detail peluncuran.
Analisis dicantumkan sebagai tugas.

Analisis gagal
Tugas analisis yang kita tentukan dalam konfigurasi pipeline pengiriman berjalan sebagai bagian dari peluncuran ini, setelah aplikasi di-deploy. Analisis ini memang akan gagal, karena kebijakan pemberitahuan akan memicu pemberitahuan. Peluncuran akan gagal karena kegagalan analisis ini.
Kita akan melakukan perubahan, lalu membuat rilis lain, yang seharusnya berhasil.
Ubah definisi layanan dan buat rilis baru
Sekarang, kita mengubah jumlah instance dalam definisi layanan, sehingga akan ada instance layanan yang berjalan, dan pemberitahuan tidak akan dipicu.
Edit file definisi Cloud Run,
service.yaml, untuk mengubah nilairun.googleapis.com/manualInstanceCountdari0menjadi1.Jalankan perintah berikut dari direktori
deploy-analysis-run-quickstartyang sama untuk membuatreleaselain:gcloud deploy releases create test-release-002 \ --project=PROJECT_ID \ --region=us-central1 \ --delivery-pipeline=deploy-analysis-demo-app-run \ --images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
Kali ini, peluncuran akan berhasil. Hal ini karena layanan Cloud Run Anda kini memiliki satu instance yang berjalan, sehingga pemeriksaan waktu aktif tidak akan memicu pemberitahuan dari kebijakan pemberitahuan.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Hapus layanan Cloud Run:
gcloud run services delete my-analysis-run-service \ --region=us-central1 \ --project=PROJECT_IDUntuk menghapus pipeline pengiriman, target, rilis, dan peluncuran, jalankan perintah berikut dari direktori yang berisi definisi pipeline pengiriman Anda:
gcloud deploy delete --file=clouddeploy.yaml \ --force \ --region=us-central1 \ --project=PROJECT_IDHapus kebijakan pemberitahuan Google Cloud Observability:
gcloud monitoring policies delete ALERT_POLICY_IDHapus bucket Cloud Storage yang dibuat Cloud Deploy.
Salah satunya diakhiri dengan
_clouddeploy, dan yang lainnya adalah[region].deploy-artifacts.[project].appspot.com.
Selesai, Anda telah menyelesaikan panduan memulai ini.