Dokumen ini menjelaskan praktik terbaik untuk mendesain sistem yang tangguh di Compute Engine. Kursus ini memberikan saran umum dan mencakup beberapa fitur di Compute Engine yang dapat membantu mengurangi periode nonaktif instance dan mempersiapkan saat instance Compute Engine Anda gagal secara tidak terduga.
Sistem tangguh adalah sistem yang dapat menahan sejumlah kegagalan atau gangguan tertentu tanpa mengganggu layanan Anda atau memengaruhi pengalaman pengguna menggunakan layanan Anda. Meskipun Compute Engine melakukan segala upaya untuk mencegah gangguan tersebut, peristiwa tertentu tidak dapat diprediksi, dan sebaiknya Anda bersiap menghadapi peristiwa ini.
Jenis kegagalan
Pada titik tertentu, satu atau beberapa instance komputasi Anda mungkin hilang karena kegagalan sistem atau hardware. Daftar berikut berisi beberapa jenis skenario kegagalan yang dapat Anda kurangi:
Kegagalan instance tunggal yang tidak terduga
Kegagalan instance tunggal yang tidak terduga dapat disebabkan oleh kegagalan hardware atau sistem. Anda dapat mengurangi peristiwa ini dengan menggunakan persistent disk dan skrip startup untuk menyimpan data Anda dan mengaktifkan kembali software setelah memulai ulang VM.
Mulai ulang VM tunggal yang tidak terduga
Pada waktu tertentu, Anda mungkin mengalami kegagalan atau mulai ulang VM tunggal yang tidak terduga. Tidak seperti kegagalan VM tunggal yang tidak terduga, Compute Engine akan otomatis memulai ulang VM Anda setelah gagal. Untuk membantu mengurangi peristiwa ini, cadangkan data Anda, gunakan Hyperdisk atau Persistent Disk dan gunakan skrip startup untuk mengonfigurasi ulang software dengan cepat.
Kegagalan zona atau region
Kegagalan zona dan region adalah kegagalan langka yang dapat menyebabkan semua instance Anda di zona atau region tertentu tidak dapat diakses atau gagal. Untuk mengurangi kegagalan ini, buat keberagaman di seluruh region dan zona dan terapkan load balancing. Anda juga harus mencadangkan data atau mereplikasi disk di beberapa zona.
Tips untuk mendesain sistem yang tangguh
Untuk membantu mengurangi kegagalan instance komputasi, desain aplikasi Anda agar tahan terhadap kegagalan, gangguan jaringan, dan bencana tak terduga. Sistem yang tangguh menangani kegagalan dengan baik, misalnya, dengan mengalihkan traffic dari instance yang tidak dapat diakses ke instance aktif, atau dengan mengotomatiskan tugas saat mulai ulang.
Berikut beberapa tips umum untuk membantu Anda mendesain sistem yang tangguh terhadap kegagalan.
Gunakan migrasi langsung
Google Cloud secara berkala melakukan pemeliharaan pada infrastrukturnya dengan melakukan patch sistem melalui software terbaru, melakukan pengujian rutin dan pemeliharaan pencegahan, serta secara umum memastikan bahwa infrastrukturnya aman, cepat, dan efisien. Compute Engine menggunakan migrasi langsung untuk memastikan bahwa pemeliharaan infrastruktur ini bersifat transparan secara default di instance komputasi Anda.
Migrasi langsung adalah teknologi yang memindahkan instance yang berjalan dari sistem yang akan menjalani pekerjaan pemeliharaan. Compute Engine melakukannya secara otomatis untuk jenis instance yang didukung.
Selama migrasi langsung, instance Anda mungkin mengalami penurunan performa dalam waktu singkat. Untuk instance yang meminta performa maksimum dan konstan, Anda dapat mengonfigurasi instance untuk dimulai ulang di host lain, bukan menjalani migrasi langsung. Jika Anda memilih opsi ini, Compute Engine akan menghentikan instance dan memulai ulang instance tersebut di host yang tidak terlibat dalam peristiwa pemeliharaan. Menghentikan dan memulai ulang instance cocok untuk keseluruhan aplikasi yang juga dibuat untuk menangani kegagalan atau mulai ulang instance.
Untuk mengonfigurasi instance Anda agar dimigrasikan langsung atau mengonfigurasinya untuk memulai ulang, bukan bermigrasi, lihat Menetapkan kebijakan pemeliharaan host untuk instance.
Mendistribusikan instance
Buat instance di lebih dari satu region dan zona sehingga Anda memiliki instance komputasi alternatif untuk diarahkan jika satu zona atau region yang berisi salah satu instance Anda mengalami gangguan. Jika membuat semua instance di zona atau region yang sama, Anda tidak akan dapat mengakses instance tersebut jika zona atau region tersebut menjadi tidak dapat dijangkau.
Gunakan nama DNS internal khusus zona
Tetapkan jenis DNS internal default untuk project atau organisasi Anda ke DNS zona. Dalam aplikasi Anda, gunakan nama DNS zona saat mengakses instance komputasi lainnya. Server DNS internal didistribusikan di semua zona, sehingga Anda dapat mengandalkan nama DNS zona untuk menyelesaikan masalah ini meskipun terjadi kegagalan di lokasi lain.
DNS global kurang tangguh, karena kegagalan titik tunggal. DNS Zona mengurangi risiko pemadaman layanan lintas-regional. DNS zona tidak memerlukan keunikan nama instance di semua region dalam project, sehingga pembuatan instance lebih cepat.
Untuk memeriksa apakah instance menggunakan nama DNS zona atau nama DNS global, lihat Menentukan nama DNS internal untuk VM.
Jika project menggunakan nama DNS global, Anda dapat beralih untuk menggunakan nama DNS zona. Untuk mengetahui informasi selengkapnya, lihat Menggunakan DNS Zona untuk jenis DNS internal Anda.
Buat grup VM
Gunakan grup instance terkelola untuk membuat grup VM yang homogen, sehingga load balancer dapat mengarahkan traffic ke lebih dari satu VM jika satu VM tidak responsif.
Grup instance terkelola (MIG) juga menawarkan fitur seperti penskalaan otomatis dan autohealing. Dengan penskalaan otomatis, Anda dapat menangani lonjakan traffic dengan meningkatkan atau menurunkan jumlah VM berdasarkan sinyal tertentu. Autohealing menjalankan health check dan, jika perlu, secara otomatis membuat ulang VM yang tidak responsif.
MIG juga tersedia untuk region, sehingga Anda dapat membuat grup VM yang didistribusikan di beberapa zona dalam satu region. Untuk informasi selengkapnya, lihat Membuat dan mengelola MIG regional.
Gunakan load balancing
Google Cloud menawarkan layanan load balancing yang membantu Anda mendukung periode traffic tinggi sehingga instance komputasi tidak kelebihan beban. Dengan Cloud Load Balancing, Anda dapat melakukan hal berikut:
Deploy aplikasi Anda di VM dalam beberapa zona menggunakan MIG regional. Kemudian, Anda dapat mengonfigurasi aturan penerusan yang dapat menyebarkan traffic di semua VM di semua zona dalam region tersebut. Setiap aturan penerusan dapat menentukan satu titik entri ke aplikasi Anda menggunakan alamat IP eksternal.
Deploy VM di beberapa region menggunakan load balancing global. Melalui load balancing HTTP(S), traffic Anda dapat masuk ke sistem Google Cloud di lokasi yang paling dekat dengan klien. Load balancing lintas regional memberikan redundansi, sehingga jika suatu region tidak dapat dijangkau, traffic akan otomatis dialihkan ke region lain. Dengan cara ini, layanan Anda tetap dapat dijangkau menggunakan alamat IP eksternal yang sama.
Gunakan penskalaan otomatis untuk menambahkan atau menghapus VM secara otomatis dari MIG berdasarkan peningkatan atau penurunan beban.
Selain itu, Cloud Load Balancing menawarkan health check VM, yang memberikan dukungan dalam mendeteksi dan menangani kegagalan VM.
Gunakan skrip startup dan shutdown
Compute Engine menawarkan skrip startup dan shutdown yang berjalan saat instance melakukan booting atau dimatikan. Skrip startup dan shutdown dapat mengotomatiskan tugas seperti menginstal software, menjalankan update, membuat pencadangan, dan logging data.
Skrip startup dan shutdown adalah cara yang efisien dan sangat berharga untuk mem-bootstrap atau mematikan instance Anda dengan bersih. Daripada mengonfigurasi instance menggunakan image kustom, sebaiknya konfigurasi instance menggunakan skrip startup.
Skrip startup berjalan setiap kali instance dimulai ulang karena terjadi kegagalan, dan dapat digunakan untuk menginstal software serta update. Anda juga dapat menggunakan skrip startup untuk memastikan bahwa layanan berjalan dalam instance. Mengkodekan perubahan untuk mengonfigurasi instance dalam skrip startup sering kali lebih mudah daripada mencoba mengetahui file atau byte apa yang telah berubah pada image kustom.
Skrip shutdown berjalan saat instance Anda dimatikan, baik sengaja maupun tidak. Fungsi ini dapat melakukan tugas mendadak seperti mencadangkan data, menyimpan log, dan menutup koneksi dengan baik sebelum Anda menghentikan instance.
Untuk mengetahui informasi selengkapnya, lihat Menjalankan skrip startup dan Menjalankan skrip shutdown.
Mencadangkan data Anda
Cadangkan data Anda secara rutin dan di beberapa lokasi. Anda dapat mengupload file ke Cloud Storage, membuat snapshot disk, atau mereplikasi data ke disk di zona lain menggunakan replikasi sinkron atau ke region lain menggunakan replikasi asinkron.