Pemulihan Bencana geografis Azure Service Bus

Ketahanan terhadap pemadaman sumber daya pemrosesan data akibat bencana adalah persyaratan bagi banyak perusahaan dan, dalam beberapa kasus, bahkan diperlukan oleh peraturan industri.

Azure Bus Layanan sudah menyebarkan risiko kegagalan bencana pada masing-masing mesin atau bahkan menyelesaikan rak di seluruh kluster yang mencakup beberapa domain kegagalan dalam pusat data dan menerapkan deteksi kegagalan transparan dan mekanisme failover sehingga layanan terus beroperasi dalam tingkat layanan yang terjaga dan biasanya tanpa gangguan yang nyata ketika kegagalan tersebut terjadi. Namespace premium dapat memiliki dua unit olahpesan atau lebih dan unit olahpesan ini tersebar di beberapa domain kegagalan dalam pusat data, mendukung model kluster Bus Layanan aktif.

Untuk namespace tingkat premium, risiko pemadaman lebih lanjut tersebar di tiga fasilitas yang dipisahkan secara fisik (zona ketersediaan), dan layanan memiliki cadangan kapasitas yang cukup untuk segera mengatasi hilangnya pusat data yang lengkap dan bencana. Model kluster Azure Bus Layanan yang aktif dalam domain kegagalan bersama dengan dukungan zona ketersediaan lebih unggul daripada produk broker pesan lokal dalam hal ketahanan terhadap kegagalan perangkat keras yang berat dan bahkan kehilangan seluruh fasilitas pusat data yang mengerikan. Namun, mungkin ada situasi mengerikan dengan kehancuran fisik meluas yang bahkan langkah-langkah tersebut tidak cukup dapat mencegahnya.

Fitur Pemulihan bencan Geo Service Bus dirancang untuk mempermudah pemulihan dari bencana sebesar ini dan meninggalkan wilayah Azure yang gagal untuk selamanya dan tanpa harus mengubah konfigurasi aplikasi Anda. Meninggalkan wilayah Azure biasanya melibatkan beberapa layanan dan fitur ini terutama bertujuan untuk membantu mempertahankan integritas konfigurasi aplikasi komposit. Fitur ini tersedia secara global untuk Service Bus Premium SKU.

Fitur pemulihan Geo-Disaster memastikan bahwa seluruh konfigurasi namespace layanan (antrean, topik, langganan, filter) terus direplikasi dari namespace utama ke namespace layanan sekunder saat dipasangkan, dan memungkinkan Anda untuk memulai perpindahan failover sekali-saja dari primer ke sekunder kapan saja. Pemindahan failover menunjuk kembali nama alias yang dipilih untuk namespace ke namespace sekunder lalu putuskan pemasangan. Failover hampir dijalankan seketika setelah dimulai.

