Prinsip inti desain sistem

Last reviewed 2024-05-30 UTC

Dokumen dalam Framework Arsitektur Google Cloud ini menjelaskan prinsip-prinsip inti desain sistem. Desain sistem yang tangguh harus aman, andal, skalabel, dan independen. Dengan begitu, Anda dapat membuat perubahan yang iteratif dan dapat diurungkan tanpa mengganggu sistem, meminimalkan potensi risiko, dan meningkatkan efisiensi operasional.

Mendesain untuk perubahan

Tidak ada sistem yang statis. Kebutuhan penggunanya, tujuan tim yang membangun sistem, dan sistem itu sendiri terus berubah. Dengan mempertimbangkan kebutuhan perubahan, buat jalur menuju produksi yang memungkinkan tim untuk mengirimkan perubahan kecil secara rutin dan mendapatkan masukan dengan cepat tentang perubahan tersebut. Menunjukkan kemampuan untuk men-deploy perubahan secara konsisten adalah salah satu cara untuk membangun kepercayaan dengan pemangku kepentingan, termasuk tim yang bertanggung jawab atas sistem dan pengguna sistem. Menggunakan metrik pengiriman software DORA dapat membantu tim Anda memantau kecepatan, kemudahan, dan keamanan perubahan sistem.

Mendokumentasikan arsitektur Anda

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

Dokumentasi berkualitas tidak dicapai dengan dokumentasi dalam jumlah tertentu, tetapi dengan konten yang jelas, berguna, dan dipertahankan seiring perubahan sistem.

Arsitektur cloud yang didokumentasikan dengan baik membentuk bahasa dan standar yang sama, sehingga tim lintas fungsi dapat berkomunikasi dan berkolaborasi secara efektif. Bagian 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 sistem, strategi, atau histori Anda saat ini.

Analisis dari DORA telah menemukan hubungan yang jelas antara kualitas dokumentasi dan performa organisasi, yaitu kemampuan organisasi untuk memenuhi sasaran performa dan profitabilitas mereka.

Menyederhanakan desain Anda dan menggunakan layanan terkelola sepenuhnya

Kesederhanaan sangat penting untuk desain sistem. 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 penayangan berkelanjutan. Pemisahan adalah teknik yang digunakan untuk memisahkan komponen aplikasi dan layanan Anda menjadi komponen yang lebih kecil, yang dapat beroperasi secara independen. Misalnya, Anda dapat memisahkan stack aplikasi monolitik menjadi komponen layanan individual. Dalam arsitektur yang dikaitkan secara longgar, aplikasi dapat menjalankan fungsinya secara independen, terlepas dari berbagai dependensinya.

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 pemisahan di awal fase desain atau menyertakannya sebagai bagian dari upgrade sistem seiring berubahnya skala sistem.

Menggunakan arsitektur stateless

Arsitektur stateless dapat meningkatkan keandalan dan skalabilitas aplikasi Anda.

Aplikasi stateful mengandalkan berbagai dependensi untuk melakukan tugas, seperti data yang di-cache 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.

Kategori desain sistem menjelaskan rekomendasi untuk membuat aplikasi Anda stateless atau memanfaatkan fitur berbasis cloud guna meningkatkan pencatatan status mesin untuk aplikasi stateful Anda.

Langkah selanjutnya