Arsitektur

Last reviewed 2023-12-20 UTC

Diagram berikut menunjukkan arsitektur tingkat tinggi yang di-deploy oleh blueprint untuk satu lingkungan. Anda men-deploy arsitektur ini di tiga lingkungan terpisah: produksi, non-produksi, dan pengembangan.

Arsitektur blueprint.

Diagram ini mencakup hal-hal berikut:

  • Cloud Load Balancing mendistribusikan traffic aplikasi di berbagai region ke objek layanan Kubernetes. Di belakang setiap service ada pengelompokan logis pod terkait.
  • Anthos Service Mesh memungkinkan layanan Kubernetes berkomunikasi satu sama lain.
  • Layanan Kubernetes dikelompokkan menjadi tenant, yang direpresentasikan sebagai namespace Kubernetes. Tenant adalah abstraksi yang mewakili banyak pengguna dan workload yang beroperasi dalam cluster, dengan RBAC terpisah untuk kontrol akses. Setiap tenant juga memiliki project-nya sendiri untuk resource cloud khusus tenant seperti database, bucket penyimpanan, dan langganan Pub/Sub.
  • Namespace dengan identitasnya sendiri untuk mengakses layanan pembanding dan resource cloud. Identitas ini konsisten di seluruh namespace yang sama dalam cluster yang berbeda karena adanya fleet Workload Identity. Setiap lingkungan memiliki kumpulan identitas workload terpisah untuk mengurangi eskalasi hak istimewa antar-lingkungan.
  • Setiap layanan memiliki pipeline khusus yang membangun dan men-deploy layanan tersebut. Pipeline yang sama digunakan untuk men-deploy layanan ke lingkungan pengembangan, lalu men-deploy layanan ke lingkungan non-produksi, dan akhirnya men-deploy layanan ke lingkungan produksi.

Keputusan arsitektur utama untuk platform developer

Tabel berikut menjelaskan keputusan arsitektur yang diterapkan blueprint.

Area keputusan keputusan Alasan

ARketipe deployment

Deploy di berbagai region.

Mengizinkan ketersediaan aplikasi selama pemadaman layanan di wilayah.

Arsitektur organisasi

Deploy berdasarkan blueprint dasar perusahaan.

Gunakan struktur organisasi dan kontrol keamanan yang disediakan oleh yayasan.

Gunakan tiga folder lingkungan yang disiapkan di dasar: development, nonproduction, dan production.

Menyediakan isolasi untuk lingkungan yang memiliki kontrol akses berbeda.

Arsitektur cluster platform developer

Mengemas dan men-deploy aplikasi sebagai container.

Mendukung pemisahan tanggung jawab, operasi yang efisien, dan portabilitas aplikasi.

Menjalankan aplikasi di cluster GKE.

Gunakan layanan container terkelola yang dibangun oleh perusahaan yang menjadi pelopor container.

Mereplikasi dan menjalankan penampung aplikasi dalam konfigurasi aktif-aktif.

Mencapai ketersediaan yang lebih tinggi dan peluncuran progresif yang cepat, sehingga meningkatkan kecepatan pengembangan.

Sediakan lingkungan produksi dengan dua cluster GKE di dua region yang berbeda.

Mencapai ketersediaan yang lebih tinggi daripada satu region cloud.

Sediakan lingkungan non-produksi dengan dua cluster GKE di dua region yang berbeda.

Perubahan tahap pada setelan lintas regional, seperti load balancer, sebelum deployment ke produksi.

Sediakan lingkungan pengembangan dengan satu instance cluster GKE.

Membantu mengurangi biaya.

Konfigurasi bidang kontrol yang sangat tersedia untuk setiap cluster GKE.

Pastikan bidang kontrol cluster tersedia selama upgrade dan perubahan ukuran.

Gunakan konsep kesamaan di seluruh namespace, layanan, dan identitas di setiap cluster GKE.

Pastikan objek Kubernetes dengan nama yang sama di cluster yang berbeda diperlakukan sebagai hal yang sama. Normalisasi ini dilakukan untuk mempermudah pengelolaan sumber daya armada.

Aktifkan ruang alamat IP pribadi untuk cluster GKE melalui akses Private Service Connect ke bidang kontrol dan kumpulan node pribadi.

Membantu melindungi cluster API Kubernetes dari pemindaian serangan.

Aktifkan akses administratif ke cluster GKE melalui Connect gateway.

Gunakan satu perintah untuk mengambil kredensial untuk mengakses beberapa cluster. Gunakan grup dan penyedia identitas pihak ketiga untuk mengelola akses cluster.

Gunakan Cloud NAT untuk menyediakan pod GKE akses ke resource dengan alamat IP publik.

Tingkatkan postur keamanan cluster secara keseluruhan karena pod tidak langsung terekspos ke internet, tetapi masih dapat mengakses resource yang terhubung ke internet.

Konfigurasikan node untuk menggunakan Container-Optimized OS dan Shielded GKE Node.

Batasi permukaan serangan node.

Kaitkan setiap lingkungan dengan fleet GKE.

Mengizinkan pengelolaan set cluster GKE sebagai unit.

Gunakan pipeline infrastruktur fondasi untuk men-deploy factory aplikasi, pipeline cakupan fleet, dan pipeline infrastruktur multi-tenant.

Menyediakan mekanisme yang dapat dikontrol, diaudit, dan dapat diulang untuk men-deploy infrastruktur aplikasi.

Konfigurasikan cluster GKE menggunakan fitur pengelolaan konfigurasi dan kebijakan GKE Enterprise.

Sediakan layanan yang memungkinkan konfigurasi sebagai kode untuk cluster GKE.

Gunakan factory aplikasi untuk men-deploy pipeline CI/CD aplikasi yang digunakan dalam blueprint.

Memberikan pola berulang untuk men-deploy pipeline aplikasi dengan lebih mudah.

Gunakan pipeline CI/CD aplikasi untuk membangun dan men-deploy komponen aplikasi blueprint.

Menyediakan mekanisme yang dapat dikontrol, diaudit, dan dapat diulang untuk men-deploy aplikasi.

Konfigurasikan pipeline CI/CD aplikasi untuk menggunakan Cloud Build, Cloud Deploy, dan Artifact Registry.

Gunakan layanan build dan deployment terkelola untuk mengoptimalkan keamanan, skala, dan kemudahan.

Gunakan container yang tidak dapat diubah di seluruh lingkungan, dan tanda tangani container dengan Otorisasi Biner.

Berikan provenance kode yang jelas dan pastikan kode tersebut telah diuji di seluruh lingkungan.

Gunakan Kemampuan Observasi Google Cloud, yang mencakup Cloud Logging dan Cloud Monitoring.

Sederhanakan operasi menggunakan layanan terkelola yang terintegrasi dari Google Cloud.

Aktifkan Container Threat Detection (layanan di Security Command Center) untuk memantau integritas container.

Gunakan layanan terkelola yang meningkatkan keamanan dengan terus memantau container.

Kontrol akses ke cluster GKE menggunakan role-based access control (RBAC) Kubernetes, yang didasarkan pada Google Grup untuk GKE.

Tingkatkan keamanan dengan menautkan kontrol akses ke identitas Google Cloud.

Arsitektur layanan

Gunakan akun layanan Kubernetes unik untuk setiap layanan Kubernetes. Akun ini bertindak sebagai akun layanan IAM melalui penggunaan Workload Identity.

Tingkatkan keamanan dengan meminimalkan izin yang perlu disediakan setiap layanan.

Mengekspos layanan melalui GKE Gateway API.

Menyederhanakan pengelolaan konfigurasi dengan menyediakan pendekatan berbasis deklaratif dan berbasis resource untuk mengelola aturan masuk dan konfigurasi load balancing.

Jalankan layanan sebagai layanan terdistribusi melalui penggunaan Anthos Service Mesh dengan Certificate Authority Service.

Berikan keamanan yang lebih baik dengan menerapkan autentikasi antarlayanan, dan juga menyediakan fault tolerance otomatis dengan mengalihkan traffic keluar dari layanan yang tidak responsif.

Gunakan replikasi lintas region untuk AlloyDB untuk PostgreSQL.

Menyediakan ketersediaan tinggi di lapisan database.

Arsitektur jaringan

Instance VPC bersama dikonfigurasi di setiap lingkungan dan cluster GKE dibuat dalam project layanan.

VPC Bersama menyediakan manajemen konfigurasi jaringan terpusat sekaligus mempertahankan pemisahan lingkungan.

Gunakan Cloud Load Balancing dalam konfigurasi multi-cluster dan multi-region.

Sediakan satu alamat IP anycast untuk mengakses cluster GKE yang diregionalkan untuk ketersediaan tinggi dan layanan berlatensi rendah.

Menggunakan koneksi HTTPS untuk akses klien ke layanan. Alihkan permintaan HTTP klien ke HTTPS.

Membantu melindungi data sensitif dalam pengiriman dan membantu mencegah serangan person-in-the-middle.

Gunakan Certificate Manager untuk mengelola sertifikat publik.

Mengelola sertifikat secara terpadu.

Lindungi antarmuka web dengan Google Cloud Armor.

Tingkatkan keamanan dengan melindungi dari kerentanan aplikasi web umum dan serangan volumetrik.

Keputusan Anda mungkin berbeda dari {i>blueprint<i}. Untuk mengetahui informasi tentang alternatif, lihat Alternatif untuk rekomendasi default.

Langkah selanjutnya