Bagikan melalui


Keandalan dalam Azure Container Instances

Azure Container Instances menyediakan cara mudah untuk menjalankan kontainer Linux atau Windows di Azure, tanpa perlu mengelola komputer virtual (VM) atau mengadopsi layanan tingkat yang lebih kompleks dan lebih tinggi.

Artikel ini menjelaskan dukungan keandalan dalam Container Instances, yang mencakup ketahanan intra-regional melalui zona ketersediaan dan penyebaran multi-wilayah.

Saat Anda menggunakan Azure, keandalan adalah tanggung jawab bersama. Microsoft menyediakan berbagai kemampuan untuk mendukung ketahanan dan pemulihan. Anda bertanggung jawab untuk memahami cara kerja kemampuan tersebut dalam semua layanan yang Anda gunakan, dan memilih kemampuan yang Anda butuhkan untuk memenuhi tujuan bisnis dan tujuan waktu aktif Anda.

Rekomendasi penyebaran produksi

Untuk meningkatkan keandalan aplikasi produksi yang dibangun di Container Instances, kami sarankan Anda mengambil tindakan berikut:

Gambaran umum arsitektur keandalan

Untuk menggunakan Container Instances, Anda menyebarkan grup kontainer. Grup kontainer berisi satu atau beberapa kontainer. Setiap kontainer dibuat dari gambar kontainer, yang disimpan dalam registri seperti Azure Container Registry.

Semua kontainer dalam grup kontainer disebarkan bersama-sama sebagai satu unit logis dan berbagi infrastruktur fisik yang sama.

Diagram berikut menunjukkan hubungan antara grup kontainer, kontainer, dan gambar.

Diagram yang memperlihatkan grup kontainer dengan dua kontainer. Setiap kontainer menggunakan gambar terpisah dalam registri.

Gambar menunjukkan dua kontainer dalam bagian grup kontainer. Dua garis putus-putus menghubungkan kontainer ke dua bagian gambar di bagian registri.

Container Instances menyediakan fitur berikut untuk mengelola grup kontainer:

  • NGroups (pratinjau) menyediakan serangkaian kemampuan untuk mengelola beberapa grup kontainer terkait. Saat membuat NGroup, Anda menentukan jumlah grup kontainer yang akan dibuat. Container Instances menyediakan fungsionalitas seperti peluncuran peningkatan otomatis dan menyebarkan grup kontainer di seluruh zona ketersediaan.

  • Kumpulan siaga membuat kumpulan grup kontainer yang telah disediakan sebelumnya yang dapat digunakan sebagai respons terhadap lalu lintas masuk. Kumpulan siaga dirancang untuk mengoptimalkan pembuatan grup kontainer dan tidak dimaksudkan untuk meningkatkan ketahanan Anda.

Kesalahan sementara

Kesalahan sementara adalah kegagalan yang bersifat sementara dan intermiten dalam komponen. Mereka sering terjadi di lingkungan terdistribusi seperti cloud, dan mereka adalah bagian normal dari operasi. Kesalahan sementara memperbaiki diri setelah waktu yang singkat. Penting bahwa aplikasi Anda dapat 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 lain yang dihosting cloud. Untuk informasi selengkapnya, lihat Rekomendasi untuk menangani kesalahan sementara.

SDK yang disediakan Microsoft biasanya menangani kesalahan sementara. Karena Anda menghosting aplikasi Anda sendiri di Container Instances, ambil langkah-langkah untuk mengurangi kemungkinan kesalahan sementara:

  • Jalankan beberapa grup kontainer untuk beban kerja penting untuk memastikan bahwa kegagalan dalam satu kontainer atau grup kontainer tidak memengaruhi seluruh aplikasi Anda.

  • Bangun kode aplikasi Anda agar tahan terhadap kesalahan sementara dalam layanan yang Anda sambungkan, seperti dengan menggunakan kebijakan coba lagi dengan strategi backoff.

Untuk informasi selengkapnya tentang kesalahan lain yang mungkin terjadi pada runtime dan cara meresponsnya, lihat Masalah selama runtime grup kontainer.

Dukungan zona ketersediaan

Zona ketersediaan adalah grup pusat data yang terpisah secara fisik dalam wilayah Azure. Ketika satu zona gagal, layanan dapat melakukan failover ke salah satu zona yang tersisa.

Container Instances mendukung zona ketersediaan dengan cara yang berbeda, tergantung pada cara Anda menyebarkan grup kontainer Anda:

  • Grup kontainer yang dibuat secara manual: Grup kontainer individual adalah sumber daya zonal , yang berarti dapat disebarkan ke dalam satu zona ketersediaan yang Anda pilih. Semua kontainer dalam grup disebarkan ke zona ketersediaan yang sama. Jika zona ketersediaan infrastruktur tersebut mengalami pemadaman, grup kontainer dan semua kontainernya mungkin mengalami gangguan operasi.

    Diagram berikut menunjukkan grup kontainer yang telah disebarkan secara manual ke zona ketersediaan 1:

    Diagram yang memperlihatkan grup kontainer dengan dua kontainer yang disebarkan ke dalam satu zona ketersediaan.

    Gambar menunjukkan tiga zona ketersediaan: Zona Ketersediaan 1, Zona Ketersediaan 2, dan Zona Ketersediaan 3. Grup kontainer di Zona Ketersediaan 1 menyertakan dua kontainer.

    Nota

    Untuk memastikan bahwa aplikasi Anda terus berjalan ketika satu zona di wilayah mengalami pemadaman, kami sarankan Anda membuat minimal dua grup kontainer di dua zona ketersediaan yang berbeda.

    Jika Anda tidak menentukan zona ketersediaan yang akan digunakan untuk grup kontainer Anda, itu nonzonal atau regional, yang berarti bahwa itu mungkin ditempatkan di zona ketersediaan apa pun dalam wilayah atau dalam zona yang sama. Jika ada masalah pada zona ketersediaan di wilayah tersebut, grup kontainer Anda mungkin mengalami pemadaman.

  • NGroups: Saat menyebarkan NGroup, Anda dapat menentukan satu atau beberapa zona untuk menyebarkannya. Jika Anda menyebarkan NGroup ke dua zona atau lebih, itu adalah NGroup zona-redundan , dan pemadaman satu zona ketersediaan hanya menyebabkan masalah untuk grup kontainer dalam zona yang terpengaruh.

    Diagram berikut menunjukkan NGroup yang disebarkan ke tiga zona ketersediaan:

    Diagram yang memperlihatkan NGroup dengan tiga grup kontainer, disebarkan ke dalam tiga zona ketersediaan.

    Gambar menunjukkan tiga zona ketersediaan. Setiap zona ketersediaan mencakup grup kontainer dan dua kontainer. Persegi berlabel NGroupdesiredCount=3, zones=1,2,3 mencakup ketiga zona ketersediaan.

    Jika Anda tidak menentukan zona ketersediaan yang akan digunakan untuk NGroup Anda, zona tersebut nonzonal dan mungkin mengalami waktu henti jika ada zona ketersediaan di wilayah tersebut yang bermasalah.

  • Kumpulan siaga: Saat Anda menyebarkan kumpulan siaga, Anda dapat secara opsional menentukan satu atau beberapa zona. Platform mungkin meminta kontainer di seluruh zona yang Anda pilih.

    Namun, kumpulan siaga bukan zona redundan atau tangguh zona karena tidak ada jaminan bahwa kontainer dibuat di beberapa zona. Jika pemadaman zona terjadi, ada kemungkinan semua kontainer di dalam kumpulan akan ditempatkan di zona yang terkena dampak.

    Karena kumpulan siaga tidak dirancang untuk mendukung ketahanan terhadap kegagalan zona, panduan ini tidak menjelaskan perilaku terperinci kumpulan siaga dengan zona ketersediaan.

    Penting

    Kumpulan siaga tidak dirancang agar tahan zona. Mereka tidak boleh digunakan untuk beban kerja yang memerlukan ketahanan terhadap kegagalan zona.

Dukungan wilayah

Penyebaran grup kontainer zona didukung di semua wilayah dengan zona ketersediaan.

Persyaratan

  • Penyebaran zona tersedia untuk grup kontainer Linux dan Windows Server 2019.

  • Untuk memilih zona ketersediaan, Anda harus menggunakan SKU Standar. Grup kontainer zonal tidak tersedia dengan SKU Konfidensial.

Pertimbangan

Kontainer spot tidak mendukung zona ketersediaan dan selalu nonzonal.

Biaya

Tidak ada biaya tambahan untuk mengonfigurasi zona ketersediaan untuk grup kontainer.

Mengonfigurasi dukungan zona ketersediaan

  • Buat grup kontainer dengan dukungan zona ketersediaan. Pendekatan yang Anda gunakan untuk mengonfigurasi zona ketersediaan tergantung pada cara Anda membuat grup kontainer.

    • Grup kontainer yang dibuat secara manual: Untuk membuat grup kontainer zona di zona tertentu, Anda dapat menggunakan salah satu metode berikut:

    • NGroups: Anda dapat menyebarkan NGroup dengan redundansi pada zona dengan menggunakan file Bicep atau templat ARM dan mengonfigurasi beberapa zona. Untuk informasi selengkapnya, lihat NGroup dengan sampel zona.

    • Kumpulan siaga: Anda dapat menyebarkan kumpulan siaga yang menggunakan zona ketersediaan dengan menentukan satu atau beberapa zona saat Anda membuat atau memperbarui kumpulan. Namun, kontainer mungkin tidak dibuat di beberapa zona. Kumpulan siaga tidak boleh digunakan untuk beban kerja yang memerlukan ketahanan terhadap kegagalan zona. Untuk informasi selengkapnya, lihat Membuat kumpulan siaga untuk Container Instances.

  • Aktifkan dukungan zona ketersediaan pada sumber daya yang ada. Pendekatan yang Anda gunakan untuk mengonfigurasi zona ketersediaan tergantung pada cara Anda membuat grup kontainer.

    • Grup kontainer yang dibuat secara manual: Anda tidak dapat mengaktifkan zona ketersediaan pada grup kontainer nonzonal yang ada. Anda harus menghapus grup kontainer dan membuat grup kontainer zonal.

    • NGroups: Anda tidak dapat mengaktifkan zona ketersediaan pada NGroup nonzonal yang ada. Anda harus menghapus NGroup dan membuat NGroup yang redundan zona.

    • Kumpulan siaga: Anda tidak dapat mengaktifkan zona ketersediaan pada kumpulan siaga nonzonal yang ada. Anda harus menghapus grup kontainer dan membuat kumpulan siaga baru yang menggunakan beberapa zona ketersediaan.

  • Pindahkan grup kontainer antar zona atau nonaktifkan dukungan zona ketersediaan. Pendekatan yang Anda gunakan untuk memodifikasi zona ketersediaan tergantung pada cara Anda membuat grup kontainer.

    • Grup kontainer yang dibuat secara manual: Untuk mengubah zona ketersediaan grup kontainer, Anda harus menghapus grup kontainer dan membuat grup kontainer lain dengan zona ketersediaan baru. Untuk mempelajari cara menghapus grup kontainer, lihat sumber daya berikut ini:

    • NGroups: Anda dapat menambahkan zona ke NGroup, tetapi Anda tidak dapat menghapus zona.

    • Kumpulan siaga: Anda dapat menambahkan zona ke kumpulan siaga, tetapi Anda tidak dapat menghapus zona.

** Distribusi kelompok kontainer

Cara grup kontainer didistribusikan di seluruh zona ketersediaan tergantung pada cara Anda menyebarkan grup kontainer Anda.

  • Grup kontainer yang dibuat secara manual: Anda bertanggung jawab untuk mendistribusikan grup kontainer yang dibuat secara manual di beberapa zona ketersediaan.

  • NGroups: Selama operasi pengurangan skala, NGroups secara acak menghapus instance, yang mungkin tidak menjamin tersebarnya instance di seluruh zona ketersediaan. Operasi peluasan skala mencoba menyeimbangkan kembali sebaran di seluruh zona.

  • Kumpulan siaga: Kumpulan siaga dapat membuat kontainer di salah satu zona ketersediaan yang Anda konfigurasikan di dalam kumpulan. Namun, kontainer mungkin tidak dibuat di beberapa zona. Kumpulan siaga tidak boleh digunakan untuk beban kerja yang memerlukan ketahanan terhadap kegagalan zona.

Perencanaan dan manajemen kapasitas

Untuk mempersiapkan kegagalan zona ketersediaan, pertimbangkan untuk menyediakan jumlah grup kontainer yang Anda sebarkan secara berlebihan . Pendekatan ini memungkinkan solusi untuk mentolerir beberapa kehilangan kapasitas dan terus berfungsi tanpa penurunan performa. Untuk informasi selengkapnya, lihat Mengelola kapasitas dengan menggunakan provisi berlebih.

Pendekatan yang Anda gunakan untuk memprovisi grup kontainer secara berlebihan bergantung pada cara Anda menyebarkan grup kontainer Anda.

  • Grup kontainer yang dibuat secara manual: Anda bertanggung jawab untuk merencanakan kapasitas grup kontainer yang dibuat secara manual, termasuk merencanakan berapa banyak grup kontainer yang akan disebarkan di setiap zona.

  • NGroup: Pertimbangkan untuk menyediakan kapasitas NGroup Anda secara berlebihan untuk mentolerir hilangnya zona.

  • Kumpulan siaga: Kumpulan siaga tidak dirancang untuk tahan terhadap kegagalan zona. Pertimbangkan untuk menggunakan beberapa kumpulan siaga di zona yang berbeda, atau gunakan NGroup.

Operasi normal

Bagian ini menjelaskan apa yang diharapkan ketika sumber daya Container Instances dikonfigurasi untuk dukungan zona ketersediaan dan semua zona ketersediaan beroperasi.

  • Perutean lalu lintas antar zona: Anda bertanggung jawab untuk merutekan lalu lintas ke kontainer Anda. Misalnya, Anda dapat menggunakan Azure Application Gateway sebagai gateway dan load balancer untuk grup kontainer Anda.

    Jika Anda menggunakan NGroup atau kumpulan siaga, Anda bertanggung jawab atas penyeimbangan beban di setiap kontainer. Anda juga perlu mengonfigurasi sistem perutean lalu lintas untuk mendeteksi kesehatan setiap grup kontainer dan mengalihkan lalu lintas ke grup alternatif jika diperlukan.

  • Replikasi data antar zona: Kontainer dan grup kontainer tidak memiliki status. Anda dapat melampirkan berbagi file Anda sendiri, atau menyambungkan ke database atau layanan penyimpanan lainnya dari dalam aplikasi Anda. Anda bertanggung jawab untuk memastikan bahwa sistem berbagi dan layanan penyimpanan tersebut berketahanan zona. Tinjau panduan keandalan untuk setiap layanan untuk memahami cara membuat setiap zona komponen tangguh.

Pengalaman penutupan zona

Bagian ini menjelaskan apa yang diharapkan ketika sumber daya Container Instances dikonfigurasi untuk dukungan zona ketersediaan dan ada pemadaman zona ketersediaan.

  • Deteksi dan respons: Tanggung jawab untuk deteksi kegagalan zona dan respons terkait bergantung pada cara Anda menyebarkan grup kontainer Anda.

    • Grup kontainer yang dibuat secara manual: Anda perlu mendeteksi hilangnya zona ketersediaan dan memulai failover ke grup kontainer sekunder yang Anda buat di zona ketersediaan lain.

    • NGroups: Platform Container Instances bertanggung jawab untuk mendeteksi kegagalan di zona ketersediaan dan merespons.

      Namun, Anda bertanggung jawab untuk memastikan bahwa lalu lintas dirutekan ke kontainer di zona sehat.

    • Pool cadangan: Platform Container Instances tidak dapat menjamin respons terhadap kegagalan zona untuk pool cadangan. Kumpulan siaga tidak boleh digunakan untuk beban kerja yang memerlukan ketahanan terhadap kegagalan zona.

  • Pemberitahuan: Container Instances tidak memberi tahu Anda saat zona tidak berfungsi. Namun, Anda dapat menggunakan Azure Service Health untuk memahami kesehatan keseluruhan layanan Container Instances, termasuk kegagalan zona apa pun.

    Siapkan pemberitahuan untuk menerima pemberitahuan masalah tingkat zona. Untuk informasi selengkapnya, lihat Membuat pemberitahuan Service Health di portal Microsoft Azure.

  • Permintaan aktif: Jika zona gagal, semua kontainer yang berjalan di zona tersebut kemungkinan akan berhenti, termasuk pekerjaan aktif apa pun yang mereka tangani

  • Kehilangan data yang diharapkan: Karena kontainer dan grup kontainer tidak memiliki status, tidak ada kehilangan data yang diharapkan dari kegagalan zona. Namun, Anda bertanggung jawab untuk memastikan bahwa setiap komponen dalam beban kerja Anda tangguh zona, termasuk layanan penyimpanan dan database.

  • Waktu henti yang diharapkan: Waktu henti yang dapat Anda harapkan dari kegagalan zona tergantung pada cara Anda menyebarkan grup kontainer Anda.

    • Grup kontainer yang dibuat secara manual: Untuk grup kontainer zonal, ketika zona tidak tersedia, grup kontainer Anda dan kontainernya tidak tersedia hingga zona ketersediaan pulih.

    • NGroups: Untuk NGroup, jika satu zona tidak berfungsi, aplikasi Anda tetap tersedia karena grup kontainer yang tersisa dalam NGroup terus berjalan di zona lain. Tidak diperkirakan ada downtime.

    • Kumpulan siaga: Kumpulan siaga tidak memberikan ketahanan zona. Jika semua grup kontainer di kumpulan siaga berada dalam satu zona, ada kemungkinan bahwa semua grup kontainer dan kontainernya menjadi tidak tersedia sampai zona ketersediaan pulih.

  • Pengalihan lalu lintas: Karena Anda bertanggung jawab untuk merutekan lalu lintas ke kontainer, Anda juga bertanggung jawab untuk mengalihkan lalu lintas jika grup kontainer gagal karena pemadaman zona ketersediaan.

Pemulihan zona

Setelah zona pulih, platform Azure secara otomatis memulai ulang grup kontainer yang telah berhenti. Tidak perlu tindakan pelanggan.

Pengujian kegagalan zona

Tidak ada cara untuk mensimulasikan pemadaman zona ketersediaan yang berisi grup kontainer Anda. Namun, Anda dapat mengonfigurasi gateway upstream atau load balancer secara manual untuk mengalihkan lalu lintas ke grup kontainer yang berbeda di zona ketersediaan yang berbeda.

Dukungan multi-wilayah

Container Instances adalah layanan wilayah tunggal. Jika wilayah menjadi tidak tersedia, grup kontainer Anda beserta kontainernya juga tidak tersedia.

Pendekatan multi-wilayah alternatif

Anda dapat secara opsional menyebarkan grup kontainer terpisah di beberapa wilayah. Anda bertanggung jawab untuk menyebarkan dan mengonfigurasi grup kontainer di setiap wilayah. Anda juga perlu mengonfigurasi penyeimbangan beban dengan menggunakan layanan seperti Azure Traffic Manager atau Azure Front Door. Anda bertanggung jawab atas sinkronisasi data, failover, dan failback.

Perjanjian tingkat layanan

Perjanjian tingkat layanan (SLA) untuk layanan Azure menjelaskan ketersediaan yang diharapkan dari setiap layanan dan kondisi yang harus dipenuhi solusi Anda untuk mencapai harapan ketersediaan tersebut. Untuk informasi selengkapnya, lihat SLA untuk layanan online.