Ringkasan Cloud Build

Cloud Build adalah layanan yang menjalankan build Anda di Google Cloud.

Cloud Build dapat mengimpor kode sumber dari berbagai repositori atau Cloud Storage, 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 Supply chain Levels for Software Artifacts (SLSA) level 3. Untuk panduan tentang cara melindungi proses build Anda, lihat Melindungi build.

Konfigurasi build dan langkah-langkah build

Tulis konfigurasi build sebagai petunjuk pelaksanaan tugas bagi Cloud Build. 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-langkah build, dan setiap langkah build dijalankan di container Docker. Eksekusi langkah build serupa dengan eksekusi perintah di dalam skrip.

Anda dapat menggunakan langkah build yang disediakan Cloud Build dan komunitas Cloud Build, atau menulis langkah build kustom Anda sendiri:

Setiap langkah build dijalankan dengan containernya yang terpasang ke jaringan Docker lokal bernama cloudbuild. Hal ini memungkinkan langkah-langkah build untuk berkomunikasi satu sama lain dan berbagi data. Untuk mengetahui informasi selengkapnya tentang 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 konsol, yang menampilkan detail dan log untuk setiap build yang Cloud Build jalankan. Untuk mengetahui petunjuknya, lihat Melihat Hasil Build.

Cara kerja build

Langkah-langkah berikut menjelaskan, secara umum, siklus proses build Cloud Build:

  1. Siapkan kode aplikasi Anda dan aset yang diperlukan.
  2. Buat file konfigurasi build dalam format YAML atau JSON, yang berisi petunjuk untuk Cloud Build.
  3. Kirim build ke Cloud Build.
  4. Cloud Build mengeksekusi build Anda berdasarkan konfigurasi build yang Anda berikan.
  5. Jika berlaku, artefak yang di-build akan dikirim ke Artifact Registry.

Docker

Cloud Build menggunakan Docker untuk menjalankan build. Untuk setiap langkah build, Cloud Build menjalankan container Docker sebagai instance docker run. Saat ini, Cloud Build menjalankan Docker engine versi 20.10.24.

Antarmuka Cloud Build

Anda dapat menggunakan Cloud Build dengan Google Cloud konsol, gcloud alat command line, atau REST API Cloud Build.

Di Google Cloud konsol, 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 Cloud Build REST API.

Seperti Cloud Platform API lainnya, Anda harus mengotorisasi akses menggunakan OAuth2. Setelah mengotorisasi akses, Anda dapat menggunakan API untuk memulai build baru, melihat status dan detail build, mencantumkan build per project, dan membatalkan build yang saat ini sedang diproses.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi API.

Pool default dan pool pribadi

Secara default, saat Anda menjalankan build di Cloud Build, build tersebut dijalankan di lingkungan terhosting dan aman dengan akses ke internet publik. Setiap build berjalan di worker-nya sendiri dan diisolasi dari workload lain. Anda dapat menyesuaikan build dengan berbagai cara, termasuk meningkatkan ukuran jenis mesin atau mengalokasikan lebih banyak ruang disk. Pool default memiliki batasan tentang seberapa banyak Anda dapat menyesuaikan lingkungan, terutama terkait akses jaringan pribadi.

Pool pribadi adalah kumpulan worker khusus dan pribadi yang menawarkan penyesuaian yang lebih baik atas lingkungan build, termasuk kemampuan untuk mengakses resource di jaringan pribadi. Pool pribadi, yang mirip dengan pool default, dihosting dan dikelola sepenuhnya oleh Cloud Build serta dapat ditingkatkan dan diturunkan skalanya hingga nol, tanpa perlu menyiapkan, mengupgrade, atau menskalakan infrastruktur. Karena pool pribadi adalah resource khusus pelanggan, Anda dapat mengonfigurasinya dengan lebih banyak cara.

Untuk mempelajari lebih lanjut pool pribadi dan perbedaan fitur antara pool default pool dan pool pribadi, lihat Ringkasan pool pribadi.

Keamanan build

