Praktik terbaik pengelolaan image


Solusi ini memberikan panduan mendalam tentang cara mengelola image Compute Engine. Image menyediakan lingkungan operasi dasar untuk aplikasi yang berjalan di Compute Engine, dan image sangat penting untuk memastikan aplikasi Anda di-deploy dan diskalakan dengan cepat dan andal. Anda juga dapat menggunakan image untuk mengarsipkan versi aplikasi untuk skenario pemulihan dari bencana atau rollback.

Memahami gambar

Image di Compute Engine adalah resource cloud yang memberikan referensi ke disk yang tidak dapat diubah. Representasi disk tersebut kemudian dienkapsulasi menggunakan beberapa format data.

Memahami gambar.

Image adalah paket byte mentah yang digunakan untuk membuat hard disk yang telah diisi sebelumnya. Yang ditulis di disk yang diformat adalah tabel partisi yang mengarah ke satu atau beberapa partisi yang berisi data. Agar dapat di-booting, image harus berisi hal berikut:

Agar disk dapat diimpor sebagai image Compute Engine, byte disk harus ditulis ke file bernama disk.raw.

Setelah urutan byte lengkap dari disk ditulis ke file, file tersebut diarsipkan menggunakan format tar, lalu dikompresi menggunakan format GZIP. Kemudian, Anda dapat mengupload file *.tar.gz yang dihasilkan ke Cloud Storage dan mendaftarkannya sebagai image di Compute Engine, seperti yang ditunjukkan pada diagram sebelumnya. Setelah mendaftarkan image, Anda dapat menggunakannya untuk membuat replika persis dari disk asli di region Google Cloud mana pun. Image yang baru didaftarkan sering digunakan sebagai volume booting untuk instance Compute Engine.

Untuk pengantar yang lebih mendasar tentang istilah Compute Engine ini, lihat Instance virtual machine dan Image dalam dokumentasi.

Memilih image booting

Langkah pertama dalam menggunakan Compute Engine adalah memilih image yang Anda inginkan sebagai sistem operasi untuk instance virtual machine (VM). Anda dapat menggunakan image publik yang disediakan oleh Google Cloud, yang diperbarui secara berkala. Google Cloud menyediakan berbagai sistem operasi, termasuk Debian, Ubuntu, dan CentOS, untuk Anda gunakan tanpa biaya tambahan. Beberapa sistem operasi, seperti Red Hat Enterprise Linux dan Microsoft Windows, adalah image premium, yang dikenai biaya tambahan untuk setiap jam pengoperasian instance.

Untuk mengetahui informasi selengkapnya tentang image tertentu, seperti kebijakan update otomatis, patch keamanan, dan saluran dukungan, lihat bagian Detail sistem operasi dalam dokumentasi produk.

Untuk keamanan tambahan, Anda juga dapat menggunakan Fitur image tepercaya untuk menentukan kebijakan organisasi yang membatasi image dalam project image publik tertentu agar tidak digunakan dalam pembuatan image booting.

Image booting.

Anda dapat menggunakan image publik Google Cloud untuk mem-booting instance Compute Engine, lalu menyesuaikan instance untuk menjalankan aplikasi.

Salah satu pendekatan untuk mengonfigurasi instance adalah menggunakan skrip startup untuk menjalankan perintah yang men-deploy aplikasi saat booting. Perlu diingat bahwa skrip ini berjalan setiap kali instance melakukan booting, sehingga Anda harus membuat skrip tidak idempoten untuk menghindari berakhir dalam status yang tidak konsisten atau dikonfigurasi sebagian. Jika instance Anda adalah bagian dari grup instance terkelola, Anda dapat menggunakan Updater Grup Instance untuk memulai ulang atau mem-build ulang instance, yang akan menjalankan ulang skrip startup. Praktik yang umum adalah menggunakan skrip startup untuk menjalankan alat pengelolaan konfigurasi seperti Chef atau Ansible.

Membuat gambar yang disesuaikan

Meskipun mengonfigurasi skrip startup instance adalah cara yang efektif untuk menyediakan infrastruktur, metode yang lebih efisien adalah dengan membuat image kustom baru dengan konfigurasi Anda yang digabungkan ke dalam image publik. Anda dapat menyesuaikan gambar dengan beberapa cara:

  • Manual
  • Otomatis
  • Impor

