Google Cloud Architecture Framework

Last reviewed 2024-09-02 UTC

Framework Arsitektur Google Cloud memberikan rekomendasi dan menjelaskan praktik terbaik untuk membantu arsitek, developer, administrator, dan praktisi cloud lainnya dalam mendesain dan mengoperasikan topologi cloud yang aman, efisien, tangguh, berperforma tinggi, dan hemat biaya. Framework Arsitektur Google Cloud adalah versi framework kami yang dirancang dengan baik.

Tim pakar lintas fungsi di Google memvalidasi rekomendasi desain dan praktik terbaik yang membentuk Framework Arsitektur. Tim menyeleksi Framework Arsitektur untuk mencerminkan kemampuan Google Cloud yang terus berkembang, praktik terbaik industri, pengetahuan komunitas, dan masukan dari Anda. Untuk ringkasan perubahan yang signifikan, lihat Apa yang baru.

Panduan desain dalam Framework Arsitektur berlaku pada aplikasi yang dibangun untuk cloud dan untuk workload yang dimigrasikan dari lokal ke Google Cloud, deployment hybrid cloud, dan lingkungan multi-cloud.

Kategori Framework Arsitektur

Framework Arsitektur Google Cloud disusun ke dalam lima kategori (juga dikenal sebagai pilar), seperti yang ditunjukkan dalam diagram berikut:

Framework Arsitektur Google Cloud.

Keunggulan Operasional
Deploy, pantau, dan kelola beban kerja cloud Anda secara efisien.
Keamanan, privasi, dan kepatuhan
Maksimalkan keamanan data dan beban kerja Anda di cloud, buat desain yang menjaga privasi, dan sesuaikan dengan persyaratan serta standar peraturan.
Keandalan
Rancang dan operasikan beban kerja yang tangguh dan sangat tersedia di cloud.
Pengoptimalan biaya
Maksimalkan nilai bisnis dari investasi Anda di Google Cloud.
Pengoptimalan Performa
Rancang dan sesuaikan resource cloud Anda untuk performa yang optimal.

Prinsip inti

Sebelum Anda mempelajari rekomendasi di setiap kategori Framework Arsitektur, tinjau prinsip inti berikut:

Mendesain untuk perubahan

Tidak ada sistem yang statis. Kebutuhan pengguna, sasaran tim yang membangun sistem, dan sistem itu sendiri terus berubah. Dengan kebutuhan akan perubahan memikirkannya, membangun proses pengembangan dan produksi yang memungkinkan tim untuk menyampaikan perubahan kecil secara teratur dan mendapatkan umpan balik cepat tentang perubahan tersebut. Menunjukkan kemampuan untuk men-deploy perubahan secara konsisten akan membantu membangun kepercayaan dengan pemangku kepentingan, termasuk tim yang bertanggung jawab atas sistem, dan para pengguna kemampuan sistem. Menggunakan metrik pengiriman software DORA dapat membantu tim Anda memantau kecepatan, kemudahan, dan keamanan dalam melakukan perubahan pada sistem.

Mendokumentasikan arsitektur

Saat mulai memindahkan workload ke cloud atau membangun aplikasi, kurangnya dokumentasi tentang sistem bisa menjadi hambatan utama. Dokumentasi sangat penting untuk memvisualisasikan arsitektur deployment Anda saat ini dengan benar.

Dokumentasi berkualitas tidak dicapai dengan menghasilkan jumlah dokumentasi, tetapi berdasarkan seberapa jelas konten, seberapa berguna, dan bagaimana itu dipertahankan saat sistem berubah.

Arsitektur cloud yang didokumentasikan dengan baik membentuk bahasa dan standar yang sama, sehingga tim lintas fungsi dapat berkomunikasi dan berkolaborasi secara efektif. Dokumentasi ini juga memberikan informasi yang diperlukan untuk mengidentifikasi dan memandu keputusan desain di masa mendatang. Dokumentasi harus ditulis dengan mempertimbangkan kasus penggunaan Anda, untuk memberikan konteks pada keputusan desain.