Poin penting untuk dipertimbangkan

  • Fitur ini memungkinkan kelangsungan operasi instan dengan konfigurasi yang sama, tetapi tidak mereplikasi pesan yang dipertahankan dalam antrean atau langganan topik atau antrean yang tidak terpakai. Untuk mempertahankan semantik antrean, replikasi seperti itu tidak hanya memerlukan replikasi data pesan, tetapi dari setiap perubahan status di broker. Untuk sebagian besar Bus Layanan namespace layanan, lalu lintas replikasi yang diperlukan akan jauh melebihi lalu lintas aplikasi dan dengan antrean throughput tinggi, sebagian besar pesan masih akan direplikasi ke sekunder saat sudah dihapus dari primer, menyebabkan lalu lintas yang terlalu boros. Untuk rute replikasi latensi tinggi, yang berlaku untuk banyak pasangan yang akan Anda pilih untuk pemulihan bencana Geo, mungkin juga lalu lintas replikasi tidak dapat terus mengikuti lalu lintas aplikasi karena efek pembatasan yang diinduksi latensi.
  • Penetapan kontrol akses berbasis peran (RBAC) Microsoft Entra ke entitas Bus Layanan di namespace utama tidak direplikasi ke namespace sekunder. Buat tugas peran secara manual di namespace layanan sekunder untuk mengamankan aksesnya.
  • Konfigurasi berikut tidak direplikasi.
    • Konfigurasi jaringan virtual
    • Koneksi titik akhir privat
    • Akses semua jaringan diaktifkan
    • Akses layanan tepercaya diaktifkan
    • Akses jaringan publik
    • Tindakan jaringan default
    • Identitas serta pengaturan enkripsi (enkripsi kunci yang dikelola pelanggan atau bawa enkripsi kunci Anda sendiri (BYOK))
    • Aktifkan skala otomatis
    • Nonaktifkan autentikasi lokal
  • Memasangkan namespace yang dipartisi dengan namespace layanan yang tidak dipartisi tidak didukung.
  • Jika AutoDeleteOnIdle diaktifkan untuk entitas, entitas mungkin tidak ada di namespace sekunder saat failover terjadi. Ketika sekunder menjadi primer, status akses terakhir, yang bukan bagian dari metadata, tidak akan tersedia untuk primer dan entitas baru dapat dihapus sebagai bagian dari pembersihan AutoDeleteOnIdle .

Tip

Untuk mereplikasi konten antrean dan langganan topik serta mengoperasikan namespace yang sesuai dalam konfigurasi aktif untuk mengatasi pemadaman dan bencana, jangan hanya mengandalkan set fitur pemulihan bencana Geo ini, tetapi ikuti panduan replikasi.

Pemadaman dan bencana

Penting untuk dicatat perbedaan antara "pemadaman" dan "bencana."

Pemadaman adalah tidak tersedianya Azure Service Bus untuk sementara, dan dapat memengaruhi beberapa komponen layanan, seperti toko olahpesan, atau bahkan seluruh pusat data. Namun, setelah masalah diperbaiki, Service Bus akan tersedia lagi. Biasanya, pemadaman tidak menyebabkan hilangnya pesan atau data lainnya. Contoh pemadaman tersebut mungkin merupakan kegagalan daya di pusat data. Beberapa pemadaman hanya kehilangan koneksi sementara karena masalah sementara atau jaringan.

Bencana didefinisikan sebagai kerugian permanen, atau kehilangan jangka panjang atas kluster Service Bus, wilayah Azure, atau pusat data. Wilayah atau pusat data mungkin atau mungkin tidak tersedia lagi, atau mungkin tidak berfungsi selama berjam-jam atau berjam-hari. Contoh bencana tersebut adalah kebakaran, banjir, atau gempa bumi. A disaster that becomes permanent might cause the loss of some messages, events, or other data. Namun, dalam kebanyakan kasus seharusnya tidak ada kehilangan data dan pesan dapat dipulihkan setelah pusat data muncul kembali.

Fitur pemulihan bencana Geo Azure Service Bus adalah solusi pemulihan bencana. Konsep dan alur kerja yang dijelaskan dalam artikel ini berlaku untuk skenario bencana, dan bukan untuk kejadian sementara, atau pemadaman sementara. Untuk diskusi terperinci tentang pemulihan bencana di Microsoft Azure, lihat artikel ini.

Konsep dan istilah dasar

Fitur pemulihan bencana menerapkan metadata pemulihan bencana, dan mengandalkan namespace pemulihan bencana primer dan sekunder. Fitur pemulihan bencana Geo hanya tersedia untuk SKU Premium. Anda tidak perlu membuat perubahan string koneksi apa pun, karena koneksi dibuat melalui alias.

Alat berikut ini digunakan dalam artikel ini:

  • Alias: Nama untuk konfigurasi pemulihan bencana yang Anda siapkan. Alias menyediakan string koneksi Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) yang stabil. Aplikasi menggunakan string koneksi alias ini untuk menyambungkan ke namespace. Penggunaan alias memastikan bahwa string koneksi tidak berubah saat failover dipicu.

  • Namespace primer/sekunder: Namespace yang sesuai dengan alias. Namespace utama "aktif" dan menerima pesan (dapat berupa namespace layanan yang sudah ada atau baru). Namespace sekunder berstatus "pasif" dan tidak menerima pesan. Metadata di antara keduanya disinkronkan, sehingga keduanya dapat menerima pesan dengan lancar tanpa kode aplikasi atau perubahan string koneksi. Untuk memastikan bahwa hanya namespace aktif yang menerima pesan, Anda harus menggunakan alias.

  • Metadata: Entitas seperti antrean, topik, dan langganan; dan sifat layanannya yang terkait dengan namespace. Hanya entitas dan pengaturannya yang direplikasi secara otomatis. Pesan tidak direplikasi.

  • Failover: Proses aktivasi namespace sekunder.

Siapkan

Bagian berikut ini adalah gambaran umum untuk menyiapkan pemasangan antar-namespace.

Gambar yang menunjukkan cara kerja pemulihan bencana geografis.

Anda terlebih dahulu membuat atau menggunakan namespace primer yang sudah ada, dan namespace sekunder baru, lalu memasangkan keduanya. Pemasangan ini memberi Anda alias yang dapat digunakan untuk tersambung. Karena menggunakan alias, Anda tidak perlu mengubah string koneksi. Hanya namespace baru yang dapat ditambahkan ke pemasangan failover Anda.

  1. Buat namespace layanan tingkat premium utama.

  2. Buat namespace tingkat premium sekunder di wilayah yang berbeda. Langkah ini bersifat opsional. Anda dapat membuat namespace sekunder saat membuat pasangan di langkah berikutnya.

  3. Di portal Azure, navigasikan ke namespace primer Anda.

  4. Pilih Pemulihan Geo di menu sebelah kiri, lalu pilih Mulai pemasangan pada bar alat.

    Cuplikan layar memperlihatkan halaman Pemulihan geografis dengan tautan Mulai pemasangan dipilih.

  5. Pada halaman Mulai pemasangan, ikuti langkah-langkah berikut:

    1. Pilih namespace sekunder yang sudah ada atau buat di wilayah lain. Dalam contoh ini, namespace yang sudah ada digunakan sebagai namespace sekunder.

    2. Untuk Alias, masukkan alias untuk pemasangan geo-dr.

    3. Lalu, pilih Buat.

      Cuplikan layar memperlihatkan halaman Mulai Pemasangan di portal Azure.

  6. Anda akan melihat halaman Service Bus Geo-DR Alias seperti yang ditunjukkan pada gambar berikut. Anda juga dapat membuka halaman Geo-DR Alias dari halaman namespace primer dengan memilih Geo-recovery di menu sebelah kiri.

    Cuplikan layar memperlihatkan halaman Bus Layanan Geo-DR Alias dengan namespace primer dan sekunder.

  7. Pada halaman Alias Geo-DR, pilih Kebijakan akses bersama di menu sebelah kiri untuk mengakses string koneksi primer untuk alias. Use this connection string instead of using the connection string to the primary/secondary namespace directly. Awalnya, alias mengarah ke namespace primer.

  8. Beralih ke halaman Gambaran Umum. Anda dapat melakukan tindakan berikut:

    1. Putuskan pemasangan antara namespace primer dan sekunder. Pilih Putuskan pemasangan pada bar alat.
    2. Lakukan failover secara manual ke namespace sekunder.
      1. Pilih Failover pada bar alat.

      2. Konfirmasikan bahwa Anda ingin melakukan failover ke namespace sekunder dengan mengetik di alias Anda.

      3. Aktifkan opsi Failover Aman untuk melakukan failover dengan aman ke namespace sekunder.

        Catatan

        • Failover yang aman memastikan bahwa replikasi Geo-DR yang tertunda selesai sebelum beralih ke sekunder. Sedangkan failover paksa atau manual tidak menunggu replikasi yang tertunda selesai sebelum beralih ke sekunder.
        • Saat ini, failover aman gagal jika namespace primer dan sekunder tidak berada dalam langganan Azure yang sama.
      4. Kemudian, pilih Failover.

        Cuplikan layar memperlihatkan halaman Failover.

        Penting

        Failover mengaktifkan namespace sekunder dan menghapus namespace utama dari pemasangan Geo-Disaster Recovery. Buat namespace lain untuk memiliki pasangan pemulihan bancana-geo baru.

  9. Akhirnya, Anda harus menambahkan beberapa pemantauan untuk mendeteksi apakah failover diperlukan. Dalam kebanyakan kasus, layanan ini adalah salah satu bagian dari ekosistem besar, sehingga failover otomatis jarang dimungkinkan, karena seringkali failover harus dilakukan selaras dengan sisa subsistem atau infrastruktur.

Service Bus standar ke premium

Jika Anda telah memigrasikan namespace Azure Bus Layanan Standard ke Azure Bus Layanan Premium, maka Anda harus menggunakan alias yang sudah ada sebelumnya (yaitu, namespace Bus Layanan Standard Anda string koneksi) untuk membuat konfigurasi pemulihan bencana melalui PS/CLI atau REST API.

Pasalnya, selama migrasi, namespace string koneksi/DNS standar Azure Bus Layanan Anda sendiri menjadi alias untuk namespace layanan premium Azure Bus Layanan Anda.

Aplikasi klien Anda harus menggunakan alias ini (yaitu, namespace layanan standar Azure Bus Layanan string koneksi) untuk terhubung ke namespace premium tempat pasangan pemulihan bencana telah disiapkan.

Jika Anda menggunakan portal Azure untuk menyiapkan konfigurasi pemulihan bencana, portal akan mengabstraksi peringatan ini dari Anda.

Alur failover

Failover dipicu secara manual oleh pelanggan (baik secara eksplisit melalui perintah, atau melalui logika bisnis milik klien yang memicu perintah) dan tidak pernah dipicu oleh Azure. Ini memberi pelanggan kepemilikan penuh dan visibilitas terkait resolusi pemadaman pada kekuatan Azure.

Gambar memperlihatkan alur failover dari namespace primer ke sekunder.

Setelah failover dipicu -

  1. String koneksi alias diperbarui untuk mengarah ke namespace Premium Sekunder.

  2. Klien (pengirim dan penerima) akan otomatis tersambung ke namespace Sekunder.

  3. Pasangan yang ada antara namespace premium Primer dan Sekunder akan dibatalkan.

Setelah failover dimulai -

  1. Jika pemadaman lain terjadi, Anda ingin dapat melakukan failover lagi. Jadi, siapkan namespace pasif lain dan perbarui pemasangan.

  2. Tarik pesan dari namespace primer sebelumnya setelah tersedia lagi. Setelah itu, gunakan namespace tersebut untuk pesan reguler di luar pengaturan pemulihan geografis Anda, atau hapus ruang nama primer yang lama.

Catatan

Hanya semantik penerusan yang gagal yang didukung. Dalam skenario ini, Anda melakukan failover, lalu memasangkan kembali dengan namespace baru. Fallback tidak didukung; misalnya, dalam kluster SQL.

Anda dapat mengotomatiskan failover baik dengan sistem pemantauan ataupun dengan solusi pemantauan yang dibuat khusus. Namun, otomatisasi semacam itu membutuhkan perencanaan dan pekerjaan ekstra, yang tidak dicakup dalam artikel ini.

Gambar memperlihatkan bagaimana Anda dapat mengotomatiskan failover.

Manajemen

Jika Anda membuat kesalahan, misalnya, Anda memasangkan wilayah yang salah selama penyiapan awal, Anda dapat memutuskan pemasangan dua namespace layanan kapan saja. Jika Anda ingin menggunakan namespace yang dipasangkan sebagai namespace biasa, hapus alias.

Menggunakan namespace yang sudah ada sebagai alias

Jika menghadapi skenario ketika Anda tidak dapat mengubah koneksi produsen dan konsumen, Anda dapat menggunakan kembali nama namespace Anda sebagai nama alias. Lihat sampel kode di GitHub di sini.

Sampel

Sampel di GitHub menunjukkan cara menyiapkan dan memulai failover. Sampel ini menunjukkan konsep berikut:

  • Sampel dan pengaturan .NET yang diperlukan di MICROSOFT Entra ID untuk menggunakan Azure Resource Manager dengan Bus Layanan, untuk menyiapkan, dan mengaktifkan pemulihan bencana geografis.
  • Langkah-langkah yang diperlukan untuk mengeksekusi kode sampel.
  • Cara menggunakan namespace yang ada sebagai alias.
  • Langkah-langkah untuk mengaktifkan pemulihan bencana Geo melalui PowerShell atau CLI.
  • Kirim dan terima dari namespace primer atau sekunder saat ini menggunakan alias.

Pertimbangan

Perhatikan pertimbangan berikut untuk diingat dengan rilis ini:

  • Dalam perencanaan failover Anda, Anda juga harus mempertimbangkan faktor waktu. Misalnya, jika Anda kehilangan konektivitas selama lebih dari 15 hingga 20 menit, Anda mungkin memutuskan untuk memulai failover.
  • Faktanya bahwa tidak ada data yang direplikasi berarti bahwa sesi aktif saat ini tidak direplikasi. Selain itu, deteksi duplikat dan pesan terjadwal mungkin tidak berfungsi. Sesi baru, pesan terjadwal baru, dan duplikat baru berfungsi.
  • Melakukan failover atas infrastruktur terdistribusi yang kompleks harus dilatih setidaknya sekali.
  • Menyinkronkan entitas dapat memakan waktu, sekitar 50-100 entitas per menit. Langganan dan aturan juga dihitung sebagai entitas.

Zona Ketersediaan

SKU Premium Bus Layanan mendukung zona ketersediaan, menyediakan lokasi yang terisolasi kesalahan dalam wilayah Azure yang sama. Bus Layanan mengelola tiga salinan penyimpanan olahpesan (1 primer dan 2 sekunder). Bus Layanan menjaga ketiga salinan tetap sinkron untuk operasi data dan manajemen. Jika salinan primer gagal, salah satu salinan sekunder akan dipromosikan ke primer tanpa waktu henti. Jika aplikasi melihat pemutusan sementara dari Bus Layanan, logika coba lagi di SDK secara otomatis tersambung kembali ke Bus Layanan.

Saat Anda menggunakan zona ketersediaan, metadata dan data (pesan) akan direplikasi di seluruh pusat data di zona ketersediaan.

Catatan

Dukungan Zona Ketersediaan untuk Azure Service Bus Premium hanya tersedia di wilayah Azure tempat zona ketersediaan tersedia.

Saat Anda membuat namespace tingkat premium melalui portal, dukungan untuk zona ketersediaan (jika tersedia di wilayah yang dipilih) secara otomatis diaktifkan untuk namespace layanan. Saat membuat namespace tingkat premium melalui mekanisme lain, seperti templat ARM / Bicep, CLI, atau PowerShell, properti zoneRedundant perlu diatur secara eksplisit ke true untuk mengaktifkan zona ketersediaan (jika tersedia di wilayah yang dipilih). Tidak ada biaya tambahan untuk menggunakan fitur ini dan Anda tidak dapat menonaktifkan atau mengaktifkan fitur ini setelah pembuatan namespace.

Titik Akhir Privat

Bagian ini memberikan lebih banyak pertimbangan saat menggunakan pemulihan bencana Geo dengan namespace yang menggunakan titik akhir pribadi. Untuk mempelajari tentang cara menggunakan titik akhir pribadi dengan Service Bus secara umum, lihat Mengintegrasikan Azure Service Bus dengan Azure Private Link.

Pasangan baru

Jika Anda mencoba membuat pasangan antara namespace utama dengan titik akhir privat dan namespace sekunder tanpa titik akhir privat, pemasangan gagal. Pemasangan hanya berhasil jika namespace primer dan sekunder memiliki titik akhir privat. Sebaiknya Anda menggunakan konfigurasi yang sama pada namespace primer dan sekunder serta pada jaringan virtual tempat titik akhir pribadi dibuat.

Catatan

Ketika Anda mencoba memasangkan namespace primer dengan titik akhir pribadi dan namespace sekunder, proses validasi hanya memeriksa apakah titik akhir pribadi ada pada namespace sekunder. Ini tidak memeriksa apakah titik akhir berfungsi atau berfungsi setelah failover. Anda bertanggung jawab untuk memastikan bahwa namespace sekunder dengan titik akhir privat berfungsi seperti yang diharapkan setelah failover.

Untuk menguji bahwa konfigurasi titik akhir pribadi sama, kirim permintaan Dapatkan antrean ke namespace sekunder dari luar jaringan virtual, dan pastikan Anda menerima pesan kesalahan dari layanan.

Pasangan yang sudah ada

Jika pemasangan antara namespace primer dan sekunder sudah ada, pembuatan titik akhir privat pada namespace utama gagal. Untuk mengatasinya, buat titik akhir pribadi pada namespace sekunder terlebih dahulu, lalu buat titik akhir untuk namespace primer.

Catatan

Meskipun kami mengizinkan akses baca-saja ke namespace sekunder, pembaruan untuk konfigurasi titik akhir pribadi diizinkan.

Saat membuat konfigurasi pemulihan bencana untuk aplikasi dan Service Bus, Anda harus membuat titik akhir pribadi untuk namespace Service Bus primer dan sekunder terhadap jaringan virtual yang menghosting instans primer dan sekunder pada aplikasi Anda.

Katakanlah Anda memiliki dua jaringan virtual: VNET-1, VNET-2 dan namespace primer dan sekunder ini: ServiceBus-Namespace1-Primary, ServiceBus-Namespace2-Secondary. Anda perlu melakukan langkah-langkah berikut:

  • Pada ServiceBus-Namespace1-Primary, buat dua titik akhir privat yang menggunakan subnet dari VNET-1 dan VNET-2
  • Pada ServiceBus-Namespace2-Secondary, buat dua titik akhir privat yang menggunakan subnet yang sama dari VNET-1 dan VNET-2

Titik akhir privat dan jaringan virtual

Keuntungan dari pendekatan ini adalah failover dapat terjadi pada lapisan aplikasi yang terpisah dari namespace Service Bus. Pertimbangkan skenario berikut:

Failover khusus aplikasi: Di sini, aplikasi tidak ada di VNET-1 tetapi pindah ke VNET-2. Karena kedua titik akhir privat dikonfigurasi pada VNET-1 dan VNET-2 untuk namespace primer dan sekunder, aplikasi hanya berfungsi.

Bus Layanan failover khusus namespace: Di sini lagi, karena kedua titik akhir privat dikonfigurasi pada jaringan virtual untuk namespace layanan primer dan sekunder, aplikasi hanya berfungsi.

Catatan

Untuk panduan tentang pemulihan bencana geo jaringan virtual, lihat Virtual Network - Kelangsungan Bisnis.

Kontrol Akses Berbasis Peran

Penetapan kontrol akses berbasis peran (RBAC) Microsoft Entra ke entitas Bus Layanan di namespace utama tidak direplikasi ke namespace sekunder. Buat tugas peran secara manual di namespace layanan sekunder untuk mengamankan aksesnya.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang olahpesan Service Bus, lihat topik berikut ini: