Integrasi perusahaan menggunakan perantara pesan dan peristiwa

Azure Event Grid
Azure Service Bus

Contoh arsitektur ini dibangun di atas arsitektur integrasi perusahaan Dasar. Ini memperluas arsitektur tersebut untuk menunjukkan cara mengintegrasikan sistem backend perusahaan, dengan menggunakan broker pesan dan peristiwa untuk memisahkan layanan untuk skalabilitas dan keandalan yang lebih besar. Pastikan Anda terbiasa dengan desain tersebut dan komponen yang digunakan dalam arsitektur integrasi dasar. Ini memberikan informasi dasar tentang komponen inti arsitektur ini, yang tidak akan diproduksi ulang di sini.

Arsitektur

Sistem backend yang direferensikan dalam desain ini dapat mencakup sistem perangkat lunak sebagai layanan (SaaS), layanan Azure, dan layanan web yang ada di perusahaan Anda.

Reference architecture for enterprise integration using queues and events

Unduh file Visio arsitektur ini.

Alur kerja

Arsitektur yang ditampilkan di sini dibangun di atas arsitektur sederhana yang ditampilkan dalam Integrasi perusahaan dasar. Arsitektur tersebut menggunakan Logic Apps untuk mengatur alur kerja langsung dengan sistem backend dan API Management untuk membuat katalog API.

Versi arsitektur ini menambahkan dua komponen yang membantu membuat sistem lebih andal dan skalabel:

Komunikasi asinkron menggunakan broker pesan memberikan keuntungan berikut daripada melakukan panggilan langsung dan sinkron ke layanan backend:

  • Menyediakan perataan beban untuk menangani lonjakan beban kerja, menggunakan pola Perataan Beban Berbasis Antrean.
  • Menyediakan penyiaran pesan ke beberapa konsumen menggunakan pola Penerbit-Pelanggan.
  • Secara andal melacak kemajuan alur kerja yang berjalan lama yang melibatkan banyak langkah atau beberapa aplikasi.
  • Membantu memisahkan aplikasi.
  • Mengintegrasi dengan sistem berbasis pesan yang ada.
  • Memungkinkan pekerjaan diantrekan ketika sistem backend tidak tersedia.

Event Grid memungkinkan berbagai komponen dalam sistem untuk bereaksi terhadap peristiwa yang terjadi, daripada mengandalkan polling atau tugas terjadwal. Seperti halnya antrean pesan dan topik, ini membantu memisahkan aplikasi dan layanan. Aplikasi atau layanan dapat menerbitkan peristiwa, dan setiap pelanggan yang tertarik akan diberi tahu. Pelanggan baru dapat ditambahkan tanpa memperbarui pengirim.

Banyak layanan Azure mendukung pengiriman peristiwa ke Event Grid. Misalnya, aplikasi logika dapat mendengarkan suatu peristiwa saat file baru ditambahkan ke penyimpanan blob. Pola ini memungkinkan alur kerja reaktif, di mana mengunggah file atau meletakkan pesan di antrean akan memulai serangkaian proses. Proses mungkin dieksekusi secara paralel atau dalam urutan tertentu.

Rekomendasi

Rekomendasi yang dijelaskan dalam Integrasi perusahaan dasar berlaku untuk arsitektur ini.

Service Bus

Bus Layanan memiliki dua mode pengiriman, penarikan atau pendorongan yang diproksi. Dalam model tarik, penerima terus-menerus melakukan polling untuk pesan baru. Polling bisa tidak efisien, terutama jika Anda memiliki banyak antrean yang masing-masing menerima beberapa pesan, atau jika ada banyak waktu antara pesan. Dalam model pendorongan yang diproksikan, Bus Layanan mengirim peristiwa melalui Event Grid ketika ada pesan baru. Penerima berlangganan peristiwa tersebut. Saat peristiwa dipicu, penerima menarik batch pesan berikutnya dari Azure Service Bus.

Saat Anda membuat aplikasi logika untuk menggunakan pesan Bus Layanan, sebaiknya gunakan model pendorongan yang diproksi dengan integrasi Event Grid. Sering kali lebih hemat biaya, karena aplikasi logika tidak perlu melakukan polling Azure Service Bus. Untuk informasi selengkapnya, lihat ringkasan integrasi Azure Bus Layanan ke Event Grid. Saat ini, Azure Service Bus tingkat Premium diperlukan untuk pemberitahuan Event Grid.

