Dokumen ini adalah bagian dari rangkaian yang membahas pola arsitektur yang dapat digunakan perusahaan untuk mengoptimalkan jejak cloud mereka dalam skala besar menggunakan Active Assist. Tutorial ini menunjukkan cara mem-build pipeline otomatisasi untuk rekomendasi Active Assist yang berfungsi dengan toolchain GKE Enterprise. Fitur ini ditujukan bagi pengguna yang menggunakan Config Sync untuk mengelola lingkungan GKE Enterprise dan Config Connector untuk mengelola resource Google Cloud. Bagian lain dari rangkaian ini adalah sebagai berikut:
- Pola penggunaan Active Assist dalam skala besar
- Menggunakan pipeline serverless dengan Active Assist
- Menggunakan toolchain GKE Enterprise dengan Active Assist (dokumen ini)
Pipeline otomatisasi yang Anda build dalam tutorial ini dapat membantu Anda mencapai hal berikut:
- Menskalakan penggunaan portofolio Active Assist di organisasi Anda.
- Menjadikan Active Assist sebagai bagian dari pipeline continuous integration dan continuous delivery (CI/CD).
- Mengontrol peninjauan dan aktuasi rekomendasi Active Assist menggunakan konstruksi seperti masalah GitHub dan permintaan pull.
Tutorial ini juga menggunakan kpt, toolkit open source yang dikembangkan oleh Google untuk membantu Anda mengelola, memanipulasi, menyesuaikan, dan menerapkan file data konfigurasi resource Kubernetes.
Arsitektur
Diagram arsitektur berikut menunjukkan komponen yang Anda gunakan dalam tutorial ini.
Komponen tersebut digunakan dengan cara berikut:
- Repositori GitHub jangan ulangi diri sendiri (DRY), yang digunakan untuk template Config Connector yang Anda deploy di seluruh project di organisasi Google Cloud Anda.
- Satu atau beberapa repositori GitHub yang khusus untuk project atau lingkungan dan menyimpan file konfigurasi terhidrasi. Repositori terhidrasi ini ditujukan untuk lingkungan yang dikelola Config Sync. Mereka menggunakan Config Connector untuk menjalankan dan mengelola resource Google Cloud di organisasi Google Cloud.
- Cluster GKE yang menggunakan Config Sync untuk kontrol versi dan deteksi penyimpangan. Cluster ini juga telah menginstal Config Connector. Dengan Config Connector, cluster dapat mengelola resource Google Cloud di seluruh organisasi Google Cloud.
- Pemicu Cloud Build yang memicu build saat template dikirim ke repositori DRY GitHub.
- Pemicu Cloud Build terjadwal yang memicu build secara berkala. Tugas build menggunakan fungsi kpt. Fungsi ini memanggil Active Assist Recommender API untuk mengambil rekomendasi aktif. Fitur ini meninjau dan mengurai rekomendasi untuk menentukan apakah resource Google Cloud yang dikelola Config Connector perlu diubah ukurannya atau dioptimalkan. Fungsi kpt membuat masalah GitHub di repositori DRY dengan detail perubahan yang direkomendasikan jika resource Google Cloud yang dikelola Konektor Config perlu diubah ukurannya atau dioptimalkan.
Alur kerja untuk arsitektur ini adalah sebagai berikut:
- Tim yang diberi otorisasi dengan akses ke repositori DRY akan membuat dan mengelola template Config Connector di repositori.
- Tugas Cloud Build dipicu saat template dibuat atau
diubah dan diperiksa ke cabang
main
. - Tugas Cloud Build menghidrasi template dengan memanggil penyetel kpt. Tugas ini mengirim file konfigurasi terhidrasi ke repositori GitHub terhidrasi. Secret Manager digunakan untuk menyimpan kunci deployment GitHub untuk repositori pribadi.
- Config Sync memantau perubahan pada repositori terhidrasi dan menerapkan update yang ditemukan di repositori ke cluster terkelola.
- Config Connector memantau perubahan dan mengaktifkan resource Google Cloud jika ada resource yang perlu dibuat atau diperbarui sebagai akibat dari perubahan Kubernetes Resource Model (KRM) yang diterapkan oleh Config Sync.
- Pemicu Cloud Build terjadwal berjalan secara berkala untuk memanggil Recommender API untuk mengambil rekomendasi aktif untuk project yang dikelola Config Connector.
- Tugas Cloud Build terjadwal menjalankan fungsi kpt kustom untuk memanggil Recommender API serta mengambil dan mengurai rekomendasi aktif.
- Fungsi kpt membuat masalah GitHub yang menunjukkan perbandingan konfigurasi resource saat ini dan konfigurasi yang direkomendasikan untuk resource tersebut. Dengan pendekatan ini, masalah GitHub dibuat di repositori DRY, yang memudahkan pemantauan perubahan repositori.
Tujuan
- Buat contoh repositori GitHub berikut:
- Repositori DRY untuk KRM Config Connector.
- Repositori untuk menyimpan file konfigurasi terhidrasi yang dihasilkan menggunakan penyetel kpt.
- Membuat cluster GKE dengan Config Sync dan Config Connector.
- Membuat contoh fungsi kpt untuk mengambil rekomendasi Active Assist untuk project yang dikelola oleh Config Connector.
- Buat pemicu Cloud Build yang dipicu saat template didorong ke cabang
main
dari repositori DRY. - Buat tugas Cloud Build terjadwal yang berjalan secara berkala untuk mengambil rekomendasi Active Assist yang tersedia untuk resource yang dikelola oleh Config Connector.
- Uji pipeline end-to-end dengan rekomendasi stub yang disediakan di repositori GitHub untuk tutorial ini.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Cloud Build
- Cloud Run
- Firestore
- Pub/Sub
- Container Registry
- Cloud Scheduler
- Edisi Google Kubernetes Engine (GKE) Enterprise
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
-
Di konsol Google Cloud, buka halaman Pemilih project.
-
Pilih atau buat project Google Cloud.
- Catat ID project Google Cloud. Anda akan menggunakan ID ini di bagian berikutnya
saat menyiapkan lingkungan. Project ini disebut sebagai project
build
dalam seluruh tutorial. -
Aktifkan API Cloud Build, Firestore, App Engine, Pub/Sub, Cloud Run, Cloud Scheduler, dan Cloud Source .
Anda menggunakan kredensial aplikasi default untuk tutorial ini. Jika diminta untuk membuat kredensial di halaman Add credentials to your project, klik Cancel. -
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
Menyiapkan lingkungan Anda
Dalam tutorial ini, Anda akan menjalankan semua perintah di Cloud Shell.
Di konsol Google Cloud, aktifkan Cloud Shell.
Tetapkan variabel untuk project ID dan nomor project dari project Google Cloud
build
saat ini:export RECO_MGR_PROJECT=PROJECT_ID gcloud config set project $RECO_MGR_PROJECT export RECO_MGR_PROJECT_NUMBER=$(gcloud projects describe $RECO_MGR_PROJECT --format='value(projectNumber)')
Ganti
PROJECT_ID
dengan project ID yang Anda catat di bagian sebelumnya.Tetapkan variabel untuk region deployment:
export REGION=us-central1 export ZONE=us-central1-a
Clone repositori yang berisi kode untuk aplikasi contoh yang digunakan dalam tutorial ini:
git clone https://github.com/GoogleCloudPlatform/activeassist-anthos-toolchain.git
Buka direktori project:
cd activeassist-anthos-toolchain
Membangun pipeline
Di bagian ini, Anda akan membuat komponen untuk mem-build pipeline. Rekomendasi Active Assist dibuat berdasarkan pola penggunaan dan metrik sistem. Setiap kategori rekomendasi dapat menggunakan periode waktu default yang berbeda untuk menganalisis metrik dan data penggunaan berdasarkan rekomendasi yang dibuat. Untuk menguji pipeline menyeluruh, repositori yang Anda clone di langkah sebelumnya memberikan rekomendasi contoh (stub) yang Anda gunakan untuk menjalankan pipeline menyeluruh.
Atau, jika menjalankan pipeline dalam project contoh yang sudah memiliki resource dan rekomendasi, Anda dapat membuat perubahan yang sesuai pada kode contoh, lalu menjalankan pipeline.
Menyiapkan contoh repositori GitHub pribadi
Di bagian berikut, Anda akan menyiapkan contoh repositori GitHub untuk tutorial ini.
Menyiapkan repositori GitHub DRY pribadi
Buat repositori GitHub pribadi untuk repositori DRY. Catat nama yang Anda berikan ke repositori.
Di Cloud Shell, buat variabel lingkungan untuk nama pengguna GitHub Anda dan nama repositori DRY:
export REPO_OWNER=YOUR_GITHUB_USERNAME export DRY_REPO_NAME=YOUR_PRIVATE_DRY_REPO
Ganti kode berikut:
YOUR_GITHUB_USERNAME
: nama pengguna GitHub Anda.YOUR_PRIVATE_DRY_REPO
: nama repositori DRY Anda.
Buat token akses pribadi (PAT) untuk membuat masalah di repositori ini. Pipeline membuat masalah GitHub jika ada rekomendasi Active Assist yang perlu ditinjau. Untuk mengetahui informasi selengkapnya tentang cara membuat PAT di GitHub, lihat dokumentasi GitHub.
Saat Anda menetapkan cakupan untuk token ini, pilih Full control of private repositories.
Di Cloud Shell, buat variabel lingkungan untuk PAT yang Anda hasilkan:
export GITHUB_TOKEN=YOUR_PERSONAL_ACCESS_TOKEN
Ganti
YOUR_PERSONAL_ACCESS_TOKEN
dengan token Anda sendiri.
Menyiapkan repositori GitHub terhidrasi pribadi
Buat repositori GitHub pribadi untuk repositori terhidrasi. Catat nama yang Anda berikan ke repositori.
Di Cloud Shell, tetapkan variabel lingkungan untuk repositori terhidrasi:
export HYDRATED_REPO_NAME=YOUR_PRIVATE_HYDRATED_REPO export HYDRATED_REPO='git@github.com:$REPO_OWNER/$HYDRATED_REPO_NAME.git'
Ganti
YOUR_PRIVATE_HYDRATED_REPO
dengan nama repositori terhidrasi Anda.Buat pasangan kunci deploy:
ssh-keygen -t rsa -b 4096 \ -C 'active-assist-robot' \ -N '' \ -f $(pwd)/active-assist-robot
Dengan kunci deploy, Anda dapat men-deploy ke repositori GitHub pribadi saat menjalankan tugas Cloud Build untuk melembabkan file konfigurasi.
Cetak kunci yang dibuat:
cat $(pwd)/active-assist-robot.pub
Tambahkan kunci deploy ke repositori GitHub pribadi. Pastikan Anda memilih Izinkan akses tulis saat menambahkan kunci deploy. Untuk mempelajari cara menambahkan kunci deployment ke repositori GitHub, lihat dokumentasi GitHub untuk Mengelola kunci deployment.
Mengupload kunci GitHub ke Secret Manager
Di Cloud Shell, buat rahasia untuk menyimpan kunci pribadi dari pasangan kunci deploy:
gcloud secrets create github-ssh-key \ --data-file=$(pwd)/active-assist-robot
Buat rahasia untuk menyimpan PAT:
echo $GITHUB_TOKEN | gcloud secrets create github-pat --data-file=-
Membuat cluster GKE
Di bagian ini, Anda akan membuat cluster GKE dengan add-on Config Connector, membuat identitas, dan mengonfigurasi Config Connector. Anda juga akan mengonfigurasi Config Sync. Anda dapat menggunakan Config Sync untuk membuat konfigurasi umum di seluruh infrastruktur, termasuk kebijakan kustom, dan menerapkannya baik di infrastruktur lokal maupun di cloud. Config Sync mengevaluasi perubahan dan meluncurkannya ke semua cluster Kubernetes sehingga status yang Anda inginkan selalu tercermin dalam cluster Anda.
Di Cloud Shell, buat cluster GKE baru dengan add-on Config Connector yang diaktifkan:
gcloud container clusters create sample-ops \ --machine-type n1-standard-4 \ --zone $ZONE \ --release-channel regular \ --addons ConfigConnector \ --workload-pool=$RECO_MGR_PROJECT.svc.id.goog \ --enable-stackdriver-kubernetes \ --enable-ip-alias
Selesaikan bagian berikut dalam panduan Menginstal dengan add-on GKE untuk membuat identitas dan mengonfigurasi Config Connector.
Instal Config Sync di cluster GKE yang Anda buat. Saat mengonfigurasi Config Sync, Anda harus melakukan hal berikut:
- Gunakan token untuk memberikan akses hanya baca Config Sync ke Git.
Gunakan token GitHub yang Anda
buat saat menyiapkan repositori GitHub DRY pribadi.
Token tersedia melalui variabel lingkungan
$GITHUB_TOKEN
. - Mengonfigurasi Config Sync menggunakan gcloud.
Tetapkan setelan berikut:
- sourceFormat:
hierarchy
- syncRepo:
https://github.com/YOUR_GITHUB_USERNAME/YOUR_PRIVATE_HYDRATED_REPO
- syncBranch:
main
- secretType:
token
- policyDir: Jangan isi opsi ini
- sourceFormat:
- Gunakan token untuk memberikan akses hanya baca Config Sync ke Git.
Gunakan token GitHub yang Anda
buat saat menyiapkan repositori GitHub DRY pribadi.
Token tersedia melalui variabel lingkungan
Buat pemicu Cloud Build untuk mengirim ke repositori terhidrasi
Di bagian berikut, Anda akan membuat pemicu Cloud Build yang dipicu saat template dikirim ke cabang utama repositori YOUR_PRIVATE_DRY_REPO
Anda. Pemicu ini menjalankan langkah-langkah yang menghidrasi template KRM config-as-data
di repositori YOUR_PRIVATE_DRY_REPO
dan mengirim file konfigurasi terhidrasi ke repositori YOUR_PRIVATE_HYDRATED_REPO
Anda.
Menghubungkan Cloud Build ke repositori GitHub Anda
Di bagian ini, Anda akan
menghubungkan
repositori GitHub YOUR_PRIVATE_DRY_REPO
dan YOUR_PRIVATE_HYDRATED_REPO
ke Cloud Build.
Buka halaman marketplace GitHub untuk aplikasi Cloud Build.
Klik Setup with Google Cloud Build.
Jika diminta, login ke GitHub.
Pilih Hanya pilih repositori.
Gunakan drop-down Select repository untuk mengaktifkan akses ke repositori
YOUR_PRIVATE_DRY_REPO
danYOUR_PRIVATE_HYDRATED_REPO
melalui aplikasi Cloud Build.Klik Install (Instal).
Login ke Google Cloud Halaman Authorization akan ditampilkan dan Anda diminta untuk mengizinkan aplikasi Google Cloud Build agar terhubung ke Google Cloud.
Klik otorisasikan Google Cloud Build dengan GoogleCloudBuild. Anda akan dialihkan ke konsol Google Cloud.
Pilih project Google Cloud Anda.
Centang kotak izin, lalu klik Berikutnya.
Klik Install (Instal).
Login ke Google Cloud Halaman Authorization akan ditampilkan dan Anda diminta untuk mengizinkan aplikasi Google Cloud Build agar terhubung ke Google Cloud.
Klik otorisasikan Google Cloud Build dengan GoogleCloudBuild. Anda akan dialihkan ke konsol Google Cloud.
Pilih project Google Cloud Anda.
Centang kotak izin, lalu klik Berikutnya.
Di halaman Select repository yang muncul, pilih repositori GitHub berikut:
YOUR_PRIVATE_DRY_REPO
YOUR_PRIVATE_HYDRATED_REPO
Klik Connect, lalu klik Done.
Membuat pemicu Cloud Build untuk repositori DRY
Jalankan perintah berikut di Cloud Shell:
envsubst < cloudbuild.template.yaml > cloudbuild.yaml
Perintah tersebut akan menghasilkan file
cloudbuild.yaml
.Buat pemicu:
gcloud beta builds triggers create github \ --name ActiveAssistDemo \ --repo-name=$DRY_REPO_NAME \ --repo-owner=$REPO_OWNER \ --branch-pattern="main" \ --build-config=cloudbuild.yaml
Beri akun layanan Cloud Build izin untuk mengakses Secret Manager:
gcloud secrets add-iam-policy-binding github-ssh-key \ --member="serviceAccount:${RECO_MGR_PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor" gcloud secrets add-iam-policy-binding github-pat \ --member="serviceAccount:${RECO_MGR_PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"
Membuat pemicu Cloud Build terjadwal untuk rekomendasi Active Assist
Di bagian berikut, Anda akan membuat pemicu Cloud Build terjadwal yang berjalan secara berkala. Pemicu ini mengambil rekomendasi Active Assist menggunakan fungsi kpt dan menentukan apakah ada rekomendasi aktif untuk resource di repositori YOUR_PRIVATE_HYDRATED_REPO
Anda. Fungsi kpt juga membuat masalah GitHub di repositori
YOUR_PRIVATE_HYDRATED_REPO
Anda jika ada rekomendasi aktif untuk konfigurasi resource yang
perlu ditinjau dan diaktifkan.
Membuat image Cloud Build
Di bagian ini, Anda akan membuat image Cloud Build yang memiliki komponen kpt, gh, dan Node.
Di Cloud Shell, build dan kirim image Docker ke Container Registry:
gcloud auth configure-docker docker build -t gcr.io/$RECO_MGR_PROJECT/kpt-dev-gh:1 ./recommender-kpt-function docker push gcr.io/$RECO_MGR_PROJECT/kpt-dev-gh:1
Buat pemicu Cloud Build untuk repo terhidrasi Anda
Di Cloud Shell, buat file konfigurasi yang diperlukan untuk menyiapkan pemicu Cloud Build terjadwal:
envsubst < cloudbuild-scheduled-recommendations.template.yaml > cloudbuild-scheduled-recommendations.yaml
Buat pemicu Cloud Build:
gcloud beta builds triggers create github \ --name ActiveAssistScheduledRecommendations \ --repo-name=YOUR_PRIVATE_HYDRATED_REPO \ --repo-owner=$REPO_OWNER \ --branch-pattern="main" \ --build-config=cloudbuild-scheduled-recommendations.yaml
Dapatkan ID pemicu ini:
export TRIGGER_ID=`gcloud beta builds triggers describe \ ActiveAssistScheduledRecommendations \ --format="value(id)"`
Buat tugas Cloud Scheduler untuk memanggil pemicu Anda
Di Cloud Shell, buat akun layanan:
gcloud iam service-accounts create build-invoker \ --description "Service Account used by Cloud Scheduler to invoke the sample scheduled Cloud Build job" \ --display-name "recommender-scheduler-sa" \ --project $RECO_MGR_PROJECT
Tugas Cloud Scheduler menggunakan akun layanan ini untuk menjalankan layanan
recommender-parser
.Beri akun layanan izin untuk memanggil tugas Cloud Build:
gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:build-invoker@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/cloudbuild.builds.editor \ --project $RECO_MGR_PROJECT gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:build-invoker@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer \ --project $RECO_MGR_PROJECT
Buat tugas Cloud Scheduler untuk memanggil pemicu yang Anda buat di langkah sebelumnya:
gcloud scheduler jobs create http scheduled-build \ --project $RECO_MGR_PROJECT \ --time-zone "America/Los_Angeles" \ --schedule="0 */3 * * *" \ --uri="https://cloudbuild.googleapis.com/v1/projects/${RECO_MGR_PROJECT}/triggers/${TRIGGER_ID}:run" \ --description="Scheduler job to invoke Cloud Build" \ --oauth-service-account-email="build-invoker@$RECO_MGR_PROJECT.iam.gserviceaccount.com" \ --headers="Content-Type=application/json" \ --http-method="POST" \
Pilih
Y
jika Anda melihat pesan berikut:There is no App Engine app in the project.
Jika Anda diminta untuk memilih region tempat Anda ingin menempatkan aplikasi App Engine, pilih region
us-central
.
Melakukan commit dan mengirim file konfigurasi Cloud Build ke GitHub
Kirim dua file konfigurasi Cloud Build yang Anda buat ke repositori YOUR_PRIVATE_DRY_REPO
Anda:
git remote add dry https://github.com/$REPO_OWNER/$DRY_REPO_NAME.git
git add cloudbuild.yaml
git add cloudbuild-scheduled-recommendations.yaml
git commit -m "Added cloudbuild configuration YAMLs"
git push dry main
Anda mungkin diminta untuk memasukkan kredensial GitHub saat mengirim ke repositori pribadi.
Meninjau hasil tugas Cloud Build
Saat Anda meng-commit dan mengirim perubahan ke repositori YOUR_PRIVATE_DRY_REPO
, tugas Cloud Build akan dipicu. Jika tugas Cloud Build berhasil dijalankan, beberapa resource akan dibuat. Di bagian ini, Anda akan memverifikasi apakah resource dibuat setelah tugas Cloud Build selesai.
Di Cloud Shell, di cluster
sample-ops
, validasikan bahwa Anda memiliki namespace bernamaactiveassist-kcc
:kubectl get ns | grep activeassist-kcc
Config Connector men-deploy contoh instance Compute Engine yang sedang berjalan ke project
PROJECT_ID
Anda.Pastikan instance Compute Engine ada dalam project:
gcloud compute instances list | grep \ computeinstance-sample-cloudmachine
Jenis
MACHINE_TYPE
untuk mesin ini adalahn1-standard-1
.
Jalankan pengujian menyeluruh
Agar Anda dapat menguji pipeline menyeluruh, repositori yang Anda clone untuk tutorial ini menyediakan rekomendasi contoh (stub). Anda menggunakan stub ini untuk menjalankan
pipeline menyeluruh. Stub ini meniru payload rekomendasi Active Assist dan memiliki rekomendasi untuk mengubah jenis mesin bagi instance mesin komputasi yang di-deploy dari jenis instance n1-standard-1
ke jenis instance g1-small
.
Di bagian ini, Anda akan memanggil pemicu Cloud Build terjadwal
secara manual untuk menjalankan tugas yang menggunakan fungsi kpt untuk mengambil
rekomendasi Active Assist. Anda juga memverifikasi bahwa masalah GitHub
dibuat di repositori YOUR_PRIVATE_DRY_REPO
Anda.
Buka halaman Pemicu Build di Konsol Google Cloud.
Pilih pemicu
ActiveAssistScheduledRecommendations
.Untuk menguji pemicu secara manual, klik Run pada entri untuk pemicu Anda di daftar pemicu.
Pemicu ini membuat masalah GitHub di repositori
YOUR_PRIVATE_DRY_REPO
Anda. Masalahnya mirip dengan berikut ini:gcloud auth configure-docker docker build -t gcr.io/$RECO_MGR_PROJECT/kpt-dev-gh:1 ./recommender-kpt-function docker push gcr.io/$RECO_MGR_PROJECT/kpt-dev-gh:1
Dalam contoh masalah ini, output fungsi kpt menunjukkan bahwa jenis
MACHINE_TYPE
saat ini untuk instance Compute Engine adalah jenisn1-standard-1
. Rekomendasi Active Assist adalah mengubahnya menjadi jenisg1-small
.Peninjau kontrol versi di perusahaan Anda dapat meninjau masalah GitHub otomatis dan menindaklanjutinya sebagaimana mestinya untuk perusahaan Anda.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
- Pelajari lebih lanjut teknologi serverless Google Cloud.
- Baca cara mengintegrasikan rekomendasi Policy Intelligence ke dalam pipeline Infrastruktur sebagai Kode (IaC).