Pola Desain Cloud
Pola desain ini berguna untuk membuat aplikasi yang andal, terukur, dan aman di cloud.
Setiap pola menggambarkan masalah yang ditangani pola, pertimbangan untuk menerapkan pola, dan contoh berdasarkan Microsoft Azure. Sebagian besar pola mencakup sampel kode atau cuplikan yang menunjukkan cara mengimplementasikan pola di Azure. Namun, sebagian besar pola relevan dengan sistem terdistribusi apa pun, baik yang dihosting di Azure atau platform cloud lainnya.
Tantangan dalam pengembangan cloud
Manajemen DataManajemen data adalah elemen kunci aplikasi cloud, dan memengaruhi sebagian besar atribut kualitas. Data biasanya dihosting di lokasi yang berbeda dan di beberapa server untuk performa, skalabilitas, atau ketersediaan. Hal ini dapat menghadirkan berbagai tantangan. Misalnya, konsistensi data harus dipertahankan, dan data biasanya perlu disinkronkan di berbagai lokasi. |
|
Desain dan PenerapanDesain yang baik mencakup konsistensi dan koherensi dalam desain dan penyebaran komponen, keberlanjutan untuk menyederhanakan administrasi dan pengembangan, dan penggunaan kembali untuk memungkinkan komponen dan subsistem digunakan dalam aplikasi dan skenario lain. Keputusan yang dibuat selama fase desain dan implementasi secara signifikan berdampak pada kualitas dan total biaya kepemilikan aplikasi dan layanan yang dihosting cloud. |
|
OlahpesanSifat terdistribusi aplikasi cloud memerlukan infrastruktur olahpesan yang menghubungkan komponen dan layanan, idealnya digabungkan secara longgar untuk memaksimalkan skalabilitas. Olahpesan asinkron banyak digunakan dan memberikan banyak manfaat, tetapi juga membawa tantangan seperti memesan pesan, manajemen pesan racun, idempotensi, dan banyak lagi. |
Katalog pola
Pola | Ringkasan | Kategori |
---|---|---|
Ambassador | Membuat layanan pembantu yang mengirim permintaan jaringan atas nama layanan atau aplikasi konsumen. | Desain dan Penerapan, Keunggulan Operasional |
Lapisan Anti-Kerusakan | Menerapkan fasad atau lapisan adaptor antara aplikasi modern dan sistem warisan. | Desain dan Penerapan, Keunggulan Operasional |
Permintaan-Balasan Asinkron | Memisahkan pemrosesan backend dari host frontend, di mana pemrosesan backend harus asinkron, tetapi frontend masih membutuhkan respons yang jelas. | Olahpesan |
Backend untuk Frontend | Membuat layanan backend terpisah untuk digunakan oleh aplikasi atau antarmuka frontend tertentu. | Desain dan Penerapan |
Sekat | Mengisolasi elemen aplikasi ke dalam kumpulan sehingga jika salah satu gagal, yang lain akan terus berfungsi. | Keandalan |
Selain Cache | Memuat data sesuai permintaan ke dalam cache dari penyimpanan data | Manajemen Data, Efisiensi Performa |
Koreografi | Membiarkan setiap layanan memutuskan kapan dan bagaimana operasi bisnis diproses, bukan tergantung pada orkestrator pusat. | Olahpesan, Efisiensi Performa |
Pemutus Sirkuit | Menangani kesalahan yang mungkin membutuhkan waktu variabel untuk diperbaiki saat terhubung ke layanan atau sumber daya jarak jauh. | Keandalan |
Pemeriksaan Klaim | Membagi pesan besar menjadi pemeriksaan klaim dan payload agar tidak membanjiri bus pesan. | Olahpesan |
Transaksi Kompensasi | Membatalkan pekerjaan yang dilakukan oleh serangkaian langkah, yang bersama-sama menentukan operasi yang akhirnya konsisten. | Keandalan |
Konsumen yang Bersaing | Mengaktifkan beberapa konsumen bersamaan untuk memproses pesan yang diterima di saluran olahpesan yang sama. | Olahpesan |
Konsolidasi Sumber Daya Komputasi | Mengonsolidasi beberapa tugas atau operasi menjadi satu unit komputasi | Desain dan Penerapan |
CQRS | Memisahkan operasi yang membaca data dari operasi yang memperbarui data dengan menggunakan antarmuka terpisah. | Manajemen Data, Desain dan Penerapan, Efisiensi Performa |
Stempel Penyebaran | Menyebarkan beberapa salinan independen dari komponen aplikasi, termasuk penyimpanan data. | Keandalan, Efisiensi Performa |
Konfigurasi Beban Kerja Edge | Berbagai macam sistem dan perangkat di lantai toko dapat membuat konfigurasi beban kerja menjadi masalah yang sulit. | Desain dan Penerapan |
Sumber Peristiwa | Menggunakan penyimpanan tambahan saja untuk merekam rangkaian lengkap peristiwa yang menjelaskan tindakan yang diambil pada data dalam domain. | Manajemen Data, Efisiensi Performa |
Penyimpanan Konfigurasi Eksternal | Memindahkan informasi konfigurasi dari paket penyebaran aplikasi ke lokasi terpusat. | Desain dan Penerapan, Keunggulan Operasional |
Identitas Federasi | Mendelegasikan autentikasi ke penyedia identitas eksternal. | Keamanan |
Gatekeeper | Melindungi aplikasi dan layanan dengan menggunakan instans host khusus yang berfungsi sebagai perantara antara klien dan aplikasi atau layanan, memvalidasi dan membersihkan permintaan, serta meneruskan permintaan dan data di antara mereka. | Keamanan |
Agregasi Gateway | Menggunakan gateway untuk mengumpulkan beberapa permintaan individual menjadi satu permintaan. | Desain dan Penerapan, Keunggulan Operasional |
Pemindahan Gateway | Memindahkan fungsi layanan bersama atau khusus ke proksi gateway. | Desain dan Penerapan, Keunggulan Operasional |
Perutean Gateway | Merutekan permintaan ke beberapa layanan menggunakan satu titik akhir. | Desain dan Penerapan, Keunggulan Operasional |
Geode | Menyebarkan layanan backend ke dalam sekumpulan node geografis, yang masing-masing dapat melayani permintaan klien apa pun di wilayah mana pun. | Keandalan, Keunggulan Operasional |
Pemantauan Titik Akhir Kesehatan | Menerapkan pemeriksaan fungsional dalam aplikasi yang dapat diakses alat eksternal melalui titik akhir yang terbuka secara berkala. | Keandalan, Keunggulan Operasional |
Tabel Indeks | Membuat indeks di atas bidang di penyimpanan data yang sering dirujuk oleh kueri. | Manajemen Data, 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. | Desain dan Penerapan, 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. | Manajemen Data, Keunggulan Operasional, Efisiensi Performa |
Pipa dan Filter | Memecah tugas yang melakukan pemrosesan kompleks menjadi serangkaian elemen terpisah yang dapat digunakan kembali. | Desain dan Penerapan, Olahpesan |
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. | Olahpesan, Efisiensi Performa |
Penerbit/Pelanggan | Mengaktifkan aplikasi untuk mengumumkan peristiwa kepada beberapa konsumen yang tertarik secara asinkron, tanpa menggabungkan pengirim ke penerima. | Olahpesan |
Perataan Beban Berbasis Antrean | Menggunakan antrean yang bertindak sebagai buffer antara tugas dan layanan yang dipanggil untuk memperlancar beban berat yang terputus-putus. | Keandalan, Olahpesan, Ketahanan, 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. | Olahpesan |
Scheduler Agent Supervisor | Mengoordinasikan serangkaian tindakan di seluruh rangkaian layanan terdistribusi dan sumber daya jarak jauh lainnya. | Olahpesan, Keandalan |
Konvoi Berurutan | Memproses sekumpulan pesan terkait dalam urutan yang ditentukan, tanpa memblokir pemrosesan grup pesan lain. | Olahpesan |
Sharding | Membagi penyimpanan data menjadi sekumpulan pecahan atau partisi horizontal. | Manajemen Data, Efisiensi Performa |
Sidecar | Menyebarkan komponen aplikasi ke dalam proses atau kontainer terpisah untuk menyediakan isolasi dan enkapsulasi. | Desain dan Penerapan, Keunggulan Operasional |
Hosting Konten Statik | Menyebarkan konten statik ke layanan penyimpanan berbasis cloud yang dapat mengirimkannya langsung ke klien. | Desain dan Penerapan, Manajemen Data, Efisiensi Performa |
Strangler Fig | Memigrasikan sistem warisan secara bertahap dengan mengganti bagian fungsionalitas tertentu secara bertahap dengan aplikasi dan layanan baru. | Desain dan Penerapan, Keunggulan Operasional |
Pembatasan | Mengontrol penggunaan sumber daya yang digunakan oleh instans aplikasi, penyewa individu, atau seluruh layanan. | Keandalan, Efisiensi Performa |
Kunci Valet | Menggunakan token atau kunci yang memberi klien akses langsung terbatas ke sumber daya atau layanan tertentu. | Manajemen Data, Keamanan |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk