Pertimbangan aplikasi untuk beban kerja Azure VMware Solution

Artikel ini membahas area desain platform aplikasi dari beban kerja Azure VMware Solution. Area ini mencakup tugas dan tanggung jawab tertentu yang terkait dengan penyebaran, konfigurasi, dan pemeliharaan aplikasi yang Anda host di lingkungan Azure VMware Solution. Pemilik aplikasi bertanggung jawab atas aplikasi di lingkungan Azure VMware Solution. Individu atau tim ini mengelola aspek yang terkait dengan penyebaran, konfigurasi, pemantauan, dan pemeliharaan aplikasi.

Tujuan utama dari aplikasi yang dirancang dengan baik meliputi:

  • Merancang untuk skala. Tangani permintaan pengguna yang lebih tinggi dengan baik dan transaksi bersamaan tanpa degradasi atau gangguan layanan.
  • Performa. Memberikan waktu respons latensi rendah yang cepat, dan mengelola pemanfaatan sumber daya secara efisien.
  • Keandalan dan ketahanan. Desain pola yang berlebihan dan toleran terhadap kesalahan untuk membantu memastikan bahwa aplikasi Anda tetap responsif dan pulih dengan cepat dari kegagalan.

Artikel ini bertujuan untuk memberi pengembang, arsitek, dan pemilik aplikasi praktik terbaik yang khusus untuk Azure VMware Solution. Praktik ini dapat membantu Anda membangun aplikasi yang tetap kuat, aman, dapat diskalakan, dan dapat dipertahankan sepanjang siklus hidupnya.

Desain untuk skalabilitas dan distribusi sumber daya yang efisien

Dampak: Keandalan, Efisiensi performa, Keamanan

Bagian ini mencakup alokasi dan pemanfaatan sumber daya komputasi yang efektif di seluruh komputer virtual (VM) dan beban kerja dalam cloud privat Azure VMware Solution. Sumber daya ini dapat mencakup sumber daya CPU, memori, penyimpanan, dan jaringan. Bagian ini juga mengeksplorasi implementasi teknik penskalaan responsif. Anda dapat menggunakan teknik ini untuk menyesuaikan provisi sumber daya secara dinamis untuk mengakomodasi fluktuasi permintaan. Tujuan utamanya adalah untuk mencapai pemanfaatan sumber daya yang optimal dengan mengurangi kurangnya penggunaan dan provisi berlebih yang dapat mengakibatkan inefisiensi dan pengeluaran yang meningkat.

Menggunakan domain kesalahan

Domain kesalahan di Azure VMware Solution mewakili pengelompokan logis sumber daya dalam kluster yang direntangkan. Sumber daya ini berbagi domain kesalahan fisik umum. Domain kesalahan membantu meningkatkan ketersediaan dalam berbagai skenario kegagalan. Mengatur sumber daya ke dalam domain kesalahan membantu memastikan bahwa komponen penting aplikasi tersebar di beberapa domain kegagalan.

Dengan menempatkan VM dan sumber daya lain ke domain kesalahan terpisah, tim aplikasi membantu memastikan bahwa aplikasi tetap tersedia selama pusat data atau kegagalan infrastruktur. Misalnya, Anda dapat memisahkan VM menjadi domain kesalahan yang tersebar di pusat data yang didistribusikan secara geografis. Kemudian aplikasi Anda dapat tetap beroperasi jika satu pusat data mengalami kegagalan penuh.

Tim aplikasi harus mempertimbangkan untuk menentukan afinitas VM-VM dan aturan anti-afinitas yang didasarkan pada domain kesalahan. Aturan afinitas VM-VM menempatkan VM penting di domain kesalahan yang sama untuk memastikan bahwa aturan tersebut tidak tersebar di beberapa pusat data. Aturan anti-afinitas mencegah VM terkait ditempatkan bersama dalam domain kesalahan yang sama. Praktik ini membantu memastikan redundansi.

Menggunakan kebijakan anti-afinitas VM-VM dalam aplikasi tiga tingkat

Dalam Azure VMware Solution, kasus penggunaan untuk kebijakan anti-afinitas VM-VM melibatkan aplikasi tiga tingkat. Tujuannya adalah untuk meningkatkan ketersediaan tinggi, toleransi kesalahan, dan ketahanan setiap tingkat aplikasi. Untuk mencapai tujuan ini, Anda dapat menggunakan kebijakan anti-afinitas untuk menyebarkan tingkatan di berbagai host dalam cloud privat Azure VMware Solution.

Untuk menerapkan kasus penggunaan ini, buat arsitektur terdistribusi dan toleran terhadap kesalahan dengan menggunakan kebijakan anti-afinitas VM-VM di tiga tingkatan. Penyiapan ini meningkatkan ketersediaan seluruh aplikasi dan membantu memastikan bahwa kegagalan satu host tidak mengganggu seluruh tingkatan atau seluruh aplikasi.

Misalnya, di tingkat web front-end yang melayani permintaan pengguna, Anda dapat menerapkan kebijakan anti-afinitas VM-VM untuk menyebarkan server web di berbagai host fisik. Pendekatan ini membantu meningkatkan ketersediaan tinggi dan toleransi kesalahan. Demikian pula, Anda dapat menggunakan langkah-langkah anti-afinitas untuk membantu melindungi server aplikasi di lapisan bisnis dan untuk memperkuat ketahanan data dalam lapisan database.

Diagram arsitektur yang menunjukkan aplikasi tiga tingkat yang disegmentasi dengan menggunakan kebijakan afinitas VM-VM.

Rekomendasi
  • Buat peta yang menunjukkan interdependensi VM, komunikasi, dan pola penggunaan untuk memastikan bahwa kedekatan adalah persyaratan.
  • Menentukan apakah afinitas VM-VM kebijakan penempatan membantu memenuhi metrik performa atau perjanjian tingkat layanan (SLA).
  • Desain untuk ketersediaan tinggi dengan menerapkan kebijakan anti-afinitas VM-VM penempatan untuk melindungi dari kegagalan host dan mendistribusikan aplikasi Anda di beberapa host.
  • Untuk menghindari provisi berlebih, distribusikan beban kerja Anda di seluruh VM kecil daripada beberapa VM besar.
  • Pantau, tinjau, dan sesuaikan kebijakan afinitas secara teratur untuk mengidentifikasi potensi ketidakcocokan sumber daya. Sesuaikan kebijakan ini dari waktu ke waktu sesuai kebutuhan.

Menggunakan kebijakan afinitas host VM untuk isolasi performa

Beberapa beban kerja yang menjalankan VM di tingkat aplikasi yang berbeda berkinerja lebih baik saat dikolokasikan. Kasus penggunaan ini sering terjadi ketika aplikasi memerlukan:

  • Isolasi performa untuk beban kerja komputasi intensif sumber daya dengan performa tinggi.
  • Kepatuhan terhadap perjanjian lisensi. Misalnya, spesifikasi sistem mungkin memerlukan pemetaan yang mengaitkan VM dengan serangkaian inti tertentu untuk mempertahankan kepatuhan terhadap lisensi Windows atau SQL Server.
  • Kepatuhan peraturan dan integritas data untuk memastikan bahwa VM yang termasuk dalam domain keamanan atau klasifikasi data tertentu terbatas pada host tertentu atau subset host dalam kluster.
  • Konfigurasi jaringan yang disederhanakan yang menempatkan VM pada host yang sama. Dalam hal ini, konfigurasi jaringan antar tingkatan disederhanakan. Tingkatan berbagi konektivitas jaringan yang sama dan tidak memerlukan hop jaringan tambahan.

Jika penting untuk mempertahankan kolokasi tingkat aplikasi, Anda dapat memilih kebijakan afinitas host VM untuk memastikan bahwa tingkatan disebarkan pada host yang sama dan dalam zona ketersediaan yang sama.

