Dokumen ini memberikan panduan teknis dan praktik terbaik untuk mendesain dan men-deploy workload dengan ketersediaan tinggi (HA) di beberapa zona dalam lingkungan terisolasi Google Distributed Cloud (GDC). Panduan ini menguraikan pola arsitektur utama, konfigurasi layanan, dan pertimbangan operasional untuk meminimalkan waktu non-operasional dan memastikan kelangsungan bisnis.
Strategi dalam dokumen ini ditujukan untuk profesional teknis berikut:
Arsitek cloud yang mendesain arsitektur aplikasi dan infrastruktur yang tangguh.
Engineer DevOps dan site reliability engineer yang menerapkan strategi deployment, otomatisasi, pemantauan, dan respons insiden untuk beban kerja HA.
Developer aplikasi yang membangun aplikasi fault-tolerant yang terintegrasi dengan pola HA.
Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.
Pentingnya ketersediaan tinggi
Dalam sistem terdistribusi modern, perencanaan ketersediaan tinggi sangat penting. Periode nonaktif dapat menyebabkan gangguan bisnis yang signifikan, hilangnya pendapatan, dan pengalaman pengguna yang buruk.
Untuk workload yang berjalan di pusat data pribadi menggunakan GDC, ketersediaan sering kali berkorelasi langsung dengan keberhasilan operasional inti, terutama untuk aplikasi yang sensitif terhadap latensi atau penting untuk misi. Mendesain untuk HA sejak awal sangat penting untuk membangun layanan yang tangguh dan andal.
Kemampuan hyperscale, yang disediakan secara lokal
GDC memperluas infrastruktur dan layanan ke edge dan pusat data Anda. Google Cloud GDC menyediakan solusi hardware dan software yang terkelola sepenuhnya, sehingga Anda dapat menjalankan Google Kubernetes Engine (GKE) di cluster GDC dan layananGoogle Cloud lainnya lebih dekat dengan tempat data Anda dihasilkan dan digunakan.
Dokumen ini berfokus pada semesta GDC yang dikonfigurasi dalam topologi multi-zona. Dalam konfigurasi ini, satu semesta terdiri dari beberapa zona yang terisolasi secara fisik dalam lokasi yang sama.
Zona ini memiliki daya, pendingin, dan jaringan yang independen, sehingga memberikan perlindungan terhadap kegagalan infrastruktur fisik yang terlokalisasi. Konektivitas jaringan latensi rendah dan bandwidth tinggi antar-zona memungkinkan replikasi data dan failover cepat, sehingga membentuk fondasi untuk membangun aplikasi dengan ketersediaan tinggi.
Skalabilitas dan load balancing
Selain redundansi komponen dasar, pengelolaan traffic yang efektif dan memungkinkan penskalaan yang lancar sangat penting untuk mempertahankan ketersediaan tinggi, terutama dengan kondisi beban yang bervariasi. GDC menyediakan beberapa mekanisme untuk load balancing dan pengelolaan traffic yang canggih.
Load balancer eksternal untuk traffic utara-selatan
Untuk mengekspos aplikasi Anda kepada pengguna atau sistem di luar cluster GKE di GDC (traffic utara-selatan), Anda menggunakan kemampuan load balancing eksternal terkelola GDC. Layanan load balancer eksternal (ELB) menyediakan kemampuan ini dan terintegrasi dengan lancar dengan Kubernetes.
Karakteristik utama layanan ELB yang menyediakan HA dan skalabilitas adalah sebagai berikut:
Layanan terkelola: berjalan sebagai layanan khusus GDC, dan dirancang untuk ketersediaan tinggi dan ketahanan di lingkungan yang terisolasi.
Akses eksternal: menyediakan alamat IP eksternal yang stabil dari kumpulan yang dikelola GDC, sehingga memberikan titik entri yang konsisten untuk klien eksternal.
Integrasi load balancer dengan Kubernetes: otomatis menyediakan dan mengonfigurasi load balancer saat Anda membuat
ServiceKubernetes daritype: LoadBalancertanpa anotasi internal tertentu.Pengenalan zona: mendistribusikan traffic masuk di seluruh pod aplikasi yang berfungsi dengan baik yang berjalan di semua zona yang tersedia dalam semesta GDC. ELB mengandalkan pemeriksaan kesiapan pod untuk menentukan kondisi backend.
Skalabilitas: menangani distribusi traffic eksternal saat aplikasi Anda diskala secara horizontal di seluruh node dan zona.
Menggunakan load balancer eksternal adalah cara standar dan yang direkomendasikan untuk mencapai HA untuk ingress traffic eksternal, sehingga permintaan klien secara otomatis dialihkan dari zona atau instance yang gagal.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi load balancer eksternal.
Load balancer internal untuk traffic timur-barat
Untuk komunikasi antara layanan yang berjalan dalam cluster GKE yang sama di GDC (traffic east-west), GDC menyediakan load balancer internal (ILB). Hal ini sangat penting untuk memisahkan layanan internal dan menyediakan jalur komunikasi internal yang juga sangat tersedia dan skalabel.
Karakteristik utama layanan ILB yang menyediakan HA dan skalabilitas adalah sebagai berikut:
Akses internal: menyediakan alamat IP internal yang stabil yang hanya dapat diakses dari dalam jaringan GDC, seperti node cluster atau layanan internal lainnya.
Integrasi load balancer dengan Kubernetes: menyediakan load balancing dengan membuat
ServiceKubernetes jenistype: LoadBalancerdengan anotasi tertentu untuk menunjukkan bahwa load balancer harus internal. Contoh,networking.gke.io/load-balancer-type: "Internal".Pengenalan zona: mendistribusikan traffic di seluruh pod backend yang sehat, yang diidentifikasi dengan pemeriksaan kesiapan, yang berada di semua zona yang tersedia. Distribusi ini mencegah kegagalan komunikasi internal jika satu zona mengalami masalah.
Penemuan layanan dan pelepasan ketergantungan: menyediakan alamat IP internal dan nama DNS yang stabil dengan integrasi kube-dns dan CoreDNS. Layanan dapat saling menemukan dan berkomunikasi, sehingga klien tidak perlu mengetahui alamat IP pod satu per satu.
Skalabilitas: memfasilitasi penskalaan layanan backend internal dengan mendistribusikan traffic di semua replika yang responsif dan tersedia.
Menggunakan ILB untuk komunikasi layanan-ke-layanan internal membuat aliran traffic internal tahan terhadap kegagalan zona dan memberikan penskalaan yang efektif, melengkapi HA yang disediakan oleh ELB eksternal dan distribusi komputasi yang mendasarinya. Hal ini sering digunakan untuk aplikasi bertingkat yang frontend-nya harus berkomunikasi dengan API atau database backend dalam cluster Kubernetes.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi load balancer internal.
Deployment aplikasi HA di seluruh zona dengan penyimpanan asinkron
Dengan GDC, Anda dapat menjalankan infrastruktur dan aplikasi lebih dekat dengan sumber data atau pengguna akhir. Mencapai HA di semesta GDC Anda sangat penting untuk workload penting. Anda dapat men-deploy aplikasi HA di beberapa zona dalam semesta GDC Anda, menerapkan replikasi penyimpanan asinkron untuk persistensi data dan pemulihan dari bencana.
Zona mewakili domain kegagalan yang berbeda dalam satu semesta. Dengan mendistribusikan komponen aplikasi dan mereplikasi data di seluruh zona, Anda dapat meningkatkan ketahanan secara signifikan terhadap kegagalan hardware atau peristiwa pemeliharaan yang terlokalisasi.
Langkah berikutnya
Untuk men-deploy layanan sebagai kumpulan virtual machine (VM) yang didistribusikan di seluruh zona menggunakan penyimpanan blok yang direplikasi secara asinkron, lihat Men-deploy aplikasi VM HA.
Untuk men-deploy layanan sebagai aplikasi dalam container di Kubernetes di seluruh zona menggunakan volume persisten yang direplikasi secara asinkron, lihat Men-deploy aplikasi container HA.
Untuk mempelajari lebih lanjut zona dan semesta, lihat Zona dalam GDC air-gapped.