Bagikan melalui


Pola desain cloud

Arsitek merancang beban kerja dengan mengintegrasikan layanan platform, fungsionalitas, dan kode untuk memenuhi persyaratan fungsional dan nonfungsi. Untuk merancang beban kerja yang efektif, Anda harus memahami persyaratan ini dan memilih topologi dan metodologi yang mengatasi tantangan batasan beban kerja Anda. Pola desain cloud memberikan solusi untuk banyak tantangan umum.

Desain sistem sangat bergantung pada pola desain yang mapan. Anda dapat merancang infrastruktur, kode, dan sistem terdistribusi dengan menggunakan kombinasi pola-pola ini. Pola-pola ini sangat penting untuk membangun aplikasi yang andal, sangat aman, dioptimalkan biaya, efisien secara operasional, dan berkinerja tinggi di cloud.

Pola desain cloud berikut adalah teknologi-agnostik, yang membuatnya cocok untuk sistem terdistribusi apa pun. Anda dapat menerapkan pola ini di Seluruh Azure, platform cloud lainnya, penyiapan lokal, dan lingkungan hibrid.

Bagaimana pola desain cloud meningkatkan proses desain

Beban kerja cloud rentan terhadap kesalahan komputasi terdistribusi, yang merupakan asumsi yang umum namun keliru tentang bagaimana sistem terdistribusi beroperasi. Contoh kesalahan ini meliputi:

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

Kesalahpahaman ini dapat mengakibatkan desain beban kerja yang cacat. Pola desain tidak menghilangkan kesalahpahaman ini tetapi membantu meningkatkan kesadaran, memberikan strategi kompensasi, dan memberikan mitigasi. Setiap pola desain cloud memiliki kompromi. Fokus pada mengapa Anda harus memilih pola tertentu alih-alih cara mengimplementasikannya.

Pertimbangkan cara menggunakan pola desain standar industri ini sebagai blok penyusun inti untuk desain beban kerja yang dirancang dengan baik. Setiap pola desain dalam Azure Well-Architected Framework mewakili satu atau beberapa pilarnya. Beberapa pola mungkin memperkenalkan kompromi yang memengaruhi tujuan pilar-pilar lainnya.

Katalog pola

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

Pola Ringkasan pilar kerangka kerja Well-Architected
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 Pisahkan pemrosesan back-end dari host front-end. Pola ini berguna ketika pemrosesan back-end harus asinkron, tetapi ujung depan membutuhkan respons yang jelas dan tepat waktu. - Efisiensi Performa
Backend untuk Frontend Buat layanan backend terpisah untuk 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
Cache-Aside Muat data sesuai permintaan ke dalam cache dari penyimpanan data. -Keandalan

- Efisiensi Performa
Koreografi Biarkan layanan individu memutuskan kapan dan bagaimana operasi bisnis diproses, alih-alih bergantung pada orkestrator pusat. - Keunggulan Operasional

- Efisiensi Performa
Pemutus Sirkuit Menangani kesalahan yang mungkin membutuhkan waktu variabel untuk diperbaiki saat aplikasi terhubung ke layanan atau sumber daya jarak jauh. -Keandalan

- Efisiensi Performa
Tanda Terima 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 oleh urutan langkah-langkah yang secara kolektif membentuk operasi yang akhirnya konsisten. -Keandalan
Konsumen yang Bersaing Aktifkan beberapa konsumen untuk memproses pesan secara bersamaan di kanal pesan yang sama. -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 Pisahkan operasi yang membaca data dari yang memperbarui data dengan menggunakan antarmuka yang berbeda. - Efisiensi Performa
Stempel Penyebaran Menyebarkan beberapa salinan independen dari komponen aplikasi, termasuk penyimpanan data. - Keunggulan Operasional

- Efisiensi Performa
Pelacakan Peristiwa Gunakan penyimpanan khusus tambahan untuk merekam serangkaian peristiwa lengkap yang menjelaskan tindakan yang diambil pada data di domain. -Keandalan

- Efisiensi Performa
Penyimpanan Konfigurasi Eksternal Memindahkan informasi konfigurasi dari paket penyebaran aplikasi ke lokasi terpusat. - Keunggulan Operasional
Identitas Terfederasi Delegasikan autentikasi ke penyedia identitas eksternal. -Keandalan

-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 Operasional

- Efisiensi Performa
Pengaturan Gateway Rutekan permintaan ke beberapa layanan dengan menggunakan satu titik akhir. -Keandalan

- Keunggulan Operasional

- Efisiensi Performa
Geode Sebarkan layanan back-end di seluruh simpul yang didistribusikan secara geografis. Setiap simpul dapat menangani permintaan klien dari 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 Buat indeks pada bidang di penyimpanan data yang sering dirujuk. -Keandalan

