App Lifecycle Manager memungkinkan Anda menyimpan, menghosting, mengelola, dan memantau aplikasi software as a service (SaaS) di Google Cloud. App Lifecycle Manager mengelola deployment Terraform dalam skala besar, sehingga Anda dapat mengelola aplikasi SaaS dan infrastruktur yang menjalankannya.
App Lifecycle Manager dapat digunakan dengan berbagai cara oleh berbagai pemangku kepentingan dalam pipeline SaaS. Jika pekerjaan Anda sesuai dengan salah satu peran ini, Anda mungkin tertarik untuk menggunakan App Lifecycle Manager:
- Administrator platform
- Developer aplikasi
- Arsitek
- Administrator kepatuhan
- Engineer platform
- Operasi keuangan
App Lifecycle Manager memberikan manfaat berikut:
- Menyederhanakan pengelolaan layanan Anda dalam skala besar dengan mengotomatiskan tugas pengelolaan layanan (seperti deployment, peluncuran, dan pengelolaan flag fitur) di seluruh tenant SaaS Anda.
- Memperluas kemampuan observasi dan kontrol Anda dengan menyetel update dan rilis di seluruh unit yang dapat dikonfigurasi untuk mengelola penawaran SaaS Anda dengan presisi dalam skala besar.
- Membangun konsistensi di seluruh ekosistem Anda dengan mengelola layanan di berbagai produk, termasuk Google Distributed Cloud, Penagihan, Kemampuan Observasi, dan Resource Manager. Google Cloud Google Cloud Google Cloud
- Menggunakan arsitektur yang fleksibel dan dapat dibuat templatenya yang mendorong update dan deployment grup berbasis unit untuk meningkatkan efisiensi dan penggunaan ulang.
Cara kerja App Lifecycle Manager
App Lifecycle Manager men-deploy artefak yang menentukan penawaran SaaS Anda. Artefak ini harus memiliki konfigurasi Terraform. Deployment diatur ke dalam unit terpisah yang dapat diupdate dengan rilis yang berisi perubahan pada penawaran Anda melalui proses peluncuran yang dapat dikonfigurasi.
Untuk mengetahui informasi selengkapnya tentang nomenklatur App Lifecycle Manager, lihat Glosarium.
Menyiapkan workload untuk App Lifecycle Manager
Sebelum men-deploy penawaran SaaS, sebaiknya tentukan pengaturan ideal penawaran SaaS Anda dalam ekosistem App Lifecycle Manager.
Atur bagian penawaran SaaS Anda yang harus diupdate atau diubah bersama-sama ke dalam konfigurasi Terraform yang berbeda. Saat Anda merencanakan penawaran SaaS, gunakan jenis unit untuk setiap pengelompokan penawaran SaaS Anda.
Setelah mengetahui struktur ideal untuk workload Anda di App Lifecycle Manager, Anda dapat membuat penawaran SaaS, jenis unit, lalu men-deploy unit menggunakan peluncuran.
Untuk mengetahui contoh penyiapan App Lifecycle Manager, lihat panduan memulai.
Akun layanan App Lifecycle Manager
App Lifecycle Manager menggunakan kombinasi akun layanan yang dikelola Google dan yang dikelola pengguna:
Akun layanan App Lifecycle Manager (dikelola Google): Akun ini dibuat secara otomatis setelah membuat resource penawaran SaaS pertama. Akun ini dikelola oleh Google. Akun ini melakukan tindakan atas nama Anda, seperti berinteraksi dengan layanan lain Google Cloud selama penyediaan unit.
Akun layanan aktivasi (Dikelola pengguna): Anda membuat dan mengelola akun layanan ini. App Lifecycle Manager (melalui Infrastructure Manager) menggunakan akun ini untuk menjalankan konfigurasi Terraform Anda saat menyediakan atau mengupdate unit. Akun ini bertindak sebagai identitas untuk membuat dan mengelola resource yang ditentukan di Terraform Anda. Izin akun layanan aktivasi terikat langsung ke resource yang dikelola oleh konfigurasi Terraform Anda.
Anda dapat memiliki beberapa akun layanan aktivasi. Sebaiknya Anda memiliki satu akun layanan aktivasi untuk setiap tenant.
Opsional: Akun layanan pembuatan artefak (Dikelola pengguna): Akun layanan ini digunakan untuk membuat dan mengupload Terraform Anda yang dikemas ke dalam artefak OCI. Akun layanan ini sering kali merupakan akun layanan Cloud Build, tetapi dapat berupa akun layanan apa pun dengan izin yang sesuai untuk penawaran SaaS Anda.
Akun layanan App Lifecycle Manager (dikelola Google)
Akun layanan App Lifecycle Manager adalah agen layanan yang dikelola Google yang digunakan oleh App Lifecycle Manager untuk melakukan operasi dalam project Anda.
Akun layanan ini otomatis disediakan saat Anda membuat resource App Lifecycle Manager pertama. Akun layanan App Lifecycle Manager dibuat menggunakan format ini:
service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com
Ganti:
- PROJECT_NUMBER: Nomor project Anda.
Akun layanan aktivasi (Dikelola pengguna)
Akun layanan aktivasi adalah akun layanan yang dikelola pengguna yang harus Anda buat. App Lifecycle Manager (melalui Infra Manager) menggunakan akun layanan ini untuk menjalankan konfigurasi Terraform Anda. Akun ini adalah identitas yang membuat, mengubah, dan menghapus resource yang ditentukan di Terraform Anda.
Anda bertanggung jawab untuk membuat akun layanan ini dalam project Anda, atau dalam project tenant Anda.
Variabel input akun layanan aktivasi
Saat membuat unit, Anda harus memberikan akun layanan aktivasi sebagai variabel input pasangan nilai kunci untuk konfigurasi Terraform:
- Nama:
actuation_sa - Jenis variabel:
String Nilai variabel: Alamat email akun layanan aktivasi:
my-actuation-sa@my-identifier.iam.gserviceaccount.com
Izin yang Diperlukan
Akun layanan aktivasi memerlukan izin yang memadai untuk mengelola resource yang ditentukan dalam konfigurasi Terraform Anda. Minimal, akun ini memerlukan:
roles/iam.serviceAccountTokenCreator: Mengizinkan akun layanan membuat token untuk autentikasi.roles/config.admin: Memberikan kontrol penuh atas resource Infra Manager.roles/storage.admin: Memberikan kontrol penuh atas Cloud Storage.
Akun layanan aktivasi juga memerlukan izin untuk membuat dan mengelola resource Google Cloud tertentu yang digunakan oleh aplikasi Anda.
Contoh:
- Jika Terraform Anda membuat cluster Google Kubernetes Engine (GKE), akun layanan memerlukan peran GKE yang sesuai (misalnya,
roles/container.admin). - Jika Terraform Anda membuat instance Compute Engine, akun layanan memerlukan peran
roles/compute.admin. - Jika Terraform Anda membuat instance Cloud SQL, akun layanan memerlukan peran Cloud SQL yang sesuai (misalnya,
roles/cloudsql.admin).
Lihat dokumentasi untuk setiap Google Cloud resource yang Anda gunakan di Terraform untuk menentukan izin yang diperlukan. Berikan hak istimewa terendah yang diperlukan agar aplikasi Anda berfungsi.
Akun layanan pembuatan artefak (Dikelola pengguna)
Akun layanan pembuatan artefak adalah akun layanan yang dikelola pengguna yang Anda buat untuk menggunakan sistem build (seperti Cloud Build) guna mengemas dan mengupload artefak Terraform Anda ke Artifact Registry.
Akun layanan ini terpisah dari akun layanan App Lifecycle Manager dan aktivasi, serta membuat kode Terraform Anda dan mengirimkan artefak yang dihasilkan ke Artifact Registry. Sering kali, akun layanan ini adalah akun layanan Cloud Build.
Pembuatan artefak manual
Jika Anda membuat dan mengupload artefak Terraform secara manual (misalnya, menggunakan Docker build dan Docker push secara langsung), Anda tidak memerlukan akun layanan pembuatan artefak terpisah.
Sebagai gantinya, Anda harus melakukan autentikasi menggunakan kredensial Anda sendiri atau akun layanan dengan izin Artifact Registry yang diperlukan.
Izin yang Diperlukan
Jika Anda menggunakan Cloud Build, akun layanan Cloud Build biasanya memerlukan peran berikut:
roles/artifactregistry.writer: Untuk mengirimkan artefak ke Artifact Registry.roles/artifactregistry.repoAdmin: Untuk mengelola repositori Artifact Registry.roles/storage.admin: Untuk mengelola bucket Cloud Storage.roles/developerconnect.admin: Izin untuk menggunakan Developer Connect.roles/developerconnect.readTokenAccessor: Izin untuk mendapatkan token baca Developer Connect.roles/logging.logWriter: Izin untuk menulis log.- Jika Anda men-deploy konfigurasi Terraform menggunakan Developer Connect:
roles/cloudbuild.builds.builder: Untuk menjalankan build. - Izin lain yang diperlukan oleh proses build Anda (misalnya, akses ke repositori kode sumber).
Strategi peluncuran
App Lifecycle Manager menggunakan beberapa strategi peluncuran untuk mengelola cara unit dalam penawaran SaaS Anda diupdate. Strategi peluncuran ini mengikuti Google Cloud's pendekatan terhadap perubahan dengan menerapkan pendekatan yang konsisten pada deployment perubahan di seluruh penawaran SaaS Anda.
Gunakan strategi peluncuran untuk meminimalkan dampak negatif pada pelanggan dan mengisolasi masalah ke domain kegagalan logis dan fisik individual. Tentukan strategi peluncuran Anda dengan membuat jenis peluncuran yang menentukan salah satu strategi peluncuran berikut:
Satu lokasi dalam satu waktu (sederhana): Satu lokasi diluncurkan dalam satu waktu, tanpa menunggu di antara lokasi. Unit dipilih secara acak dalam suatu lokasi, dengan maksimum 20% unit lokasi yang diupdate pada waktu tertentu.
Strategi ini direkomendasikan untuk lingkungan pengembangan dan skenario darurat.
Semua sekaligus (sederhana): Semua lokasi mulai diluncurkan pada waktu yang sama.
Strategi ini direkomendasikan untuk lingkungan pengembangan dan skenario darurat.
Progresif (bertahap): Dalam setiap lokasi, unit diluncurkan dalam batch berbasis persentase statis (misalnya, 1%, 10%, 20%, 30%, ~40%) dengan waktu tunggu di antara batch. Di seluruh lokasi, peluncuran berlangsung dengan peningkatan eksponensial dalam jumlah lokasi serentak (misalnya, satu lokasi, lalu dua, lalu empat) dengan waktu tunggu (misalnya, 18 jam) di antara gelombang. Unit dalam suatu lokasi dipilih secara acak.
Strategi ini dirancang untuk peluncuran yang aman dan dapat diprediksi di beberapa lokasi. Strategi ini dimulai dengan footprint kecil dan secara bertahap diperluas seiring meningkatnya kepercayaan. Strategi ini direkomendasikan di lingkungan produksi dengan lebih dari satu lokasi.
Progresif (satu lokasi): Unit diupdate dalam batch berbasis persentase statis (misalnya, 1%, 10%, 20%, 30%, ~40%) dengan waktu tunggu yang lebih lama (misalnya, 18 jam) di antara batch untuk memberikan waktu yang cukup untuk mendeteksi masalah dan membatasi dampak buruk dari perubahan peluncuran.
Strategi ini disesuaikan untuk penawaran SaaS yang beroperasi di satu lokasi, dengan memprioritaskan keamanan dan kehati-hatian. Sebaiknya gunakan strategi ini di lingkungan produksi dengan satu lokasi.
Untuk mengetahui informasi selengkapnya tentang cara membuat jenis peluncuran, lihat Membuat jenis peluncuran.
Regionalisasi App Lifecycle Manager
Resource penawaran SaaS menentukan tempat unit App Lifecycle Manager Anda dapat berada, dan cara peluncuran Anda dikelola. Saat Anda membuat penawaran SaaS, region yang Anda pilih berfungsi sebagai satu sumber tepercaya untuk region yang didukung dari penawaran SaaS Anda. Region yang Anda pilih adalah region yang tersedia yang telah Anda tentukan untuk penawaran SaaS Anda.
Saat Anda menggunakan App Lifecycle Manager melalui Google Cloud konsol, App Lifecycle Manager akan mengotomatiskan replikasi resource yang Anda tentukan dalam penawaran SaaS Anda di seluruh region. Hal ini memastikan konsistensi dan ketersediaan resource App Lifecycle Manager Anda di semua region yang tersedia yang telah Anda tentukan dalam penawaran SaaS Anda.
App Lifecycle Manager mereplikasi resource ini:
- Penawaran SaaS (
Saas) - Jenis unit (
UnitKind) - Rilis (
Release)
Menggunakan global sebagai region
Menyertakan global sebagai region dalam penawaran SaaS Anda umumnya tidak direkomendasikan untuk target deployment. App Lifecycle Manager menggunakan region global untuk menyebarkan peluncuran regional. Peluncuran regional tidak dapat berjalan di region global.
Regionalisasi peluncuran
Lokasi yang didukung untuk peluncuran ditentukan oleh region tingkat atas yang ditentukan di region yang tersedia dari penawaran SaaS Anda.
Peluncuran membaca daftar region yang tersedia dari penawaran SaaS terkait.
Replikasi resource
App Lifecycle Manager menangani pembuatan dan update resource ke semua region yang tersedia dari penawaran SaaS Anda.
Saat Anda mengupdate region yang tersedia dari penawaran SaaS Anda, App Lifecycle Manager akan menangani replikasi:
- Lokasi ditambahkan: Resource direplikasi ke lokasi yang baru ditambahkan.
- Lokasi dengan salinan lama: Konten diperbarui.
Lokasi Artifact Registry dan Developer Connect
Lokasi repositori Artifact Registry dan instance Developer Connect Anda memiliki persyaratan tertentu:
Region repositori Artifact Registry dan instance Developer Connect Anda dapat berupa region valid Google Cloud apa pun. Region tersebut tidak perlu disertakan dalam region yang tersedia dari penawaran SaaS Anda.
Region repositori Artifact Registry harus cocok dengan region instance Developer Connect Anda.
Hal ini mengharuskan adanya resource penawaran SaaS, rilis, dan jenis unit di semua region yang ditentukan dalam penawaran SaaS Anda, meskipun Artifact Registry dan Developer Connect berada di satu region (yang mungkin berbeda).
Unit hanya dapat dibuat di region yang ditentukan dalam penawaran SaaS Anda.
Contoh konfigurasi region App Lifecycle Manager
Kami telah memberikan contoh ini untuk menunjukkan cara kerja regionalisasi saat menggunakan App Lifecycle Manager dengan replikasi resource terkelola.
Misalnya, jika Anda ingin men-deploy penawaran SaaS di us-central1 dan europe-west4, sambil menghosting repositori Artifact Registry dan instance Developer Connect di us-east1, infrastruktur region App Lifecycle Manager Anda akan terlihat seperti:
- Region yang tersedia untuk penawaran SaaS:
['us-central1', 'europe-west4'] - Region repositori Artifact Registry:
us-east1 - Region instance Developer Connect:
us-east1 - Resource jenis unit dan rilis: App Lifecycle Manager mengelola pembuatan dan update resource ini di seluruh region
global,us-central1, daneurope-west4 - Unit: Unit dapat dibuat di
us-central1, ataueurope-west4
Konfigurasi ini memungkinkan Anda mengelola deployment di dua region sambil menjaga pengelolaan artefak Anda tetap terpusat di region ketiga yang berbeda dengan replikasi resource otomatis. Anda harus mempertimbangkan persyaratan latensi, kepatuhan, dan residensi data dengan cermat saat memilih region.
Langkah berikutnya
- Coba panduan memulai untuk mempelajari cara men-deploy VM menggunakan App Lifecycle Manager.
- Untuk mulai menggunakan App Lifecycle Manager, mulailah dengan Membuat penawaran SaaS.