Cloud Build adalah layanan yang menjalankan build Anda di Google Cloud.
Cloud Build dapat mengimpor kode sumber dari berbagai repositori atau ruang penyimpanan cloud, menjalankan build sesuai spesifikasi Anda, dan menghasilkan artefak seperti container Docker atau arsip Java.
Anda juga dapat menggunakan Cloud Build untuk membantu melindungi supply chain software Anda. Fitur Cloud Build memenuhi persyaratan Level Supply chain untuk Software Artifacts (SLSA) level 3. Untuk mendapatkan panduan cara melindungi proses build, lihat Build Safeguard.
Konfigurasi build dan langkah-langkah build
Anda dapat menulis konfigurasi build untuk memberikan petunjuk ke Cloud Build tugas yang harus dilakukan. Anda dapat mengonfigurasi build untuk mengambil dependensi, menjalankan pengujian unit, analisis statis, dan pengujian integrasi, serta membuat artefak dengan alat build seperti docker, gradle, maven, bazel, dan gulp.
Cloud Build mengeksekusi build Anda sebagai serangkaian langkah build, dan setiap langkah build dijalankan di container Docker. Menjalankan langkah build setara dengan menjalankan perintah dalam skrip.
Anda dapat menggunakan langkah-langkah build yang disediakan oleh Cloud Build dan komunitas Cloud Build, atau menulis langkah-langkah build kustom Anda sendiri:
Langkah-langkah build yang disediakan oleh Cloud Build: Cloud Build telah memublikasikan serangkaian langkah build open source yang didukung untuk bahasa dan tugas umum.
Langkah build yang dikontribusikan oleh komunitas: Komunitas pengguna Cloud Build telah menyediakan langkah-langkah build open source.
Langkah-langkah build kustom: Anda dapat membuat langkah-langkah build sendiri untuk digunakan dalam build Anda.
Setiap langkah build dijalankan dengan container-nya yang terhubung ke jaringan Docker lokal bernama cloudbuild
. Hal ini memungkinkan langkah-langkah build untuk berkomunikasi satu sama lain dan
berbagi data. Untuk mengetahui informasi selengkapnya mengenai jaringan cloudbuild
, lihat
Jaringan Cloud Build.
Anda dapat menggunakan image Docker Hub standar di Cloud Build, seperti Ubuntu dan Gradle.
Memulai build
Anda dapat memulai build secara manual di Cloud Build menggunakan Google Cloud CLI atau Cloud Build API, atau menggunakan pemicu build Cloud Build untuk membuat alur kerja continuous integration/continuous delivery (CI/CD) otomatis yang memulai build baru sebagai respons terhadap perubahan kode.
Anda dapat mengintegrasikan pemicu build dengan banyak repositori kode, termasuk Cloud Source Repositories, GitHub, dan Bitbucket.
Melihat hasil build
Anda dapat melihat hasil build menggunakan gcloud CLI, Cloud Build API, atau menggunakan halaman Histori Build di bagian Cloud Build di Google Cloud Console, yang menampilkan detail dan log untuk setiap build yang dijalankan Cloud Build. Untuk mengetahui petunjuknya, lihat Melihat Hasil Build.
Cara kerja build
Langkah-langkah berikut secara umum menjelaskan siklus proses build Cloud Build:
- Siapkan kode aplikasi dan aset apa pun yang diperlukan.
- Buat file konfigurasi build dalam format YAML atau JSON yang berisi petunjuk untuk Cloud Build.
- Kirim build ke Cloud Build.
- Cloud Build menjalankan build Anda berdasarkan konfigurasi build yang Anda berikan.
- Jika berlaku, semua artefak yang dibangun akan dikirim ke Artifact Registry.
Docker
Cloud Build menggunakan Docker untuk menjalankan build. Untuk setiap langkah build, Cloud Build mengeksekusi container Docker sebagai instance docker run
. Saat ini, Cloud Build menjalankan Docker Engine versi 20.10.17.
Antarmuka Cloud Build
Anda dapat menggunakan Cloud Build dengan Konsol Google Cloud, alat command line gcloud
, atau REST API Cloud Build.
Di konsol Google Cloud, Anda dapat melihat hasil build Cloud Build di halaman Histori Build, dan mengotomatiskan build di Pemicu Build.
Anda dapat menggunakan gcloud CLI untuk membuat dan mengelola build. Anda dapat menjalankan perintah untuk melakukan tugas seperti mengirimkan build, mencantumkan build, dan membatalkan build.
Anda dapat meminta build menggunakan REST API Cloud Build.
Seperti Cloud Platform API lainnya, Anda harus mengizinkan akses menggunakan OAuth2. Setelah memiliki akses sah, Anda kemudian dapat menggunakan API untuk memulai build baru, melihat status dan detail build, membuat daftar build per project, dan membatalkan build yang sedang dalam proses.
Untuk informasi selengkapnya, lihat dokumentasi API.
Kumpulan default dan kolam pribadi
Secara default, saat Anda menjalankan build di Cloud Build, build tersebut berjalan di lingkungan terhosting dan aman dengan akses ke internet publik. Setiap build berjalan pada worker-nya sendiri dan terisolasi dari beban kerja lain. Build Anda dapat menyesuaikan dengan berbagai cara, termasuk meningkatkan ukuran jenis mesin atau mengalokasikan lebih banyak kapasitas disk. Kumpulan default memiliki batas seberapa banyak Anda dapat menyesuaikan lingkungan, terutama seputar akses jaringan pribadi.
Kumpulan pribadi adalah kumpulan worker khusus dan pribadi yang menawarkan penyesuaian lebih besar atas lingkungan build, termasuk kemampuan untuk mengakses resource di jaringan pribadi. Kumpulan pribadi, yang mirip dengan kumpulan default, dihosting dan dikelola sepenuhnya oleh Cloud Build serta ditingkatkan dan turun skalanya hingga nol, tanpa infrastruktur yang harus disiapkan, diupgrade, atau diskalakan. Karena kumpulan pribadi adalah resource khusus pelanggan, Anda dapat mengonfigurasinya dengan lebih banyak cara.
Untuk mempelajari lebih lanjut kolam renang pribadi dan perbedaan fitur antara kolam renang default dan kolam pribadi, lihat Ringkasan kolam pribadi.
Membangun keamanan
Cloud Build menyediakan beberapa fitur untuk mengamankan build Anda, termasuk:
Build Otomatis
Build otomatis atau build dengan skrip menentukan semua langkah build dalam skrip build atau konfigurasi build, termasuk langkah-langkah untuk mengambil kode sumber dan langkah-langkah untuk membuat kode. Satu-satunya perintah manual, jika ada, adalah perintah untuk menjalankan build. Cloud Build menggunakan file konfigurasi build untuk menyediakan langkah-langkah build ke Cloud Build.
Build otomatis memberikan konsistensi dalam langkah-langkah build. Namun, menjalankan build di lingkungan yang konsisten dan tepercaya juga penting.
Meskipun build lokal dapat berguna untuk tujuan proses debug, merilis software dari build lokal dapat menimbulkan banyak masalah keamanan, inkonsistensi, dan inefisiensi dalam proses build.
- Mengizinkan build lokal memberikan cara bagi penyerang yang memiliki intent berbahaya untuk mengubah proses build.
- Inkonsistensi dalam lingkungan lokal developer dan praktik developer mempersulit reproduksi build dan diagnosis masalah build.
Dalam persyaratan untuk framework SLSA, build otomatis adalah persyaratan untuk SLSA level 1, dan penggunaan layanan build, bukan lingkungan developer untuk build, merupakan persyaratan untuk SLSA level 2.
Provenance build
Provenance build adalah kumpulan data yang dapat diverifikasi tentang suatu build.
Metadata Provenance mencakup detail seperti ringkasan image yang dibangun, lokasi sumber input, toolchain build, dan durasi build.
Membuat provenance build membantu Anda:
- Pastikan artefak yang dibangun dibuat dari lokasi sumber tepercaya dan oleh sistem build tepercaya.
- Mengidentifikasi kode yang dimasukkan dari lokasi sumber atau sistem build yang tidak tepercaya.
Anda dapat menggunakan mekanisme pemberitahuan dan kebijakan untuk menggunakan data provenance build secara proaktif. Misalnya, Anda dapat membuat kebijakan yang hanya mengizinkan deployment kode yang dibuat dari sumber terverifikasi.
Cloud Build dapat menghasilkan provenance build untuk image container yang memberikan jaminan SLSA level 3. Untuk mengetahui informasi selengkapnya, lihat Melihat provenance build.
Lingkungan build ephemeral
Lingkungan ephemeral adalah lingkungan sementara yang dimaksudkan agar bertahan untuk pemanggilan build tunggal. Setelah proses build, lingkungan akan dihapus total. Build efemeral memastikan layanan build dan langkah build berjalan di lingkungan sementara, seperti container atau VM. Daripada menggunakan kembali lingkungan build yang sudah ada, layanan build akan menyediakan lingkungan baru untuk setiap build, lalu menghancurkannya setelah proses build selesai.
Lingkungan efemeral memastikan build yang bersih karena tidak ada file residu atau setelan lingkungan dari build sebelumnya yang dapat mengganggu proses build. Lingkungan yang tidak singkat memberikan peluang bagi penyerang untuk memasukkan file dan konten berbahaya. Lingkungan sementara juga mengurangi overhead pemeliharaan dan mengurangi inkonsistensi dalam lingkungan build.
Cloud Build menyiapkan lingkungan virtual machine baru untuk setiap build dan menghancurkannya setelah build.
Kebijakan deployment
Anda dapat mengintegrasikan Cloud Build dengan Otorisasi Biner untuk memeriksa pengesahan build dan memblokir deployment image yang tidak dihasilkan oleh Cloud Build. Proses ini dapat mengurangi risiko deployment software yang tidak diizinkan.
Kunci enkripsi yang dikelola pelanggan
Cloud Build menyediakan kepatuhan kunci enkripsi yang dikelola pelanggan (CMEK) secara default. Pengguna tidak perlu mengonfigurasi apa pun secara khusus. Cloud Build mematuhi persyaratan CMEK dengan mengenkripsi persistent disk (PD) waktu build dengan kunci ephemeral yang dibuat untuk setiap build. Kunci tersebut dihasilkan secara unik untuk setiap build.
Segera setelah build selesai, kunci akan dihapus dari memori dan dihancurkan. Data tersebut tidak disimpan di mana pun, tidak dapat diakses oleh engineer atau staf dukungan Google, dan tidak dapat dipulihkan. Data yang dilindungi menggunakan kunci tersebut tidak dapat diakses secara permanen. Untuk mengetahui informasi selengkapnya, lihat Kepatuhan CMEK di Cloud Build.
Panel insight keamanan
Cloud Build mencakup panel Insight keamanan di Konsol Google Cloud yang menampilkan ringkasan umum tentang berbagai metrik keamanan. Anda dapat menggunakan panel ini untuk mengidentifikasi dan mengurangi risiko dalam proses build.
Panel ini menampilkan informasi berikut:
Supply chain Levels for Software Artifacts (SLSA) Level: Mengidentifikasi tingkat kedewasaan proses build software sesuai dengan spesifikasi SLSA).
Kerentanan: Ringkasan kerentanan yang ditemukan di artefak Anda, dan nama image yang telah dipindai oleh Analisis Artefak. Anda dapat mengklik nama image untuk melihat detail kerentanan. Misalnya, di screenshot, Anda dapat mengklik java-guestbook-backend.
Build details: Detail build seperti builder dan link untuk melihat log.
Provenance build: Asal untuk build.
Perlindungan Pengiriman Software
Cloud Build adalah bagian dari solusi Perlindungan Pengiriman Software. Perlindungan Pengiriman Software adalah solusi keamanan supply chain software menyeluruh yang terkelola sepenuhnya yang membantu Anda meningkatkan postur keamanan alur kerja dan alat developer, dependensi software, sistem CI/CD yang digunakan untuk mem-build dan men-deploy software Anda, serta lingkungan runtime seperti Google Kubernetes Engine dan Cloud Run. Untuk mempelajari cara menggunakan Cloud Build dengan komponen Perlindungan Pengiriman Software lainnya guna meningkatkan postur keamanan supply chain software Anda, lihat Ringkasan Perlindungan Pengiriman Software.
Langkah selanjutnya
- Baca panduan memulai Docker untuk mempelajari cara menggunakan Cloud Build untuk membangun image Docker.
- Pelajari cara membangun, menguji, dan men-deploy artefak di Cloud Build.
- Pelajari berbagai jenis pemicu Cloud Build.
- Baca referensi kami tentang DevOps dan jelajahi program riset Riset dan Penilaian DevOps.