Panduan strategi ini memberikan panduan teknis dan praktik terbaik untuk merancang dan men-deploy workload dengan ketersediaan tinggi (HA) ke lingkungan tertutup Google Distributed Cloud (GDC) yang dikonfigurasi dengan beberapa zona, atau multi-zona. Panduan ini menguraikan pola arsitektur utama, konfigurasi layanan, dan pertimbangan operasional yang diperlukan untuk meminimalkan periode nonaktif dan memberikan kelangsungan bisnis untuk aplikasi yang berjalan di GDC.
Strategi ketersediaan tinggi ditujukan untuk profesional teknis yang terlibat dalam mendesain, men-deploy, dan mengelola aplikasi di GDC, yang mencakup hal berikut:
Arsitek cloud dalam grup administrator platform: Mendesain arsitektur aplikasi dan infrastruktur yang tangguh di GDC.
Engineer DevOps dan site reliability engineer (SRE) dalam grup operator aplikasi: Menerapkan strategi deployment, otomatisasi, pemantauan, dan respons insiden untuk beban kerja HA.
Developer aplikasi dalam grup operator aplikasi: Membangun aplikasi yang toleran terhadap kesalahan dan terintegrasi dengan lancar dengan pola infrastruktur 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, baik yang direncanakan maupun tidak, dapat menyebabkan gangguan bisnis yang signifikan, hilangnya pendapatan, kerusakan reputasi, dan pengalaman pengguna yang buruk. Untuk beban kerja yang berjalan di edge atau 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.
Panduan ini secara khusus berfokus pada semesta GDC yang dikonfigurasi dalam topologi multi-zona. Dengan multi-zona, satu semesta GDC terdiri dari beberapa zona yang terisolasi secara fisik dalam lokasi yang sama, seperti kampus pusat data atau area metropolitan. Zona ini memiliki daya, pendingin, dan jaringan independen, sehingga memberikan perlindungan terhadap kegagalan infrastruktur fisik yang terlokalisasi. Konektivitas jaringan latensi rendah dan bandwidth tinggi antar-zona dalam semesta GDC memungkinkan replikasi sinkron dan failover cepat, sehingga membentuk dasar untuk membangun aplikasi dengan ketersediaan tinggi.
Skalabilitas dan load balancing
Selain redundansi komponen dasar, pengelolaan traffic yang efektif dan 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: ELB dikelola oleh GDC, yang didesain untuk ketersediaan dan ketahanan tinggi.
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: Menyediakan dan mengonfigurasi load balancer secara otomatis saat Anda membuat
Service
Kubernetes daritype: LoadBalancer
tanpa 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 disesuaikan skalanya 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: Biasanya disediakan dengan membuat
Service
type: LoadBalancer
Kubernetes dengan anotasi tertentu untuk menunjukkan bahwa load balancer harus bersifat 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 menemukan dan berkomunikasi satu sama lain, sehingga klien tidak perlu mengetahui alamat IP pod masing-masing.
Skalabilitas: Memfasilitasi penskalaan layanan backend internal dengan mendistribusikan traffic di semua replika yang sehat 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 frontendnya harus berkomunikasi dengan API atau database backend dalam cluster Kubernetes.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi load balancer internal.
Deployment aplikasi HA lintas 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.