Diagram arsitektur yang menunjukkan aplikasi tiga tingkat yang disegmentasi dengan menggunakan kebijakan afinitas host VM.

Catatan

Tim platform bertanggung jawab untuk menyiapkan penempatan VM, aturan afinitas host, dan pengumpulan sumber daya. Tetapi tim aplikasi harus memahami persyaratan performa setiap aplikasi untuk memastikan bahwa kebutuhan aplikasi terpenuhi.

Tim aplikasi harus mengevaluasi penempatan VM secara komprehensif dan terlibat dalam perencanaan yang cerdik. Penempatan VM dapat menghadirkan tantangan potensial seperti ketidakseimbangan sumber daya dan distribusi beban kerja yang tidak merata. Situasi ini dapat menyebabkan efek buruk pada performa dan pengoptimalan sumber daya. Selain itu, menempatkan semua beban kerja dalam satu zona ketersediaan dapat menciptakan satu titik kegagalan dalam bencana. Pertimbangkan untuk mereplikasi konfigurasi Anda di beberapa zona ketersediaan untuk meningkatkan ketahanan pusat data selama kegagalan.

Rekomendasi
  • Rencanakan dengan cermat cara Anda menggunakan kebijakan penempatan kebijakan Afinitas host VM. Pertimbangkan solusi alternatif jika memungkinkan, seperti penyeimbangan beban, kumpulan sumber daya di VMware vSphere, database terdistribusi, kontainerisasi, dan zona ketersediaan.
  • Memantau pemanfaatan dan performa sumber daya secara teratur untuk mengidentifikasi ketidakseimbangan atau masalah apa pun.
  • Pilih strategi penempatan VM yang seimbang dan fleksibel. Pendekatan ini membantu Anda memaksimalkan pemanfaatan sumber daya sambil mempertahankan ketersediaan tinggi dan memastikan kepatuhan terhadap persyaratan lisensi.
  • Uji dan validasi konfigurasi afinitas host VM kebijakan penempatan Anda untuk memastikan bahwa mereka selaras dengan persyaratan spesifik aplikasi Anda dan bahwa mereka tidak berdampak negatif pada performa dan ketahanan keseluruhan.

Mendistribusikan lalu lintas dengan menggunakan aplikasi atau penyeimbang beban jaringan

Selain penggunaan kebijakan penempatan, penyeimbangan beban juga merupakan komponen penting dari aplikasi modern untuk membantu memastikan:

  • Distribusi sumber daya yang efisien.
  • Peningkatan ketersediaan aplikasi.
  • Performa aplikasi yang optimal.

Penyeimbangan beban memenuhi kriteria ini sambil mempertahankan fleksibilitas untuk penskalaan dan manajemen beban kerja.

Setelah Anda menyebarkan aplikasi pada VM, pertimbangkan untuk menggunakan alat penyeimbang beban seperti Azure Application Gateway untuk membuat kumpulan back-end. Application Gateway adalah penyeimbang beban lalu lintas web terkelola dan layanan pengiriman aplikasi yang dapat mengelola dan mengoptimalkan lalu lintas HTTP dan HTTPS masuk ke aplikasi web. Sebagai titik masuk untuk lalu lintas web, Application Gateway menawarkan berbagai jenis fungsionalitas. Contohnya termasuk penghentian TLS/SSL, perutean berbasis URL, afinitas sesi, dan kemampuan firewall aplikasi web.

Diagram arsitektur yang menunjukkan bagaimana lalu lintas mengalir dari browser melalui Application Gateway ke kumpulan back-end.

Setelah sumber daya di kumpulan back-end Anda tersedia, buat listener untuk menentukan port dan aturan perutean untuk permintaan masuk. Kemudian Anda dapat membuat pemeriksaan kesehatan untuk memantau kesehatan VM Anda dan untuk menunjukkan kapan harus menghapus sumber daya back-end yang tidak sehat dari rotasi.

Menerapkan penghentian TLS/SSL dan manajemen sertifikat

Enkripsi TLS/SSL perlu diberlakukan untuk semua komunikasi antara aplikasi Anda dan browser pengguna. Enkripsi ini membantu melindungi data sesi dari serangan penyadapan dan man-in-the-middle. Jika aplikasi Anda memerlukan penghentian TLS/SSL, konfigurasikan sertifikat TLS/SSL yang diperlukan dalam Application Gateway untuk membongkar pemrosesan TLS/SSL dari VM back-end Anda.

Setelah Anda membuat sertifikat TLS/SSL, letakkan di layanan seperti Azure Key Vault yang membantu Anda menyimpan dan mengaksesnya dengan aman. Gunakan PowerShell, Azure CLI, atau alat seperti Azure Automation untuk memperbarui dan memperbarui sertifikat.

Mengelola API

Azure API Management membantu Anda menerbitkan titik akhir API yang disebarkan secara internal dan eksternal dengan aman. Contoh titik akhir adalah API back-end yang berada di cloud privat Azure VMware Solution di belakang load balancer atau Application Gateway. API Management membantu Anda mengelola metode dan perilaku API Anda, seperti dengan menerapkan kebijakan keamanan untuk menerapkan autentikasi dan otorisasi. API Management juga dapat merutekan permintaan API ke layanan back-end Anda melalui Application Gateway.

Dalam diagram berikut, lalu lintas dari konsumen melakukan perjalanan ke titik akhir publik API Management. Lalu lintas kemudian diteruskan ke API back-end yang berjalan pada Azure VMware Solution.

Diagram arsitektur pusat data Azure VMware Solution yang tersambung ke hub pusat. Hub menghosting Application Gateway dan API Management.

Rekomendasi
  • Untuk meningkatkan keamanan dan performa aplikasi Azure VMware Solution Anda, gunakan Application Gateway dengan back end Azure VMware Solution untuk mendistribusikan lalu lintas ke titik akhir aplikasi Anda.
  • Pastikan bahwa ada konektivitas antara segmen back-end yang menghosting Azure VMware Solution dan subnet yang berisi Application Gateway atau load balancer.
  • Mengonfigurasi kesehatan terbukti memantau kesehatan instans back-end Anda.
  • Offload penghentian TLS/SSL ke Application Gateway untuk mengurangi overhead pemrosesan pada VM back-end.
  • Simpan kunci TLS/SSL dengan aman di brankas.
  • Menyederhanakan proses dengan mengotomatiskan tugas seperti pembaruan dan perpanjangan sertifikat.

Mengoptimalkan kluster yang direntangkan untuk memperkuat kelangsungan bisnis dan kesiapan pemulihan bencana

Dampak: Keandalan

Kluster yang direntangkan menyediakan kluster VMware dengan ketersediaan tinggi dan kemampuan pemulihan bencana di beberapa pusat data yang didistribusikan secara geografis.

Penyiapan berikut mendukung arsitektur aktif-aktif. Jaringan area penyimpanan virtual (vSAN) mencakup dua pusat data. Zona ketersediaan ketiga memetakan ke saksi vSAN untuk berfungsi sebagai kuorum untuk skenario split-brain.

Diagram arsitektur yang menunjukkan kluster vSAN yang direntangkan di dua zona ketersediaan. Zona ketiga berisi saksi vSAN.

Mendistribusikan aplikasi di beberapa zona dan wilayah ketersediaan membantu memastikan ketersediaan berkelanjutan selama kegagalan pusat data. Sebarkan tingkat aplikasi dan tingkat data di kedua pusat data, dan aktifkan replikasi sinkron.

Mengonfigurasi toleransi kegagalan dan kegagalan untuk mentolerir kebijakan (FTT)

Total kapasitas yang dapat digunakan aplikasi Anda tergantung pada beberapa variabel. Contohnya termasuk konfigurasi array disk independen (RAID) yang berlebihan, nilai atribut Anda failures to tolerate , dan kegagalan untuk mentolerir kebijakan (FTT) yang mengontrol jumlah kegagalan yang dapat ditoleransi sistem penyimpanan Anda. Tim aplikasi perlu menentukan tingkat redundansi yang diperlukan untuk aplikasi. Penting juga untuk dicatat bahwa nilai FTT yang lebih tinggi meningkatkan ketahanan data tetapi meningkatkan overhead penyimpanan.

Rekomendasi
  • Sebarkan aplikasi Anda di seluruh penyimpanan bersama sehingga data VM tetap konsisten di seluruh kluster yang direntangkan. Aktifkan replikasi sinkron.
  • Konfigurasikan domain kesalahan untuk menentukan bagaimana kluster yang direntangkan harus merespons dalam skenario kegagalan.
  • Terapkan failover otomatis dan failback untuk meminimalkan intervensi manual selama peristiwa failover dan pemulihan.

Mengonfigurasi sinkronisasi data dan kebijakan penyimpanan

Metode sinkronisasi data penting ketika aplikasi Anda bergantung pada data dan database stateful untuk memastikan konsistensi dan ketersediaan selama bencana. Sinkronisasi data membantu memberikan ketersediaan tinggi dan toleransi kesalahan untuk VM penting yang menjalankan aplikasi.

Pemilik aplikasi dapat menentukan kebijakan penyimpanan untuk membantu memastikan bahwa:

  • VM penting yang menjalankan aplikasi menerima tingkat redundansi dan performa data yang diperlukan.
  • VM diposisikan untuk memanfaatkan kemampuan ketersediaan tinggi dari kluster yang direntangkan di Azure VMware Solution.

Contoh kebijakan dapat melibatkan faktor-faktor berikut:

  • Konfigurasi vSAN. Gunakan VMware vSAN dengan kluster yang direntangkan di seluruh zona ketersediaan.
  • Jumlah kegagalan yang akan ditoleransi. Atur kebijakan untuk mentolerir setidaknya satu atau beberapa kegagalan. Misalnya, gunakan tata letak RAID-1.
  • Performa. Konfigurasikan pengaturan terkait performa untuk mengoptimalkan IOPS dan latensi untuk VM penting.
  • Aturan afinitas. Siapkan aturan afinitas untuk membantu memastikan VM atau grup VM ditempatkan di host atau domain kesalahan terpisah dalam kluster yang direntangkan untuk memaksimalkan ketersediaan selama kegagalan pusat data.
  • Pencadangan dan replikasi. Tentukan integrasi dengan solusi pencadangan dan replikasi untuk memastikan bahwa data VM secara teratur dicadangkan dan direplikasi ke lokasi sekunder untuk perlindungan data tambahan.
Rekomendasi
  • Tentukan kebijakan penyimpanan data di vSAN untuk menentukan redundansi dan performa yang diperlukan untuk berbagai disk VM.
  • Konfigurasikan aplikasi untuk dijalankan dalam konfigurasi aktif-aktif atau aktif-pasif sehingga komponen aplikasi penting dapat gagal selama kegagalan pusat data.
  • Pahami persyaratan jaringan setiap aplikasi. Aplikasi yang berjalan di seluruh zona ketersediaan dapat menimbulkan latensi yang lebih tinggi daripada aplikasi dengan lalu lintas dalam zona ketersediaan. Rancang aplikasi Anda untuk mentolerir latensi ini.
  • Jalankan pengujian performa pada kebijakan penempatan Anda untuk mengevaluasi dampaknya pada aplikasi Anda.

Langkah berikutnya

Sekarang setelah Anda memeriksa platform aplikasi, lihat cara membangun konektivitas, membuat perimeter untuk beban kerja Anda, dan mendistribusikan lalu lintas secara merata ke beban kerja aplikasi Anda.

Gunakan alat penilaian untuk mengevaluasi pilihan desain Anda.