Keandalan di Azure App Service
Artikel ini menjelaskan dukungan keandalan di Azure App Service. Ini mencakup ketahanan intra-regional dengan zona ketersediaan dan informasi tentang penyebaran multi-wilayah.
Ketahanan adalah tanggung jawab bersama antara Anda dan Microsoft. Artikel ini juga membahas cara bagi Anda untuk membangun solusi tangguh yang memenuhi kebutuhan Anda.
Azure App Service adalah layanan berbasis HTTP untuk meng-hosting aplikasi web, REST API, dan back-end seluler. Azure App Service menambahkan kekuatan Microsoft Azure ke aplikasi Anda, dengan kemampuan untuk keamanan, penyeimbangan beban, penskalaan otomatis, dan manajemen otomatis. Untuk menjelajahi bagaimana Azure App Service dapat meningkatkan keandalan dan ketahanan beban kerja aplikasi Anda, lihat Mengapa menggunakan App Service?
Saat menyebarkan Azure App Service, Anda dapat membuat beberapa instans paket App Service, yang mewakili pekerja komputasi yang menjalankan kode aplikasi Anda. Untuk informasi selengkapnya, lihat Paket Azure App Service. Meskipun platform melakukan upaya untuk menyebarkan instans di berbagai domain kesalahan, platform tidak secara otomatis menyebarkan instans di seluruh zona ketersediaan.
Rekomendasi penyebaran produksi
Untuk penyebaran produksi, Anda harus:
- Gunakan paket App Service v3 premium.
- Aktifkan redundansi zona, yang mengharuskan paket App Service Anda menggunakan minimal tiga instans.
- Aktifkan redundansi zona, yang mengharuskan paket App Service Anda menggunakan minimal tiga instans.
Kesalahan sementara
Kesalahan sementara adalah kegagalan terputus-terputus-putus dalam komponen. Mereka sering terjadi di lingkungan terdistribusi seperti cloud, dan mereka adalah bagian normal dari operasi. Mereka mengoreksi diri mereka sendiri setelah waktu yang singkat. Penting bahwa aplikasi Anda menangani kesalahan sementara, biasanya dengan mencoba kembali permintaan yang terpengaruh.
Semua aplikasi yang dihosting cloud harus mengikuti panduan penanganan kesalahan sementara Azure saat berkomunikasi dengan API, database, dan komponen lainnya yang dihosting cloud. Untuk mempelajari selengkapnya tentang menangani kesalahan sementara, lihat Rekomendasi untuk menangani kesalahan sementara.
SDK yang disediakan Microsoft biasanya menangani kesalahan sementara. Karena Anda menghosting aplikasi Anda sendiri di Azure App Service, pertimbangkan cara menghindari penyebab kesalahan sementara dengan memastikan bahwa Anda:
Sebarkan beberapa instans paket Anda. Azure App Service melakukan pembaruan otomatis dan bentuk pemeliharaan lainnya pada instans paket Anda. Jika instans menjadi tidak sehat, layanan dapat secara otomatis mengganti instans tersebut dengan instans sehat baru. Selama proses penggantian, mungkin ada waktu singkat ketika instans sebelumnya tidak tersedia dan instans baru belum siap untuk melayani lalu lintas. Anda dapat mengurangi dampak perilaku ini dengan menyebarkan beberapa instans paket App Service Anda.
Gunakan slot penyebaran. Slot penyebaran Azure App Service memungkinkan penyebaran aplikasi Anda tanpa waktu henti. Gunakan slot penyebaran untuk meminimalkan dampak penyebaran dan perubahan konfigurasi bagi pengguna Anda. Menggunakan slot penyebaran juga mengurangi kemungkinan aplikasi Anda dimulai ulang. Menghidupkan ulang menyebabkan kesalahan sementara.
Hindari peningkatan atau penurunan skala. Sebagai gantinya, pilih tingkat dan ukuran instans yang memenuhi persyaratan performa Anda di bawah beban umum. Hanya perluas skala instans untuk menangani perubahan volume lalu lintas. Meningkatkan dan menurunkan skala dapat memicu menghidupkan ulang aplikasi.
Dukungan zona ketersediaan
Zona ketersediaan adalah grup pusat data yang terpisah secara fisik di setiap wilayah Azure. Ketika satu zona gagal, layanan dapat melakukan failover ke salah satu zona yang tersisa.
Untuk informasi selengkapnya tentang zona ketersediaan di Azure, lihat Apa itu zona ketersediaan?
Azure App Service dapat dikonfigurasi sebagai zona redundan, yang berarti sumber daya Anda tersebar di beberapa zona ketersediaan. Menyebar di beberapa zona membantu beban kerja produksi Anda mencapai ketahanan dan keandalan. Dukungan zona ketersediaan adalah properti dari paket App Service.
Instans yang menyebar dengan penyebaran zona-redundan ditentukan menggunakan aturan berikut. Aturan ini berlaku bahkan saat aplikasi menskalakan masuk dan keluar:
- Jumlah instans paket App Service minimum adalah tiga.
- Instans tersebar secara merata jika Anda menentukan kapasitas yang lebih besar dari tiga, dan jumlah instans dapat dibagi tiga.
- Setiap instans dihitung di luar 3*N tersebar di satu atau dua zona yang tersisa.
Ketika platform App Service mengalokasikan instans untuk paket App Service zona-redundan, platform ini menggunakan penyeimbangan zona upaya terbaik yang ditawarkan oleh set skala komputer virtual Azure yang mendasarinya. Paket App Service seimbang jika setiap zona memiliki jumlah komputer virtual yang sama, atau ditambah atau dikurangi satu, di semua zona lainnya. Untuk informasi selengkapnya, lihat Penyeimbangan zona.
Untuk paket App Service yang tidak dikonfigurasi sebagai zona redundan, instans komputer virtual tidak tahan terhadap kegagalan zona ketersediaan. Mereka dapat mengalami waktu henti selama pemadaman di zona mana pun di wilayah tersebut.
Wilayah yang didukung
Paket App Service zona-redundan dapat disebarkan di wilayah mana pun yang mendukung zona ketersediaan.
Untuk melihat wilayah mana yang mendukung zona ketersediaan untuk App Service Environment v3, lihat Wilayah.
Persyaratan
Anda harus menggunakan jenis paket Premium v2 atau Premium v3.
Zona ketersediaan hanya didukung pada jejak App Service yang lebih baru. Bahkan jika Anda menggunakan salah satu wilayah yang didukung, jika zona ketersediaan tidak didukung untuk grup sumber daya Anda, Anda menerima kesalahan. Untuk memastikan bahwa beban kerja Anda mendarat di stempel yang mendukung zona ketersediaan, Anda mungkin perlu membuat grup sumber daya baru, paket App Service, dan App Service.
- Anda harus menyebarkan minimal tiga instans paket Anda.
Pertimbangan
Aplikasi yang disebarkan dalam paket App Service zona-redundan terus berjalan dan melayani lalu lintas meskipun beberapa zona di wilayah tersebut mengalami pemadaman. Perilaku nonruntime mungkin masih terpengaruh selama pemadaman zona ketersediaan. Perilaku ini termasuk penskalaan paket App Service, pembuatan aplikasi, konfigurasi aplikasi, dan penerbitan aplikasi. Redundansi zona untuk paket App Service hanya memastikan waktu aktif lanjutan untuk aplikasi yang disebar.
Biaya
Saat Anda menggunakan paket App Service Premium v2 atau Premium v3, tidak ada biaya tambahan yang terkait dengan mengaktifkan zona ketersediaan selama Anda memiliki tiga instans atau lebih dalam paket App Service Anda. Anda dikenakan biaya berdasarkan SKU paket App Service, kapasitas yang Anda tentukan, dan instans apa pun yang Anda skalakan berdasarkan kriteria skala otomatis Anda.
Jika Anda mengaktifkan zona ketersediaan tetapi menentukan kapasitas kurang dari tiga, platform memberlakukan jumlah instans minimum tiga. Platform ini menagih Anda untuk ketiga instans tersebut.
App Service Environment v3 memiliki model harga tertentu untuk redundansi zona. Untuk informasi harga untuk Lingkungan App Service v3, lihat Harga.
Mengonfigurasi dukungan zona ketersediaan
Untuk menyebarkan paket Azure App Service zona redundan baru, pilih opsi Zona redundan saat Anda menyebarkan paket.
Untuk menyebarkan Azure App Service Environment zona-redundan baru, lihat Membuat Lingkungan App Service.
Redundansi zona hanya dapat dikonfigurasi saat Anda membuat paket App Service baru. Jika Anda memiliki paket App Service yang sudah ada yang bukan zona-redundan, ganti dengan paket zona redundan baru. Anda tidak dapat mengonversi paket App Service yang ada untuk menggunakan zona ketersediaan. Demikian pula, Anda tidak dapat menonaktifkan redundansi zona pada paket App Service yang ada.
Perencanaan dan manajemen kapasitas
Untuk mempersiapkan kegagalan zona ketersediaan, Anda harus menyediakan kapasitas layanan secara berlebihan. Pendekatan ini memastikan bahwa solusi dapat mentolerir kehilangan kapasitas 1/3 dan terus berfungsi tanpa penurunan performa selama pemadaman di seluruh zona. Karena platform menyebarkan komputer virtual di tiga zona dan Anda perlu memperhitungkan setidaknya kegagalan satu zona, kalikan jumlah instans beban kerja puncak dengan faktor zones/(zones-1)
, atau 3/2. Misalnya, jika beban kerja puncak umum Anda memerlukan empat instans, Anda harus menyediakan enam instans: (2/3 * 6 instans) = 4 instans.
Perutean lalu lintas antar zona
Selama operasi normal, lalu lintas dirutekan di antara semua instans paket App Service yang tersedia di semua zona ketersediaan.
Pengalaman zona tidak berfungsi
Deteksi dan respons. Platform App Service bertanggung jawab untuk mendeteksi kegagalan di zona ketersediaan dan merespons. Anda tidak perlu melakukan apa pun untuk memulai failover zona.
Permintaan aktif. Ketika zona ketersediaan tidak tersedia, setiap permintaan yang sedang berlangsung yang terhubung ke instans paket App Service di zona ketersediaan yang rusak dihentikan. Mereka harus dicoba kembali.
Pengalihan lalu lintas. Saat zona tidak tersedia, Azure App Service mendeteksi instans yang hilang dari zona tersebut. Ini secara otomatis mencoba menemukan instans pengganti baru. Kemudian, ia menyebarkan lalu lintas di seluruh instans baru sesuai kebutuhan.
Jika Anda memiliki skala otomatis yang dikonfigurasi, dan jika memutuskan lebih banyak instans diperlukan, skala otomatis juga mengeluarkan permintaan ke App Service untuk menambahkan lebih banyak instans. Untuk informasi selengkapnya, lihat Meningkatkan skala aplikasi di Azure App Service.
Catatan
Perilaku skala otomatis tidak bergantung pada perilaku platform App Service. Spesifikasi jumlah instans skala otomatis Anda tidak perlu kelipatan tiga.
Penting
Tidak ada jaminan bahwa permintaan untuk lebih banyak instans dalam skenario zona tidak berfungsi berhasil. Pengisian kembali instans yang hilang terjadi berdasarkan upaya terbaik. Jika Anda memerlukan kapasitas terjamin saat zona ketersediaan hilang, Anda harus membuat dan mengonfigurasi paket App Service untuk memperhitungkan kehilangan zona. Anda dapat melakukannya dengan provisi berlebih kapasitas paket App Service Anda.
Gagal kembali
Saat zona ketersediaan pulih, Azure App Service secara otomatis membuat instans di zona ketersediaan yang dipulihkan, menghapus instans sementara yang dibuat di zona ketersediaan lain, dan merutekan lalu lintas antara instans Anda seperti biasa.
Pengujian untuk kegagalan zona
Platform Azure App Service mengelola perutean lalu lintas, failover, dan failback untuk paket App Service zona-redundan. Karena fitur ini dikelola sepenuhnya, Anda tidak perlu memulai atau memvalidasi proses kegagalan zona ketersediaan.
Dukungan multi-wilayah
Azure App Service adalah layanan wilayah tunggal. Jika wilayah menjadi tidak tersedia, aplikasi Anda juga tidak tersedia.
Solusi multi-wilayah alternatif
Untuk memastikan bahwa aplikasi Anda menjadi kurang rentan terhadap kegagalan satu wilayah, Anda perlu menyebarkan aplikasi Anda ke beberapa wilayah:
- Sebarkan aplikasi Anda ke instans di setiap wilayah.
- Mengonfigurasi kebijakan penyeimbangan beban dan failover.
- Replikasi data Anda di seluruh wilayah sehingga Anda dapat memulihkan status aplikasi terakhir Anda.
Misalnya arsitektur yang mengilustrasikan pendekatan ini, lihat:
- Arsitektur referensi: Aplikasi web multi-wilayah yang sangat tersedia.
- Aplikasi App Service multi-wilayah untuk pemulihan bencana
Untuk mengikuti tutorial yang membuat aplikasi multi-wilayah, lihat Tutorial: Membuat aplikasi multi-wilayah yang sangat tersedia di Azure App Service.
Untuk contoh pendekatan yang mengilustrasikan arsitektur ini, lihat Penyebaran perusahaan ketersediaan tinggi menggunakan Lingkungan App Service.
Pencadangan
Saat menggunakan tingkat Dasar atau yang lebih tinggi, Anda dapat mencadangkan aplikasi App Service ke file dengan menggunakan kemampuan pencadangan dan pemulihan App Service. Untuk informasi selengkapnya, lihat Mencadangkan dan memulihkan aplikasi Anda di Azure App Service.
Fitur ini berguna jika sulit untuk menyebarkan ulang kode Anda, atau jika Anda menyimpan status pada disk. Untuk sebagian besar solusi, Anda tidak boleh mengandalkan cadangan App Service. Gunakan metode lain yang dijelaskan dalam artikel ini untuk mendukung persyaratan ketahanan Anda.
Service-level agreement (SLA)
Perjanjian tingkat layanan (SLA) untuk Azure App Service menjelaskan ketersediaan layanan yang diharapkan. Ini juga menjelaskan kondisi yang harus dipenuhi untuk mencapai harapan ketersediaan tersebut. Untuk memahami kondisi tersebut , tinjau Perjanjian Tingkat Layanan (SLA) untuk Layanan Online.
Saat Anda menyebarkan paket App Service zona-redundan, persentase waktu aktif yang ditentukan dalam SLA meningkat.