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:

  1. Buat dan deploy satu layanan Cloud Run.

    Dalam hal ini, Anda tidak akan menggunakan Cloud Deploy untuk men-deploy-nya.

  2. Buat cek uptime di Google Cloud Observability.

    Pemeriksaan ini memantau layanan Cloud Run Anda untuk memastikan layanan tersebut berjalan.

  3. 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.

  4. Buat konfigurasi Skaffold untuk mengidentifikasi layanan Cloud Run.

  5. 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.

  6. 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.

  7. 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

  • Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • 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.

    Aktifkan API

  • 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 init
  • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • 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.

    Aktifkan API

  • 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 init
  • Peran 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:

    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.

    1. 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"
      
    2. 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.

    1. Buka jendela terminal.

    2. Buat direktori baru dan buka direktori tersebut.

    mkdir deploy-analysis-run-quickstart
    cd deploy-analysis-run-quickstart
    
    1. Buat file bernama skaffold.yaml dengan 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.

    1. 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.

    1. Di direktori deploy-analysis-run-quickstart, buat file bernama policy.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.0
      

      Ganti UPTIME_ID dengan ID pemeriksaan uptime yang Anda buat sebelumnya.

    2. Jalankan perintah berikut untuk membuat kebijakan:

      gcloud monitoring policies create \
        --policy-from-file=policy.yaml\
        --project=PROJECT_ID
      

      Ganti PROJECT_ID dengan project ID Anda.

    3. 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.

    1. 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-central1
      

      Dalam YAML ini, ganti ALERT_POLICY_ID dengan output dari perintah gcloud monitoring policies list yang Anda jalankan sebelumnya, dan ganti PROJECT_ID dengan ID project yang Anda gunakan.

    2. Daftarkan pipeline dan target Anda dengan layanan Cloud Deploy:

      gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
      

      Sekarang Anda memiliki pipeline pengiriman, dengan satu target, yang siap men-deploy aplikasi Anda.

    3. 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.

      halaman pipeline pipeline pengiriman di konsol Google Cloud , yang menampilkan pipeline Anda

    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.

    1. Di konsol Google Cloud , buka halaman Delivery pipelines Cloud Deploy untuk melihat pipeline pengiriman ("deploy-analysis-demo-app-run").

      Buka halaman Delivery pipelines

    2. 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.

      Visualisasi pipeline pengiriman yang menunjukkan keberhasilan

      Rilis Anda juga tercantum di tab Rilis di bagian Detail pipeline pengiriman.

    3. Klik tab Peluncuran, di bagian Detail pipeline penayangan.

    4. Klik nama peluncuran untuk melihat detail peluncuran.

      Analisis dicantumkan sebagai tugas.

      peluncuran di konsol Google Cloud

    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.

    1. Edit file definisi Cloud Run, service.yaml, untuk mengubah nilai run.googleapis.com/manualInstanceCount dari 0 menjadi 1.

    2. Jalankan perintah berikut dari direktori deploy-analysis-run-quickstart yang sama untuk membuat release lain:

      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.

    1. Hapus layanan Cloud Run:

      gcloud run services delete my-analysis-run-service \
      --region=us-central1 \
      --project=PROJECT_ID
      
    2. Untuk 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_ID
      
    3. Hapus kebijakan pemberitahuan Google Cloud Observability:

      gcloud monitoring policies delete  ALERT_POLICY_ID
      
    4. Hapus bucket Cloud Storage yang dibuat Cloud Deploy.

      Salah satunya diakhiri dengan _clouddeploy, dan yang lainnya adalah [region].deploy-artifacts.[project].appspot.com.

      Buka halaman browser Cloud Storage

    Selesai, Anda telah menyelesaikan panduan memulai ini.

    Langkah berikutnya