Tutorial ini menjelaskan cara mengelola infrastruktur sebagai kode dengan Terraform dan Cloud Build menggunakan metodologi GitOps yang populer. Istilah GitOps pertama kali diciptakan oleh Weaveworks, dan konsep utamanya adalah menggunakan repositori Git untuk menyimpan status lingkungan yang Anda inginkan. Terraform adalah alat HashiCorp yang memungkinkan Anda membuat, mengubah, dan meningkatkan infrastruktur cloud secara tepat menggunakan kode. Dalam tutorial ini, Anda menggunakan Cloud Build (layanan continuous integration Google Cloud) untuk menerapkan manifes Terraform secara otomatis ke lingkungan Anda.
Tutorial ini ditujukan bagi developer dan operator yang mencari strategi elegan untuk membuat perubahan pada infrastruktur yang dapat diprediksi. Artikel ini mengasumsikan bahwa Anda sudah familier dengan Google Cloud, Linux, dan GitHub.
Laporan State of DevOps mengidentifikasi kemampuan yang mendorong performa pengiriman software. Tutorial ini akan membantu Anda dengan kemampuan berikut:
Arsitektur
Untuk mendemonstrasikan cara tutorial ini menerapkan praktik GitOps untuk mengelola
eksekusi Terraform, pertimbangkan diagram arsitektur berikut. Perhatikan bahwa metode ini menggunakan cabang GitHub—dev
dan prod
—untuk mewakili lingkungan yang sebenarnya. Lingkungan ini ditentukan oleh jaringan Virtual Private Cloud (VPC)—dev
dan prod
—ke dalam project Google Cloud.
Proses ini dimulai saat Anda mengirim kode Terraform ke cabang dev
atau prod
. Dalam skenario ini, Cloud Build akan memicu, lalu menerapkan manifes Terraform untuk mencapai status yang Anda inginkan di lingkungannya masing-masing.
Di sisi lain, saat Anda mengirim kode Terraform ke cabang lain—misalnya, ke cabang fitur—Cloud Build akan beroperasi untuk menjalankan terraform plan
, tetapi tidak ada yang diterapkan ke lingkungan apa pun.
Idealnya, developer atau operator harus membuat proposal infrastruktur ke cabang yang tidak dilindungi, lalu mengirimkannya melalui permintaan pull.
Aplikasi Cloud Build GitHub, yang akan dibahas dalam tutorial ini nanti, akan secara otomatis memicu tugas build dan menautkan laporan terraform plan
ke permintaan pull ini. Dengan cara ini, Anda dapat membahas dan meninjau potensi perubahan dengan kolaborator dan menambahkan commit tindak lanjut sebelum perubahan digabungkan ke cabang dasar.
Jika tidak ada masalah yang diajukan, Anda harus menggabungkan perubahan ke cabang
dev
terlebih dahulu. Penggabungan ini memicu deployment infrastruktur ke lingkungan dev
, sehingga Anda dapat menguji lingkungan ini. Setelah menguji dan yakin dengan apa yang di-deploy, Anda harus menggabungkan cabang dev
ke cabang prod
untuk memicu penginstalan infrastruktur ke lingkungan produksi.
Tujuan
- Menyiapkan repositori GitHub Anda.
- Konfigurasi Terraform untuk menyimpan status di bucket Cloud Storage.
- Berikan izin ke akun layanan Cloud Build Anda.
- Hubungkan Cloud Build ke repositori GitHub Anda.
- Ubah konfigurasi lingkungan Anda di cabang fitur.
- Dorong perubahan pada lingkungan pengembangan.
- Mendorong perubahan pada lingkungan produksi.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
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.
Prasyarat
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Di Cloud Shell, dapatkan ID project yang baru saja Anda pilih:
Jika perintah ini tidak menampilkan project ID, konfigurasikan Cloud Shell untuk menggunakan project Anda. Gantigcloud config get-value project
PROJECT_ID
dengan project ID Anda.gcloud config set project PROJECT_ID
- Aktifkan API yang diperlukan:
Langkah ini mungkin memerlukan waktu beberapa menit hingga selesai.gcloud services enable cloudbuild.googleapis.com compute.googleapis.com
- Jika Anda belum pernah menggunakan Git di Cloud Shell, konfigurasikan dengan nama dan alamat email Anda:
Git menggunakan informasi ini untuk mengidentifikasi Anda sebagai penulis commit yang Anda buat di Cloud Shell.git config --global user.email "YOUR_EMAIL_ADDRESS" git config --global user.name "YOUR_NAME"
Menyiapkan repositori GitHub Anda
Dalam tutorial ini, Anda menggunakan satu repositori Git untuk menentukan infrastruktur cloud. Anda mengorkestrasi infrastruktur ini dengan memiliki cabang yang berbeda yang sesuai dengan lingkungan yang berbeda:
- Cabang
dev
berisi perubahan terbaru yang diterapkan ke lingkungan pengembangan. - Cabang
prod
berisi perubahan terbaru yang diterapkan ke lingkungan produksi.
Dengan infrastruktur ini, Anda dapat mereferensikan repositori untuk mengetahui konfigurasi yang diharapkan di setiap lingkungan dan mengusulkan perubahan baru dengan menggabungkannya ke dalam lingkungan dev
terlebih dahulu. Selanjutnya, promosikan perubahan tersebut dengan
menggabungkan cabang dev
ke cabang prod
berikutnya.
Untuk memulai, Anda harus melakukan fork repositori solutions-terraform-cloudbuild-gitops.
- Di GitHub, buka https://github.com/GoogleCloudPlatform/solutions-terraform-cloudbuild-gitops.git.
Di pojok kanan atas halaman, klik Fork.
Sekarang Anda memiliki salinan repositori
solutions-terraform-cloudbuild-gitops
dengan file sumber.
Di Cloud Shell, buat clone repositori yang di-fork ini, dengan mengganti
YOUR_GITHUB_USERNAME
dengan nama pengguna GitHub Anda:cd ~ git clone https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops.git cd ~/solutions-terraform-cloudbuild-gitops
Kode dalam repositori ini disusun sebagai berikut:
Folder
environments/
berisi subfolder yang merepresentasikan lingkungan, sepertidev
danprod
, yang masing-masing memberikan pemisahan logis antara workload pada berbagai tahap kematangan, pengembangan, dan produksi. Meskipun memiliki lingkungan yang semirip mungkin dengan ini merupakan praktik yang baik, setiap subfolder memiliki konfigurasi Terraform-nya sendiri untuk memastikan bahwa lingkungan tersebut dapat memiliki setelan unik sesuai kebutuhan.Folder
modules/
berisi modul Terraform inline. Modul ini mewakili pengelompokan logis resource terkait dan digunakan untuk berbagi kode di berbagai lingkungan.File
cloudbuild.yaml
adalah file konfigurasi build yang berisi petunjuk untuk Cloud Build, seperti cara menjalankan tugas berdasarkan serangkaian langkah. File ini menentukan eksekusi bersyarat yang bergantung pada cabang yang digunakan Cloud Build untuk mengambil kode, misalnya:Untuk cabang
dev
danprod
, langkah-langkah berikut dijalankan:terraform init
terraform plan
terraform apply
Untuk cabang lain, langkah-langkah berikut dijalankan:
terraform init
untuk semua subfolderenvironments
terraform plan
untuk semua subfolderenvironments
Untuk memastikan bahwa perubahan yang diusulkan sesuai untuk setiap lingkungan,
terraform init
dan terraform plan
dijalankan untuk semua subfolder
environments
. Sebelum menggabungkan permintaan pull, Anda dapat meninjau paket
untuk memastikan bahwa, misalnya, akses tidak diberikan kepada
entitas yang tidak sah.
Mengonfigurasi Terraform untuk menyimpan status di bucket Cloud Storage
Secara default, Terraform menyimpan status secara lokal dalam file bernama terraform.tfstate
. Konfigurasi default ini dapat menyulitkan tim untuk menggunakan Terraform, terutama ketika banyak pengguna menjalankan
Terraform secara bersamaan dan setiap mesin memiliki pemahamannya sendiri tentang infrastruktur saat ini.
Untuk membantu Anda menghindari masalah tersebut, bagian ini mengonfigurasi status jarak jauh yang mengarah ke bucket Cloud Storage. Status jarak jauh adalah fitur
backend
dan, dalam tutorial ini, dikonfigurasi dalam file backend.tf
—misalnya:
Pada langkah-langkah berikut, Anda akan membuat bucket Cloud Storage dan mengubah beberapa file agar mengarah ke bucket baru dan project Google Cloud Anda.
Di Cloud Shell, buat bucket Cloud Storage.
1. Aktifkan Pembuatan Versi Objek untuk menyimpan histori deployment Anda:PROJECT_ID=$(gcloud config get-value project) gsutil mb gs://${PROJECT_ID}-tfstate
```sh gcloud storage buckets update gs://${PROJECT_ID}-tfstate --versioning ``` Enabling Object Versioning increases [storage costs](/storage/pricing){: track-type="tutorial" track-name="internalLink" track-metadata-position="body" }, which you can mitigate by configuring [Object Lifecycle Management](/storage/docs/lifecycle){: track-type="tutorial" track-name="internalLink" track-metadata-position="body" } to delete old state versions.
Ganti placeholder
PROJECT_ID
dengan ID project di fileterraform.tfvars
danbackend.tf
:cd ~/solutions-terraform-cloudbuild-gitops sed -i s/PROJECT_ID/$PROJECT_ID/g environments/*/terraform.tfvars sed -i s/PROJECT_ID/$PROJECT_ID/g environments/*/backend.tf
Di OS X/MacOS, Anda mungkin perlu menambahkan dua tanda kutip (
""
) setelahsed -i
, sebagai berikut:cd ~/solutions-terraform-cloudbuild-gitops sed -i "" s/PROJECT_ID/$PROJECT_ID/g environments/*/terraform.tfvars sed -i "" s/PROJECT_ID/$PROJECT_ID/g environments/*/backend.tf
Periksa apakah semua file telah diperbarui:
git status
Outputnya akan terlihat seperti ini:
On branch dev Your branch is up-to-date with 'origin/dev'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: environments/dev/backend.tf modified: environments/dev/terraform.tfvars modified: environments/prod/backend.tf modified: environments/prod/terraform.tfvars no changes added to commit (use "git add" and/or "git commit -a")
Commit dan kirim perubahan Anda:
git add --all git commit -m "Update project IDs and buckets" git push origin dev
Bergantung pada konfigurasi GitHub Anda, Anda harus melakukan autentikasi untuk menerapkan perubahan sebelumnya.
Memberikan izin ke akun layanan Cloud Build Anda
Agar akun layanan Cloud Build dapat menjalankan skrip Terraform dengan tujuan mengelola resource Google Cloud, Anda perlu memberinya akses yang sesuai ke project Anda. Untuk mempermudah, akses editor project diberikan dalam tutorial ini. Namun, jika peran editor project memiliki izin yang luas, di lingkungan produksi, Anda harus mengikuti praktik terbaik keamanan IT perusahaan Anda, yang biasanya memberikan akses dengan hak istimewa terendah.
Di Cloud Shell, ambil email untuk akun layanan Cloud Build project Anda:
CLOUDBUILD_SA="$(gcloud projects describe $PROJECT_ID \ --format 'value(projectNumber)')@cloudbuild.gserviceaccount.com"
Berikan akses yang diperlukan ke akun layanan Cloud Build Anda:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$CLOUDBUILD_SA --role roles/editor
Langsung menghubungkan Cloud Build ke repositori GitHub Anda
Bagian ini menunjukkan cara menginstal aplikasi Cloud Build GitHub. Penginstalan ini memungkinkan Anda menghubungkan repositori GitHub dengan project Google Cloud, sehingga Cloud Build dapat diterapkan secara otomatis manifes Terraform setiap kali Anda membuat cabang baru atau mengirim kode ke GitHub.
Langkah-langkah berikut memberikan petunjuk penginstalan aplikasi hanya untuk repositori
solutions-terraform-cloudbuild-gitops
, tetapi Anda dapat memilih untuk menginstal aplikasi ke lebih banyak atau semua repositori Anda.Buka halaman GitHub Marketplace untuk aplikasi Cloud Build:
Buka halaman aplikasi Cloud Build
- Jika ini pertama kalinya Anda mengonfigurasi aplikasi di GitHub, klik Setup with Google Cloud Build di bagian bawah halaman, lalu klik Grant this app access to your GitHub account.
- Jika ini bukan pertama kalinya mengonfigurasi aplikasi di GitHub: Klik Configure access. Halaman Applications pada akun pribadi Anda akan terbuka.
Klik Configure di baris Cloud Build.
Pilih Only select repository, lalu pilih
solutions-terraform-cloudbuild-gitops
untuk terhubung ke repositori.Klik Save atau Install—label tombol akan berubah bergantung pada alur kerja Anda. Anda sekarang dialihkan ke Google Cloud untuk melanjutkan penginstalan.
Login dengan akun Google Cloud Anda. Jika diminta, izinkan integrasi Cloud Build dengan GitHub.
Di halaman Cloud Build, pilih project Anda. Wizard akan muncul.
Di bagian Select repository, pilih akun GitHub Anda dan repositori
solutions-terraform-cloudbuild-gitops
.Jika Anda menyetujui persyaratan dan ketentuan ini, pilih kotak centang, lalu klik Connect.
Di bagian Create a trigger, klik Create a trigger:
- Tambahkan nama pemicu, seperti
push-to-branch
. Catat nama pemicu ini karena Anda akan membutuhkannya nanti. - Di bagian Event, pilih Push to a branch.
- Di bagian Source, pilih
.*
di kolom Branch. - Klik Create.
- Tambahkan nama pemicu, seperti
Aplikasi GitHub Cloud Build sekarang sudah dikonfigurasi, dan repositori GitHub Anda ditautkan ke project Google Cloud Anda. Mulai sekarang, perubahan pada repositori GitHub akan memicu eksekusi Cloud Build, yang melaporkan hasilnya kembali ke GitHub menggunakan Pemeriksaan GitHub.
Mengubah konfigurasi lingkungan Anda di cabang fitur baru
Saat ini, sebagian besar lingkungan Anda telah dikonfigurasi. Jadi, saatnya membuat beberapa perubahan kode di lingkungan pengembangan Anda.
Di GitHub, buka halaman utama repositori Anda yang sudah di-fork.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Pastikan Anda berada di cabang
dev
.Untuk membuka file yang akan diedit, buka file
modules/firewall/main.tf
dan klik ikon pensil.Di baris 30, perbaiki kesalahan ketik
"http-server2"
di kolomtarget_tags
.Nilai harus berupa
"http-server"
.Tambahkan pesan commit di bagian bawah halaman, seperti "Perbaiki target firewall http", lalu pilih Create a new branch for this commit and start a pull request.
Klik Propose changes.
Pada halaman berikutnya, klik Create pull request untuk membuka permintaan pull baru dengan perubahan Anda.
Setelah permintaan pull Anda terbuka, tugas Cloud Build akan dimulai secara otomatis.
Klik Show all checks dan tunggu hingga centang berwarna hijau.
Klik Details untuk melihat informasi selengkapnya, termasuk output
terraform plan
di link View more details on Google Cloud Build.
Jangan gabungkan permintaan pull Anda.
Perhatikan bahwa tugas Cloud Build menjalankan pipeline yang ditentukan dalam file
cloudbuild.yaml
. Seperti yang telah dibahas sebelumnya, pipeline ini memiliki perilaku yang berbeda bergantung pada cabang yang diambil. Build akan memeriksa apakah variabel$BRANCH_NAME
cocok dengan folder lingkungan mana pun. Jika demikian, Cloud Build akan menjalankanterraform plan
untuk lingkungan tersebut. Jika tidak, Cloud Build akan mengeksekusiterraform plan
untuk semua lingkungan guna memastikan perubahan yang diusulkan sesuai untuk semua lingkungan. Jika salah satu rencana ini gagal dijalankan, build akan gagal.Demikian pula, perintah
terraform apply
yang akan berjalan untuk cabang lingkungan, tetapi sepenuhnya diabaikan dalam kasus lainnya. Di bagian ini, Anda telah mengirimkan perubahan kode ke cabang baru, sehingga tidak ada deployment infrastruktur yang diterapkan ke project Google Cloud Anda.Menerapkan keberhasilan eksekusi Cloud Build sebelum menggabungkan cabang
Untuk memastikan penggabungan hanya dapat diterapkan jika setiap eksekusi Cloud Build berhasil, lanjutkan dengan langkah-langkah berikut:
Di GitHub, buka halaman utama repositori Anda yang sudah di-fork.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Di bagian nama repositori Anda, klik Setelan.
Di menu sebelah kiri, klik Branches.
Pada bagian Branch protection rules, klik Add rule.
Di Branch name pattern, ketik
dev
.Di bagian Protect matching branches, pilih Require status checks to pass before merging.
Telusuri nama pemicu Cloud Build yang telah Anda buat sebelumnya.
Klik Create.
Ulangi langkah 3–7, tetapkan Branch name pattern ke
prod
.
Konfigurasi ini penting untuk melindungi cabang
dev
danprod
. Artinya, commit harus terlebih dahulu didorong ke cabang lain, dan baru setelah itu dapat digabungkan ke cabang yang dilindungi. Dalam tutorial ini, perlindungan mengharuskan eksekusi Cloud Build berhasil agar penggabungan diizinkan.Mendorong perubahan pada lingkungan pengembangan
Anda memiliki permintaan pull yang menunggu untuk digabungkan. Kini saatnya menerapkan status yang Anda inginkan ke lingkungan
dev
.Di GitHub, buka halaman utama repositori Anda yang sudah di-fork.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Di bagian nama repositori Anda, klik Pull requests.
Klik permintaan pull yang baru saja dibuat.
Klik Merge pull request, lalu klik Confirm merge.
Periksa apakah Cloud Build baru telah dipicu:
Buka build dan periksa log.
Setelah build selesai, Anda akan melihat tampilan seperti ini:
Step #3 - "tf apply": external_ip = EXTERNAL_IP_VALUE Step #3 - "tf apply": firewall_rule = dev-allow-http Step #3 - "tf apply": instance_name = dev-apache2-instance Step #3 - "tf apply": network = dev Step #3 - "tf apply": subnet = dev-subnet-01
Salin
EXTERNAL_IP_VALUE
dan buka alamat di browser web.http://EXTERNAL_IP_VALUE
Penyediaan ini mungkin memerlukan waktu beberapa detik untuk mem-booting VM dan menerapkan aturan firewall. Terakhir, Anda akan melihat Environment: dev di browser web.
Buka file status Terraform di bucket Cloud Storage Anda.
https://storage.cloud.google.com/PROJECT_ID-tfstate/env/dev/default.tfstate
Mendorong perubahan pada lingkungan produksi
Setelah lingkungan pengembangan sudah diuji sepenuhnya, Anda dapat mempromosikan kode infrastruktur ke produksi.
Di GitHub, buka halaman utama repositori Anda yang sudah di-fork.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Di bagian nama repositori Anda, klik Pull requests.
Klik New pull request.
Untuk base repository, pilih repositori yang baru saja diambil.
Untuk base, pilih
prod
dari repositori dasar Anda sendiri. Untuk compare, pilihdev
.Klik Create pull request.
Untuk title, masukkan judul seperti
Promoting networking changes
, lalu klik Create pull request.Tinjau perubahan yang diusulkan, termasuk detail
terraform plan
dari Cloud Build, lalu klik Merge pull request.Klik Confirm merge.
Di konsol Google Cloud, buka halaman Build History untuk melihat perubahan yang Anda terapkan ke lingkungan produksi:
Tunggu hingga build selesai, lalu periksa log.
Di akhir log, Anda akan melihat sesuatu seperti ini:
Step #3 - "tf apply": external_ip = EXTERNAL_IP_VALUE Step #3 - "tf apply": firewall_rule = prod-allow-http Step #3 - "tf apply": instance_name = prod-apache2-instance Step #3 - "tf apply": network = prod Step #3 - "tf apply": subnet = prod-subnet-01
Salin
EXTERNAL_IP_VALUE
dan buka alamat di browser web.http://EXTERNAL_IP_VALUE
Penyediaan ini mungkin memerlukan waktu beberapa detik untuk mem-booting VM dan menerapkan aturan firewall. Terakhir, Anda akan melihat Environment: prod di browser web.
Buka file status Terraform di bucket Cloud Storage Anda.
https://storage.cloud.google.com/PROJECT_ID-tfstate/env/prod/default.tfstate
Anda telah berhasil mengonfigurasi pipeline infrastruktur sebagai kode tanpa server di Cloud Build. Di masa mendatang, Anda dapat mencoba hal berikut:
- Tambahkan deployment untuk kasus penggunaan terpisah.
- Buat lingkungan tambahan untuk mencerminkan kebutuhan Anda.
- Gunakan project per lingkungan, bukan VPC per lingkungan.
Pembersihan
Setelah menyelesaikan tutorial, bersihkan resource yang dibuat di Google Cloud sehingga Anda tidak akan ditagih di masa mendatang.
Menghapus project
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Menghapus repositori GitHub
Untuk menghindari pemblokiran permintaan pull baru di repositori GitHub, Anda dapat menghapus aturan perlindungan cabang:
- Di GitHub, buka halaman utama repositori Anda yang di-fork.
- Di bagian nama repositori Anda, klik Setelan.
- Di menu sebelah kiri, klik Branches.
- Di bagian Branch protection rules, klik tombol Delete untuk baris
dev
danprod
.
Secara opsional, Anda dapat meng-uninstal aplikasi Cloud Build sepenuhnya dari GitHub:
Buka setelan Applications GitHub.
Di tab Installed GitHub Apps, klik Configure di baris Cloud Build. Kemudian, di bagian Danger zone, klik tombol Uninstall di baris Uninstall Google Cloud Builder.
Di bagian atas halaman, Anda akan melihat pesan yang menyatakan "You're all set. A job has been queued to uninstall Google Cloud Build."
Di tab Authorized GitHub Apps, klik tombol Revoke di baris Google Cloud Build, lalu I understand, revoke access di jendela pop-up.
Jika Anda tidak ingin menyimpan repositori GitHub Anda:
- Di GitHub, buka halaman utama repositori Anda yang di-fork.
- Di bagian nama repositori Anda, klik Setelan.
- Scroll ke bawah ke Danger Zone.
- Klik Delete this repository, dan ikuti langkah konfirmasi.
Langkah selanjutnya
- Pertimbangkan untuk menggunakan template Cloud Foundation Toolkit untuk membangun dengan cepat fondasi yang dapat diulang dan siap digunakan perusahaan di Google Cloud.
- Tonton Lingkungan Google Cloud yang Dapat Berulang dalam Skala Besar dengan Pipeline Infrastruktur sebagai Kode Cloud Build dari Next' 19 tentang alur kerja GitOps yang dijelaskan dalam tutorial ini.
- Lihat tutorial Continuous delivery bergaya GitOps dengan Cloud Build.
- Lihat fitur Cloud Build yang lebih canggih: Mengonfigurasi urutan langkah membangun, Membangun, Menguji, dan Men-deploy Artefak, Membuat Langkah Build Kustom
- Lihat blog tentang Memastikan skala dan kepatuhan Deployment Terraform Anda dengan Cloud Build.
- Baca referensi kami tentang DevOps.
- Pelajari lebih lanjut kapabilitas DevOps terkait tutorial ini:
- Lakukan pemeriksaan cepat DevOps untuk memahami posisi Anda dibandingkan dengan industri lainnya.