Prinsip inti desain sistem

Last reviewed 2023-08-05 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. Untuk mencapai desain sistem yang tangguh, sebaiknya Anda mengikuti empat prinsip inti.

Dokumentasikan semuanya

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.

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.

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

Pemisahan adalah teknik yang digunakan untuk memisahkan aplikasi dan komponen layanan Anda menjadi komponen yang lebih kecil yang dapat beroperasi secara independen. Misalnya, Anda dapat memecah stack aplikasi monolitik menjadi komponen layanan yang terpisah. Dalam arsitektur yang dipisahkan, 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 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