Cloud Build menyediakan beberapa fitur untuk mengamankan build Anda, termasuk:

  • Build Otomatis

    Build otomatis atau build yang ditulis skripnya menentukan semua langkah build dalam skrip build atau konfigurasi build, termasuk langkah-langkah untuk mengambil kode sumber dan langkah-langkah untuk membangun 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, penting juga untuk menjalankan build di lingkungan yang konsisten dan tepercaya.

    Meskipun build lokal dapat berguna untuk tujuan proses debug, merilis software dari build lokal dapat menimbulkan banyak masalah keamanan, ketidakkonsistenan, dan inefisiensi ke dalam proses build.

    • Mengizinkan build lokal memberikan cara bagi penyerang dengan niat jahat untuk mengubah proses build.
    • Ketidakkonsistenan dalam lingkungan lokal developer dan praktik developer membuat build sulit direproduksi dan masalah build sulit didiagnosis.

    Dalam persyaratan untuk framework SLSA, build otomatis adalah persyaratan untuk SLSA level 1, dan menggunakan layanan build, bukan lingkungan developer untuk build, adalah persyaratan untuk SLSA level 2.

  • Provenance build

    Provenance build adalah kumpulan data yang dapat diverifikasi tentang build.

    Metadata provenance mencakup detail seperti ringkasan image yang di-build, lokasi sumber input, toolchain build, dan durasi build.

    Membuat provenance build membantu Anda untuk:

    • Memverifikasi bahwa artefak yang di-build 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 di-build dari sumber terverifikasi.

    Cloud Build dapat membuat 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 untuk bertahan selama satu pemanggilan build. Setelah build, lingkungan akan dihapus atau dihapus. Build ephemeral memastikan bahwa layanan build dan langkah-langkah build berjalan di lingkungan ephemeral, seperti container atau virtual machine (VM). Daripada menggunakan kembali lingkungan build yang ada, layanan build menyediakan lingkungan baru untuk setiap build, lalu menghancurkannya setelah proses build selesai.

    Lingkungan ephemeral memastikan build bersih karena tidak ada file sisa atau setelan lingkungan dari build sebelumnya yang dapat mengganggu proses build. Lingkungan non-ephemeral memberikan peluang bagi penyerang untuk memasukkan file dan konten berbahaya. Lingkungan ephemeral juga mengurangi overhead pemeliharaan dan mengurangi ketidakkonsistenan di lingkungan build environment.

    Cloud Build menyiapkan lingkungan VM 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 dibuat oleh Cloud Build. Proses ini dapat mengurangi risiko men-deploy software yang tidak sah.

  • 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 menyediakan kepatuhan CMEK dengan mengenkripsi persistent disk (PD) waktu build dengan kunci ephemeral yang dibuat untuk setiap build. Kunci ini dibuat secara unik untuk setiap build.

    Segera setelah build selesai, kunci akan dihapus dari memori dan dihancurkan. Kunci 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 menyertakan panel Insight keamanan di konsol yang menampilkan ringkasan tingkat tinggi dari beberapa metrik keamanan. Google Cloud Anda dapat menggunakan panel ini untuk mengidentifikasi dan mengurangi risiko dalam proses build Anda.

    Panel ini menampilkan informasi berikut:

    • Supply-chain Levels for Software Artifacts (SLSA) Level: Mengidentifikasi tingkat kematangan proses build software Anda sesuai dengan spesifikasi SLSA.
    • Kerentanan: Ringkasan kerentanan yang ditemukan di artefak Anda, dan nama gambar yang telah dipindai oleh Artifact Analysis. Anda dapat mengklik nama gambar untuk melihat detail kerentanan.
    • Detail build: Detail build seperti builder dan link untuk melihat log.
    • Provenance build: Provenance untuk build.

Untuk mempelajari cara menggunakan Cloud Build dengan produk Google Cloud dan fitur lain untuk melindungi supply chain software Anda, lihat Keamanan supply chain software.

Langkah berikutnya

  • 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 pelajari program riset DevOps Research and Assessment.