Gunakan PeekLock untuk mengakses grup pesan. Saat Anda menggunakan PeekLock, aplikasi logika dapat melakukan langkah-langkah untuk memvalidasi setiap pesan sebelum menyelesaikan atau mengabaikan pesan. Pendekatan ini melindungi dari kehilangan pesan yang tidak disengaja.

Event Grid

Saat pemicu Event Grid menyala, itu berarti setidaknya satu peristiwa terjadi. Misalnya, ketika aplikasi logika mendapatkan pemicu Event Grid untuk pesan Azure Service Bus, aplikasi harus mengasumsikan bahwa beberapa pesan mungkin tersedia untuk diproses.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Keandalan

Keandalan memastikan aplikasi Anda dapat mencapai komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keandalan.

  • ID Microsoft Entra: ID Microsoft Entra adalah platform SaaS yang terdistribusi secara global dan sangat tersedia. Lihat SLA untuk detail ketersediaan yang dijamin.
  • API Management: API Management dapat disebarkan dalam beberapa konfigurasi yang sangat tersedia, sesuai dengan persyaratan bisnis dan toleransi biaya. Lihat Memastikan ketersediaan dan keandalan API Management untuk tinjauan lengkap opsi. Lihat juga SLA untuk detail ketersediaan yang dijamin.
  • Logic Apps: Penyimpanan geo-redundan tersedia untuk Logic Apps pada tingkat paket Konsumsi. Untuk informasi tentang merancang solusi kelangsungan bisnis dan pemulihan bencana, lihat panduan. Lihat juga SLA untuk detail ketersediaan yang dijamin.
  • Event Grid: Definisi sumber daya Event Grid untuk topik, topik sistem, domain, dan langganan peristiwa dan data peristiwa secara otomatis direplikasi di tiga zona ketersediaan (jika tersedia) di wilayah tersebut. Ketika ada kegagalan di salah satu zona ketersediaan, sumber daya Event Grid secara otomatis gagal ke zona ketersediaan lain tanpa intervensi manusia. Lihat Pemulihan bencana geografis di seluruh wilayah untuk panduan tentang merancang solusi pemulihan bencana untuk failover ke wilayah lain. Lihat juga SLA untuk detail ketersediaan yang dijamin.
  • Bus Layanan: Bus Layanan Premium mendukung Pemulihan bencana geografis dan Zona Ketersediaan. Replikasi tersedia untuk standar Bus Layanan. Lihat juga SLA untuk detail ketersediaan yang dijamin.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

Untuk mengamankan Bus Layanan, gunakan autentikasi Microsoft Entra yang dipasangkan dengan identitas terkelola. Integrasi Microsoft Entra untuk sumber daya Bus Layanan menyediakan kontrol akses berbasis peran Azure (RBAC) untuk kontrol terperinci atas akses klien ke sumber daya. Anda dapat menggunakan Azure RBAC untuk memberikan izin kepada prinsip keamanan, yang mungkin merupakan pengguna, grup, atau perwakilan layanan aplikasi (identitas terkelola dalam kasus ini).

Jika ID Microsoft Entra tidak tersedia, Anda dapat menggunakan tanda tangan akses bersama (SAS). Anda dapat memberikan akses pengguna ke sumber daya Azure Service Bus dengan hak khusus menggunakan autentikasi SAS.

Jika Anda perlu mengekspos antrean Azure Service Bus atau topik sebagai titik akhir HTTP, misalnya, untuk memposting pesan baru, gunakan API Management untuk mengamankan antrean dengan mengarahkan titik akhir. Anda kemudian dapat mengamankan titik akhir dengan sertifikat atau autentikasi OAuth yang sesuai. Cara termudah untuk mengamankan titik akhir adalah menggunakan aplikasi logika dengan pemicu permintaan/tanggapan HTTP sebagai perantara.

Layanan Event Grid mengamankan pengiriman peristiwa melalui kode validasi. Jika Anda menggunakan Logic Apps untuk memakai peristiwa, validasi dilakukan secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Keamanan dan autentikasi Event Grid.

Keamanan jaringan