- Efisiensi Performa
Pemilihan Pemimpin Koordinasikan tindakan dalam aplikasi terdistribusi dengan memilih satu instans sebagai pemimpin. Pemimpin mengelola kumpulan instans tugas yang berkolaborasi. -Keandalan
Tampilan Materialisasi Hasilkan tampilan yang sudah diisi sebelumnya untuk data dalam satu atau beberapa penyimpanan data ketika data diformat tidak sesuai untuk operasi kueri (query) yang diperlukan. - Efisiensi Performa
Penghubung Pesan Bangun perantara untuk memungkinkan komunikasi antara sistem olahpesan yang tidak kompatibel. - Pengoptimalan Biaya

- Keunggulan 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 diproses lebih cepat. -Keandalan

- Efisiensi Performa
Penerbit/Pelanggan Aktifkan aplikasi untuk mengumumkan peristiwa kepada beberapa konsumen secara asinkron, tanpa mengkopling pengirim ke penerima. -Keandalan

-Keamanan

- Pengoptimalan Biaya

- Keunggulan Operasional

- Efisiensi Performa
Karantina Pastikan bahwa aset eksternal memenuhi tingkat kualitas yang disepakati tim sebelum beban kerja mengonsumsinya. -Keamanan

- Keunggulan Operasional
Pengaturan Beban Berbasis Antrian Gunakan antrean yang membuat buffer antara tugas dan layanan untuk mengatasi beban berat yang tidak merata. -Keandalan

- Pengoptimalan Biaya

- Efisiensi Performa
Pembatasan Tarif Hindari atau minimalkan kesalahan pembatasan dengan mengontrol konsumsi sumber daya. -Keandalan
Coba lagi Aktifkan aplikasi untuk menangani kegagalan sementara yang diantisipasi dengan mencoba kembali operasi yang gagal. -Keandalan
Saga Mengelola konsistensi data di seluruh layanan mikro dalam skenario transaksi terdistribusi. -Keandalan
Pengawas Agen Penjadwal Mengoordinasikan serangkaian tindakan di seluruh layanan dan sumber daya terdistribusi. -Keandalan

- Efisiensi Performa
Konvoi Berurutan Memproses sekumpulan pesan terkait dalam urutan yang ditentukan tanpa memblokir grup pesan lain. -Keandalan
Sharding (pembagian basis data menjadi potongan lebih kecil) Membagi penyimpanan data menjadi sekumpulan pecahan atau partisi horizontal. -Keandalan

- Pengoptimalan Biaya
Sespan Sebarkan komponen ke dalam proses atau kontainer terpisah untuk menyediakan isolasi dan enkapulasi. -Keamanan

- Keunggulan Operasional
Hosting konten Statik Sebarkan konten statis ke layanan penyimpanan berbasis cloud untuk pengiriman klien langsung. - Pengoptimalan Biaya
Ficus Strangulans Migrasi sistem warisan secara bertahap dengan secara bertahap mengganti potongan fungsionalitas dengan aplikasi dan layanan baru. -Keandalan

- Pengoptimalan Biaya

- Keunggulan Operasional
Pembatasan Kecepatan Mengontrol konsumsi sumber daya dari aplikasi, penyewa, atau layanan. -Keandalan

-Keamanan

- Pengoptimalan Biaya

- Efisiensi Performa
Kunci Valet Gunakan token atau kunci untuk memberi klien akses langsung terbatas ke sumber daya atau layanan tertentu. -Keamanan

- Pengoptimalan Biaya

- Efisiensi Performa

Pola orkestrasi agen AI

Pola desain cloud sebelumnya mengatasi tantangan umum dalam sistem terdistribusi, tetapi beban kerja AI yang menggunakan beberapa agen otonom memerlukan pendekatan koordinasi khusus. Pola tradisional seperti "Scheduler Agent Supervisor" atau Koreografi menyediakan konsep dasar. Namun, agen AI memperkenalkan tantangan unik seperti output nondeterministik, kemampuan penalaran dinamis, dan kebutuhan akan pengalihan cerdas antara komponen khusus.

Untuk beban kerja AI yang menyertakan beberapa agen otonom, lihat pola orkestrasi agen AI. Pola-pola ini melengkapi pola desain cloud dalam katalog ini dengan memenuhi persyaratan koordinasi spesifik komponen cerdas dan otonom yang bekerja sama untuk mencapai hasil yang kompleks.

Langkah berikutnya

Tinjau pola desain dari perspektif pilar Well-Architected Framework yang bertujuan untuk dioptimalkan oleh pola tersebut.