Mendesain arsitektur jaringan yang terdistribusi secara geografis
Dalam aplikasi terdistribusi, hal ini penting untuk memastikan bahwa komponen dapat berkomunikasi dengan andal dan permintaan dapat dirutekan ke komponen atau wilayah yang berbeda ketika terjadi kegagalan.
Kami telah memutuskan untuk mengarsitek ulang portal pengiman kami di Azure untuk mengurangi kerentanannya terhadap kegagalan regional. Kami ingin memastikan bahwa aplikasi gagal ke komponen di wilayah sekunder ketika wilayah utama tidak tersedia. Failover harus menyebabkan gangguan minimal dalam pengiriman layanan kepada pengguna.
Di sini, kami mempelajari bagaimana Azure DNS, Traffic Manager, Front Door, dan Azure CDN mendukung arsitektur aplikasi perusahaan pengiriman kami.
DNS Azure
Ingat dari sebelumnya bahwa kami tidak memerlukan perubahan apa pun untuk implementasi Azure DNS kami. Kami menggunakan Azure DNS untuk menghosting catatan nama domain yang mengidentifikasi aplikasi kami.
Azure DNS menyediakan resolusi nama sepenuhnya melalui infrastruktur Azure. Aplikasi ini multi-regional secara inheren, dan itulah sebabnya tidak perlu memodifikasi konfigurasi Azure DNS kami yang ada untuk mendukung fitur dalam desain arsitektur baru kami.
Azure DNS SLA juga memiliki jaminan 100% bahwa permintaan DNS yang valid menerima respons dari setidaknya satu server nama Azure DNS sepanjang waktu.
Pilih perute lalu lintas
Kami memerlukan layanan yang dapat memuat keseimbangan dan mengarahkan lalu lintas ke berbagai wilayah dengan aplikasi web terdistribusi.
Azure menyediakan beberapa layanan berbeda yang dapat merutekan lalu lintas antar komponen ujung depan. Ingat bahwa kita perlu mengganti Azure Application Gateway kita karena itu satu wilayah terikat. Jika wilayah itu gagal, tidak ada yang perlu dilakukan perutean.
Ada dua perute lalu lintas di Azure yang dapat melakukan perutean global antar beberapa wilayah, dan tidak rentan terhadap pemadaman satu wilayah:
- Azure Traffic Manager
- Azure Front Door
Mari kita periksa layanan ini lebih detail, sehingga kita dapat memilih perute yang tepat untuk aplikasi kzmi.
Apa itu Azure Traffic Manager?
Traffic Manager Azure adalah penyeimbang muatan global yang menggunakan catatan DNS untuk merutekan lalu lintas ke tujuan di beberapa wilayah Azure.
Kami dapat mengonfigurasi Traffic Manager untuk merutekan semua permintaan ke wilayah utama kami, dan memantau tingkat respons App Service di wilayah tersebut. Jika App Service di wilayah utama gagal, Traffic Manager secara otomatis merute ulang permintaan pengguna ke App Service di wilayah sekunder. Rute ulang ini menjalankan failover yang memastikan layanan berkelanjutan. Kami menyebut pengaturan ini sebagai mode perutean prioritas.
Karena Traffic Manager menggunakan sistem DNS untuk merutekan lalu lintas, Traffic Manager merutekan protokol apa pun, bukan hanya lalu lintas HTTP. Namun, Traffic Manager tidak dapat merutekan atau memfilter lalu lintas berdasarkan properti HTTP, seperti kode negara klien atau tajuk agen pengguna. Traffic Manager juga tidak dapat melakukan penghentian protokol Keamanan Lapisan Transportasi (TLS), dimana perute mendekripsi permintaan dan mengenkripsi respon untuk mengambil muatan itu dari server virtual App Service. Jika kita membutuhkan salah satu fitur ini, kita harus menggunakan Azure Front Door.
Traffic Manager menggunakan pemantauan titik akhir yang sangat dapat dikonfigurasi. Misalnya, kita dapat menentukan protokol, port, jalur, pengaturan header kustom, rentang kode status yang diharapkan, dan jumlah kegagalan yang ditoleransi. Pemantauan titik akhir memberi kami gagasan berkelanjutan tentang kesehatan keseluruhan dari semua bagian aplikasi kami.
Apa itu Azure Front Door?
Seperti Traffic Manager, Azure Front Door adalah penyeimbang muatan global. Tidak seperti Traffic Manager, Azure Front Door bekerja pada lapisan aplikasi jaringan, Lapisan 7, dan menggunakan properti HTTP dan HTTPS untuk melakukan pemfilteran dan perutean.
Dengan Front Door, kita dapat melakukan banyak jenis perutean yang tidak didukung oleh Traffic Manager. Misalnya, kita dapat merutekan lalu lintas berdasarkan kode negara browser. Front Door juga mendukung penghentian protokol TLS.
Namun, ada pengecualian. Jika kita ingin merutekan lalu lintas untuk protokol apa pun selain HTTP dan HTTPS, kita harus menggunakan Traffic Manager.
Front Door memungkinkan kami untuk menetapkan prioritas ke berbagai ujung belakang yang membentuk portal pelacakan. Prioritas ini memungkinkan Front Door untuk merutekan permintaan sesuai kebutuhan. Kami menetapkan layanan wilayah utama kami dengan prioritas utama dan layanan wilayah sekunder kami dengan prioritas yang lebih rendah.
Front Door menerapkan pemeriksaan kesehatan untuk memantau status kesehatan layanan kami, dan jika ada kegagalan Front Door dapat merutekan lalu lintas dengan benar. Mode perutean prioritas dan pemantauan titik akhir di Front Door serupa dengan fitur di Traffic Manager, kecuali pemeriksaan kesehatan selalu bekerja melalui HTTP.
Semua lalu lintas untuk UI web portal pengiriman kami dan APInya dilakukan melalui HTTPS dan memungkinkan kami untuk mengganti Azure Traffic Manager dengan Front Door. Kita juga dapat mengonfigurasi Front Door dengan penetapan back-end prioritas.
Azure CDN
Dalam arsitektur satu wilayah kami, kami menggunakan Azure CDN untuk menyimpan konten statis dari Azure Blob Storage. Layanan Azure CDN adalah jaringan global dari server yang menyimpan konten statis di dekat pengguna. Kami tidak perlu memodifikasi layanan ini untuk arsitektur multi-regional. Namun, ada pertimbangan mengenai akun Azure Storage kami yang akan kami bahas di unit berikutnya.