Keamanan jaringan harus dipertimbangkan sepanjang desain.

  • Bus Layanan Premium dapat terikat ke titik akhir layanan subnet jaringan virtual (VNet), mengamankan namespace layanan untuk hanya menerima lalu lintas dari jaringan virtual resmi. Selain itu, gunakan titik akhir privat untuk mengunci lalu lintas VNet Anda ke lalu lintas privat melalui Private Link.
  • Logic Apps Standard dan Premium Logic Apps dapat dikonfigurasi untuk menerima lalu lintas masuk melalui titik akhir privat dan untuk mengirim lalu lintas keluar melalui integrasi VNet.
  • API Management menyediakan beberapa opsi untuk mengamankan akses ke instans api Management dan API Anda menggunakan jaringan virtual Azure. Lihat dokumentasi Gunakan jaringan virtual dengan Azure API Management untuk tinjauan menyeluruh tentang opsi. Titik akhir privat juga didukung.

Pengoptimalan Biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

Secara umum, gunakan kalkulator harga Azure untuk memperkirakan biaya. Berikut beberapa pertimbangan lainnya.

API Management

Anda dikenakan biaya untuk semua instans API Management saat dijalankan. Jika Anda telah meningkatkan skala dan tidak memerlukan tingkat performa tersebut sepanjang waktu, turunkan skala secara manual atau konfigurasikan penskalaan otomatis.

Untuk beban kerja penggunaan ringan, pertimbangkan tingkat konsumsi, yang merupakan opsi tanpa server berbiaya rendah. Tingkat konsumsi ditagih per panggilan API, sedangkan tingkat lainnya ditagih per jam.

Aplikasi Logika

Logic Apps menggunakan model tanpa server. Tagihan dihitung berdasarkan tindakan dan eksekusi konektor. Untuk informasi selengkapnya, lihat Harga Logic Apps.

Antrean, topik, dan langganan Azure Service Bus

Bus Layanan antrean dan langganan mendukung model pendorongan dan penarikan yang diproksi untuk mengirimkan pesan. Dalam model tarik, setiap permintaan polling diukur sebagai tindakan. Bahkan dengan polling yang lama pada 30 detik (default), biayanya bisa tinggi. Kecuali Anda memerlukan pengiriman pesan secara real time, pertimbangkan untuk menggunakan model pendorongan yang diproksi.

Antrean Azure Service Bus termasuk dalam semua tingkatan (Tingkat dasar, standar, dan premium). Sedangkan topik dan langganan Azure Service Bus tersedia dalam tingkat standar dan premium. Untuk informasi selengkapnya, lihat Harga Azure Service Bus.

Event Grid

Event Grid menggunakan model tanpa server. Tagihan dihitung berdasarkan jumlah operasi (eksekusi peristiwa). Operasi termasuk masuknya peristiwa ke Domain atau Topik, kecocokan tingkat lanjut, upaya pengiriman, dan panggilan manajemen. Penggunaan hingga 100.000 operasi tidak dikenai biaya.

Untuk informasi selengkapnya, lihat Harga Event Grid.

Untuk informasi selengkapnya, lihat bagian biaya di Microsoft Azure Well-Architected Framework.

Keunggulan Operasional

Arsitektur referensi Integrasi Perusahaan Dasar menyediakan panduan tentang pola DevOps, yang selaras dengan pilar Keunggulan Operasional Kerangka Kerja Yang Dirancang Dengan Baik.

Mengotomatiskan operasi pemulihan sebanyak mungkin adalah komponen integral dari Keunggulan Operasional. Dengan mempertimbangkan otomatisasi, Anda dapat menggabungkan Azure Log Monitoring dengan Azure Automation untuk mengotomatiskan failover sumber daya Bus Layanan Anda. Lihat diagram dalam dokumentasi alur failover untuk contoh logika otomatisasi untuk memulai failover.

Efisiensi kinerja

Efisiensi performa adalah kemampuan beban kerja Anda untuk diskalakan agar memenuhi permintaan yang diberikan oleh pengguna dengan cara yang efisien. Untuk informasi selengkapnya, lihat Gambaran umum pilar efisiensi performa.

Untuk mencapai skalabilitas yang lebih tinggi, tingkat Azure Service Bus Premium dapat melakukan peluasan skala jumlah unit pesan. Lihat dokumentasi tingkat olahpesan Bus Layanan Premium dan Standar untuk tinjauan manfaat tingkat Premium. Selain itu , lihat dokumentasi fitur penskalaan otomatis untuk mempelajari tentang mengonfigurasi penskalaan otomatis unit olahpesan.

Rekomendasi lainnya untuk Bus Layanan dapat ditemukan di Praktik terbaik untuk peningkatan performa dengan menggunakan Olahpesan Bus Layanan.

Langkah berikutnya

Untuk informasi selengkapnya, lihat dokumentasi Bus Layanan: