Baca dalam bahasa Inggris

Bagikan melalui


Pola Desain Cloud

Arsitek merancang beban kerja dengan menggabungkan layanan platform, fungsionalitas, dan kode untuk memenuhi persyaratan fungsional dan nonfungsi dalam beban kerja. Merancang beban kerja memerlukan pemahaman tentang persyaratan beban kerja tersebut dan kemudian memilih topologi dan mendekati pemecahan masalah untuk tantangan yang disajikan oleh batasan beban kerja. Pola desain cloud yang mengatasi banyak tantangan umum.

Desain sistem sangat dipengaruhi oleh pola desain. Infrastruktur, kode, dan sistem terdistribusi semuanya dirancang di sekitar kombinasi pola desain. Pola desain ini berguna untuk membangun aplikasi yang andal, aman, dioptimalkan biaya, andal secara operasional, dan memiliki kinerja tinggi di cloud.

Pola desain ini tidak spesifik untuk teknologi apa pun dan relevan dengan sistem terdistribusi apa pun, baik yang dihosting di Azure, platform cloud lainnya, dan beberapa bahkan dapat meluas ke beban kerja lokal atau hibrid.

Pola desain cloud membantu proses desain

Beban kerja cloud rentan terhadap fallacies komputasi terdistribusi. Beberapa contoh fallacies desain cloud adalah:

  • Jaringan dapat diandalkan
  • Latensi adalah nol
  • Bandwidth tidak terbatas
  • Jaringan aman
  • Topologi tidak berubah
  • Ada satu administrator
  • Penerapan versi komponen sederhana
  • Implementasi pengamatan dapat ditunda

Pola desain tidak menghilangkan gagasan seperti ini tetapi dapat membantu membawa kesadaran, kompensasi, dan mitigasinya. Setiap pola cloud memiliki trade-off sendiri. Anda perlu lebih memperhatikan mengapa Anda memilih pola tertentu daripada cara mengimplementasikannya.

Beban kerja yang dirancang dengan baik mempertimbangkan bagaimana pola desain di seluruh industri ini harus digunakan sebagai blok penyusun inti untuk desain beban kerja. Setiap pilar Azure Well-Architected diwakili dalam pola desain ini, yang seringkali memperkenalkan kompromi dengan tujuan pilar lainnya.

Katalog pola

Setiap pola dalam katalog ini menjelaskan masalah yang ditangani pola, pertimbangan untuk menerapkan pola, dan contoh berdasarkan Microsoft Azure. Beberapa pola termasuk sampel kode atau cuplikan yang menunjukkan cara menerapkan pola di Azure.

Pola Ringkasan Pilar Azure Well-Architected Framework
Duta Besar Membuat layanan pembantu yang mengirim permintaan jaringan atas nama layanan atau aplikasi konsumen.
  • Keandalan
  • Keamanan
Lapisan Anti-Kerusakan Mengimplementasikan fasad atau lapisan adapter antara aplikasi modern dan sistem lama.
  • Keunggulan Operasional
Balasan Permintaan Asinkron Memisahkan pemrosesan backend dari host frontend, di mana pemrosesan backend harus asinkron, tetapi frontend masih membutuhkan respons yang jelas.
  • Efisiensi Performa
Backend untuk Frontend Buat layanan backend terpisah untuk digunakan oleh aplikasi atau antarmuka frontend tertentu.
  • Keandalan
  • Keamanan
  • Efisiensi Performa
Sekat Isolasi elemen aplikasi ke dalam kumpulan sehingga jika gagal, yang lain terus berfungsi.
  • Keandalan
  • Keamanan
  • Efisiensi Performa
Selain Cache Muat data sesuai permintaan ke dalam cache dari penyimpanan data.
  • Keandalan
  • Efisiensi Performa
Koreografi Membiarkan setiap layanan memutuskan kapan dan bagaimana operasi bisnis diproses, alih-alih bergantung pada orkestra pusat.
  • Keunggulan Operasional
  • Efisiensi Performa
Pemutus Sirkuit Menangani kesalahan yang mungkin membutuhkan waktu variabel untuk diperbaiki saat terhubung ke layanan atau sumber daya jarak jauh.
  • Keandalan
  • Efisiensi Performa
Pemeriksaan Klaim Membagi pesan besar menjadi pemeriksaan klaim dan payload agar tidak membanjiri bus pesan.
  • Keandalan
  • Keamanan
  • Pengoptimalan Biaya
  • Efisiensi Performa
Transaksi Kompensasi Urungkan pekerjaan yang dilakukan dengan serangkaian langkah, yang bersama-sama menentukan operasi yang pada akhirnya konsisten.
  • Keandalan
Konsumen yang Bersaing Memungkinkan beberapa konsumen untuk memproses pesan yang diterima di saluran pesan yang sama secara bersamaan.
  • Keandalan
  • Pengoptimalan Biaya
  • Efisiensi Performa
Konsolidasi Sumber Daya Komputasi Mengonsolidasikan beberapa tugas atau operasi ke dalam satu unit komputasi.
  • Pengoptimalan Biaya
  • Keunggulan Operasional
  • Efisiensi Performa
CQRS Memisahkan operasi yang membaca data dari operasi yang memperbarui data dengan menggunakan antarmuka terpisah.
  • Efisiensi Performa
Stempel Penyebaran Menyebarkan beberapa salinan independen dari komponen aplikasi, termasuk penyimpanan data.
  • Keunggulan Operasional
  • Efisiensi Performa
Konfigurasi Beban Kerja Edge Pusatkan konfigurasi untuk mengatasi tantangan mengonfigurasi beberapa sistem dan perangkat di lantai toko.
Event Sourcing Menggunakan penyimpanan tambahan saja untuk merekam rangkaian lengkap peristiwa yang menjelaskan tindakan yang diambil pada data dalam domain.
  • Keandalan
  • Efisiensi Performa
Penyimpanan Konfigurasi Eksternal Pindahkan informasi konfigurasi dari paket penyebaran aplikasi ke lokasi terpusat.
  • Keunggulan Operasional
Identitas Federasi Delegasikan autentikasi ke IdP eksternal.
  • Keandalan
  • Keamanan
  • Efisiensi Performa
Gatekeeper Melindungi aplikasi dan layanan dengan menggunakan instans host khusus yang bertindak sebagai perantara antara klien dan aplikasi atau layanan, memvalidasi dan membersihkan permintaan, serta meneruskan permintaan dan data di antara mereka.
  • Keamanan
  • Efisiensi Performa
Agregasi Gateway Gunakan gateway untuk mengagregasi beberapa permintaan individual menjadi satu permintaan.
  • Keandalan
  • Keamanan
  • Keunggulan Operasional
  • Efisiensi Performa
Pembongkaran Gateway Bongkar fungsi layanan bersama atau khusus ke proksi gateway.
  • Keandalan
  • Keamanan
  • Pengoptimalan Biaya
  • Keunggulan dalam Operasional
  • Efisiensi Performa
Perutean Gateway Merutekan permintaan ke beberapa layanan menggunakan satu titik akhir.
  • Keandalan
  • Keunggulan dalam Operasional
  • Efisiensi Performa
Geode Sebarkan layanan backend ke dalam sekumpulan node geografis, yang masing-masing dapat melayani permintaan klien di wilayah mana pun.
  • Keandalan
  • Efisiensi Performa
Pemantauan Titik Akhir Kesehatan Menerapkan pemeriksaan fungsional dalam aplikasi yang dapat diakses oleh alat eksternal melalui titik akhir yang terbuka secara berkala.
  • Keandalan
  • Keunggulan Operasional
  • Efisiensi Performa
Tabel Indeks Membuat indeks di atas bidang di penyimpanan data yang sering dirujuk oleh kueri.
  • Keandalan
  • Efisiensi Performa
Pemilihan Pemimpin Mengoordinasikan tindakan yang dilakukan oleh kumpulan instans tugas yang berkolaborasi dalam aplikasi terdistribusi dengan memilih satu instans sebagai pemimpin yang bertanggung jawab untuk mengelola instans lainnya.
  • Keandalan
Tampilan Materialisasi Menghasilkan tampilan yang telah terisi sebelumnya atas data dalam satu atau beberapa penyimpanan data saat data tidak diformat secara ideal untuk operasi kueri yang diperlukan.
  • Efisiensi Performa
Penghubung Pesan Bangun perantara untuk mengaktifkan komunikasi antara sistem olahpesan yang tidak kompatibel karena protokol atau format.
  • Pengoptimalan Biaya
  • Keunggulan dalam Operasional
Pipa dan Filter Memecah tugas yang melakukan pemrosesan kompleks menjadi serangkaian elemen terpisah yang dapat digunakan kembali.
  • Keandalan
Antrean Prioritas Prioritaskan permintaan yang dikirim ke layanan sehingga permintaan dengan prioritas yang lebih tinggi diterima dan diproses lebih cepat daripada permintaan dengan prioritas lebih rendah.
  • Keandalan
  • Efisiensi Performa
Penerbit/Pelanggan Aktifkan aplikasi untuk mengumumkan acara ke beberapa konsumen yang tertarik secara asinkron, tanpa menghubungkan pengirim ke penerima.
  • Keandalan
  • Keamanan
  • Pengoptimalan Biaya
  • Keunggulan Operasi
  • Efisiensi Performa
Karantina Pastikan aset eksternal memenuhi tingkat kualitas yang disepakati tim sebelum diberi wewenang untuk menggunakannya dalam beban kerja.
  • Keamanan
  • Keunggulan Operasional
Perataan Beban Berbasis Antrean Menggunakan antrean yang bertindak sebagai buffer antara tugas dan layanan yang dipanggil untuk memperlancar beban berat yang terputus-putus.
  • Keandalan
  • Pengoptimalan Biaya
  • Efisiensi Performa
Pola Batas Laju Membatasi pola untuk membantu Anda menghindari atau meminimalkan kesalahan pembatasan yang terkait dengan batas pembatasan ini dan untuk membantu Anda memprediksi throughput dengan lebih akurat.
  • Keandalan
Coba lagi Mengaktifkan aplikasi untuk menangani kegagalan sementara yang diantisipasi saat mencoba terhubung ke layanan atau sumber daya jaringan dengan mencoba kembali operasi yang sebelumnya gagal secara transparan.
  • Keandalan
Saga Mengelola konsistensi data di seluruh layanan mikro dalam skenario transaksi terdistribusi. Saga adalah urutan transaksi yang memperbarui setiap layanan dan menerbitkan pesan atau peristiwa untuk memicu langkah transaksi berikutnya.
  • Keandalan
Pengawas Agen Scheduler Mengoordinasikan serangkaian tindakan di seluruh rangkaian layanan terdistribusi dan sumber daya jarak jauh lainnya.
  • Keandalan
  • Efisiensi Performa
Konvoi Berurutan Memproses sekumpulan pesan terkait dalam urutan yang ditentukan, tanpa memblokir pemrosesan grup pesan lainnya.
  • Keandalan
Sharding Membagi penyimpanan data menjadi sekumpulan pecahan atau partisi horizontal.
  • Keandalan
  • Pengoptimalan Biaya
Sidecar Menyebarkan komponen aplikasi ke dalam proses atau kontainer terpisah untuk menyediakan isolasi dan enkapsulasi.
  • Keamanan
  • Keunggulan dalam Operasional
Hosting konten Statik Menyebarkan konten statik ke layanan penyimpanan berbasis cloud yang dapat mengirimkannya langsung ke klien.
  • Pengoptimalan Biaya
Strangler Fig Memigrasikan sistem warisan secara bertahap dengan mengganti bagian fungsionalitas tertentu secara bertahap dengan aplikasi dan layanan baru.
  • Keandalan
  • Pengoptimalan Biaya
  • Kesempurnaan Operasional
Pembatasan Mengontrol penggunaan sumber daya yang digunakan oleh instans aplikasi, penyewa individu, atau seluruh layanan.
  • Keandalan
  • Keamanan
  • Pengoptimalan Biaya
  • Efisiensi Performa
Kunci Valet Menggunakan token atau kunci yang memberi klien akses langsung terbatas ke sumber daya atau layanan tertentu.
  • Keamanan
  • Pengoptimalan Biaya
  • Efisiensi Performa

Langkah berikutnya

Tinjau pola desain dari perspektif Pilar Well-Architected Azure yang ditujukan untuk dioptimalkan pola tersebut.