Seiring waktu, keputusan desain Anda akan berkembang dan berubah. Histori perubahan memberikan konteks yang diperlukan tim Anda untuk menyelaraskan inisiatif, menghindari duplikasi, dan mengukur perubahan performa secara efektif dari waktu ke waktu. Log perubahan sangat berharga saat Anda mengorientasi arsitek cloud baru yang belum memahami desain, strategi, atau histori Anda saat ini.

Analisis oleh DORA menemukan hubungan yang jelas antara kualitas dokumentasi dan organisasi/pengaturan kinerja — kemampuan organisasi untuk memenuhi kinerja dan tujuan profitabilitas.

Menyederhanakan desain Anda dan menggunakan layanan terkelola sepenuhnya

Kesederhanaan sangat penting untuk desain. Jika arsitektur Anda terlalu rumit untuk dipahami, akan sulit untuk menerapkan desain dan mengelolanya seiring waktu. Jika memungkinkan, gunakan layanan terkelola sepenuhnya untuk meminimalkan risiko, waktu, dan upaya yang terkait dengan pengelolaan dan pemeliharaan sistem dasar pengukuran.

Jika Anda sudah menjalankan workload dalam produksi, lakukan pengujian dengan layanan terkelola untuk melihat bagaimana layanan tersebut dapat membantu mengurangi kompleksitas operasional. Jika Anda mengembangkan workload baru, mulailah dengan yang sederhana, buat produk dengan kelayakan minimal (MVP), dan tahan keinginan untuk merekayasa secara berlebihan. Anda dapat mengidentifikasi kasus penggunaan yang luar biasa, melakukan iterasi, dan meningkatkan sistem secara bertahap dari waktu ke waktu.

Pisahkan arsitektur Anda

Riset dari DORA menunjukkan bahwa arsitektur merupakan prediktor penting untuk mencapai pengiriman. Decoupling adalah teknik yang digunakan untuk memisahkan aplikasi Anda dan komponen layanan menjadi komponen yang lebih kecil yang dapat beroperasi secara independen. Misalnya, Anda dapat memisahkan stack aplikasi monolitik menjadi setiap komponen layanan. Dalam arsitektur yang dikaitkan secara longgar, aplikasi dapat menjalankan fungsinya secara independen, terlepas dari berbagai dependensi.

Arsitektur yang dipisahkan memberi Anda peningkatan fleksibilitas untuk melakukan hal berikut:

  • Menerapkan upgrade independen.
  • Menerapkan kontrol keamanan tertentu.
  • Menetapkan tujuan keandalan untuk setiap subsistem.
  • Memantau kondisi.
  • Mengontrol performa dan parameter biaya secara terperinci.

Anda dapat memulai proses pemisahan di awal fase desain Anda atau menggabungkan sebagai bagian dari peningkatan sistem saat Anda melakukan penskalaan.

Menggunakan arsitektur stateless

Arsitektur stateless dapat meningkatkan keandalan dan skalabilitas aplikasi Anda.

Aplikasi stateful mengandalkan berbagai dependensi untuk melakukan tugas, seperti caching data secara lokal. Aplikasi stateful sering kali memerlukan mekanisme tambahan untuk menangkap progres dan memulai ulang dengan lancar. Aplikasi stateless dapat melakukan tugas tanpa dependensi lokal yang signifikan menggunakan penyimpanan bersama atau layanan yang di-cache. Arsitektur stateless memungkinkan aplikasi Anda melakukan peningkatan skala dengan cepat dengan dependensi booting minimum. Aplikasi tersebut dapat bertahan saat mulai ulang keras, memiliki periode nonaktif yang lebih rendah, dan memberikan performa yang lebih baik untuk pengguna akhir.