Proses pembuatan image kustom disebut pembuatan.

Membakar gambar memiliki manfaat berikut:

  • Waktu yang lebih singkat dari booting hingga kesiapan aplikasi.
  • Meningkatkan keandalan untuk deployment aplikasi.
  • Melakukan rollback ke versi sebelumnya dengan lebih mudah.
  • Lebih sedikit dependensi pada layanan eksternal selama bootstrap aplikasi.
  • Menskalakan ke atas akan membuat instance yang berisi versi software yang identik.

Pemrosesan manual

Anda dapat membuat image kustom sederhana dengan membuat instance VM baru dari image publik, mengonfigurasi instance dengan aplikasi dan setelan yang Anda inginkan, lalu membuat image kustom dari instance tersebut. Gunakan metode ini jika Anda dapat mengonfigurasi image dari awal secara manual, bukan menggunakan pembuatan otomatis atau mengimpor image yang ada.

Anda dapat membuat image kustom sederhana menggunakan langkah-langkah berikut:

  1. Membuat instance dari image publik.
  2. Hubungkan ke instance.
  3. Sesuaikan instance untuk kebutuhan Anda.
  4. Hentikan instance.
  5. Buat image kustom dari boot disk instance tersebut. Proses ini mengharuskan Anda menghapus instance, tetapi mempertahankan disk booting.

Pemrosesan otomatis

Baking manual adalah cara mudah untuk memulai jika Anda memiliki sedikit gambar, tetapi gambar dalam jumlah besar menjadi sulit untuk diaudit dan dikelola. Packer adalah alat open source untuk membuat pembuatan image lebih mudah diperbanyak, dapat diaudit, dapat dikonfigurasi, dan andal. Anda juga dapat menggunakan Packer sebagai bagian dari pipeline Spinnaker untuk menghasilkan image yang di-deploy ke cluster instance.

Mengimpor gambar yang ada

Anda dapat mengimpor image disk booting dari infrastruktur yang ada ke Compute Engine menggunakan alat impor disk virtual, yang mengotomatiskan proses impor image. Untuk mesin Linux, berikut adalah panduan mendalam untuk memigrasikan disk image RAW, Amazon Machine Image (AMI), dan image VirtualBox secara manual.

Opsi lain untuk mengimpor image yang ada adalah menggunakan Migrate to Virtual Machines.

Migrate to Virtual Machines adalah rantai alat dan layanan yang memfasilitasi migrasi mesin dari satu platform ke platform lain dengan periode nonaktif minimal menggunakan replikasi tingkat blok berkelanjutan. Anda dapat memigrasikan mesin ke Compute Engine, lalu menggunakan pembuatan manual untuk membuat image.

Mengenkripsi gambar

Semua disk di Compute Engine dienkripsi secara default menggunakan kunci enkripsi Google. Image yang dibuat dari disk juga dienkripsi. Atau, Anda dapat memberikan kunci enkripsi Anda sendiri saat disk dibuat. Setelah membuat disk, Anda dapat membuat image terenkripsi dengan memberikan kunci enkripsi ke perintah pembuatan image. Untuk informasi selengkapnya tentang enkripsi dalam penyimpanan dan kunci enkripsi yang disediakan pelanggan, lihat Enkripsi dalam penyimpanan dalam dokumentasi Google Cloud.

Siklus proses gambar

Setelah menyiapkan pipeline build image, Anda dapat menggunakan image untuk meluncurkan instance aplikasi dengan andal. Meskipun pipeline dapat menangani pembuatan gambar, Anda juga harus memastikan bahwa mekanisme deployment menggunakan versi gambar terbaru. Terakhir, Anda memerlukan proses untuk menyeleksi gambar, sehingga gambar lama dan usang tidak digunakan secara tidak sengaja.

Kelompok image

Kelompok image membantu Anda mengelola image dalam project dengan mengelompokkan image terkait, sehingga Anda dapat me-roll maju dan melakukan roll back di antara versi image tertentu. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik kelompok image.

Menghentikan penggunaan image

Sebagai administrator, Anda juga dapat melakukan rollback image yang dituju oleh kelompok image dengan menghentikan penggunaan image menggunakan perintah berikut:

gcloud compute images deprecate my-application-v3-20161011 --state DEPRECATED

Anda dapat memilih dari berbagai status penghentian penggunaan:

Status Deskripsi
TIDAK DIGUNAKAN LAGI Gambar yang bukan lagi yang terbaru, tetapi masih dapat diluncurkan oleh pengguna. Pengguna akan melihat peringatan saat peluncuran bahwa mereka tidak lagi menggunakan image terbaru.
OBSOLETE Gambar yang tidak boleh diluncurkan oleh pengguna atau otomatisasi. Upaya untuk membuat instance dari image ini akan gagal. Anda dapat menggunakan status image ini untuk mengarsipkan image sehingga datanya masih tersedia saat dipasang sebagai disk non-booting.
DIHAPUS Gambar yang telah dihapus atau ditandai untuk dihapus pada masa mendatang. Aplikasi ini tidak dapat diluncurkan, dan Anda harus menghapusnya sesegera mungkin.

Menerapkan kebijakan siklus proses

Anda dapat menandai gambar untuk dihapus atau tidak digunakan lagi menggunakan perintah gcloud compute images deprecate. Anda dapat melampirkan metadata ke gambar untuk menandainya agar dihapus pada masa mendatang dengan memberikan salah satu tanda --delete-in atau --delete-on. Untuk melampirkan metadata guna menandai gambar untuk keusangan di masa mendatang, berikan flag --obsolete-in atau --obsolete-on. Anda dapat menggabungkan perintah ini ke dalam proses build image untuk menerapkan kebijakan siklus proses image yang membatasi penyebaran image yang sudah tidak berlaku dan sudah habis masa berlakunya di project Anda. Misalnya, di akhir pipeline build image, Anda dapat menyertakan pemeriksaan tambahan untuk gambar yang perlu dihentikan penggunaannya atau dihapus, lalu melakukan tindakan tersebut secara eksplisit.

Meskipun gambar yang tidak digunakan lagi dan dihapus tidak lagi ditampilkan melalui API dan UI secara default, Anda masih dapat melihatnya dengan memberikan tanda --show-deprecated. Untuk menghapus gambar dan datanya sepenuhnya, Anda harus mengirim perintah hapus eksplisit untuk gambar tersebut.

Membagikan image antar-project

Organisasi sering kali membuat beberapa project Google Cloud untuk mempartisi resource, lingkungan, dan akses pengguna mereka. Mengisolasi resource ke dalam project memungkinkan penagihan terperinci, penerapan keamanan, dan jaringan yang terpisah. Meskipun sebagian besar resource cloud tidak perlu mencakup beberapa project, image adalah kandidat yang baik untuk dibagikan di seluruh project. Dengan menggunakan kumpulan image bersama, Anda dapat mengikuti proses umum untuk mengirimkan image dengan praktik terbaik untuk keamanan, otorisasi, pengelolaan paket, dan operasi yang telah dikonfigurasi sebelumnya untuk seluruh organisasi.

Membagikan gambar.

Anda membagikan image dengan menetapkan peran IAM ke project organisasi. Project yang berisi gambar yang ingin Anda bagikan dengan project lain, yang disebut dalam diagram sebelumnya sebagai "Project Pembuatan Gambar", harus menerapkan kebijakan dan peran IAM berikut:

  1. Izinkan pengguna "Grup Pengguna Gambar" untuk membuat instance dari gambar ini dengan memberi mereka peran compute.imageUser.
  2. Izinkan "Pengguna Pembuatan Image" membuat instance dalam project ini dengan memberi mereka peran compute.instanceAdmin.
  3. Izinkan "Pengguna Pembuatan Image" membuat image dan disk dalam project ini dengan memberinya peran compute.storageAdmin.

Project yang ingin Anda gunakan untuk image bersama harus mengizinkan pengguna dengan peran compute.imageUser untuk membuat instance dengan menetapkan peran compute.instanceAdmin kepada mereka.

Untuk petunjuk yang lebih mendetail tentang cara berbagi image antar-project, lihat Membagikan image di seluruh project dalam dokumentasi Compute Engine.

Langkah selanjutnya