Skala Terdistribusi Geografis dengan Lingkungan App Service

Gambaran Umum

Skenario aplikasi yang membutuhkan skala sangat tinggi yang dapat melebihi kapasitas sumber daya komputasi yang tersedia untuk satu penyebaran aplikasi. Aplikasi pemungutan suara, acara olahraga, dan acara hiburan yang disiarkan televisi adalah semua contoh skenario yang membutuhkan skala sangat tinggi. Persyaratan skala tinggi dapat dipenuhi dengan menskalakan aplikasi secara horizontal. Untuk menangani kebutuhan beban yang ekstrem, banyak penyebaran aplikasi dapat dilakukan dalam satu wilayah dan di seluruh wilayah.

Lingkungan App Service adalah platform yang ideal untuk perluasan skala horizontal. Setelah memilih konfigurasi Lingkungan App Service yang dapat mendukung tingkat permintaan yang diketahui, pengembang dapat menyebarkan Lingkungan App Service tambahan dalam mode "pemotong cookie" untuk mencapai kapasitas beban puncak yang diinginkan.

Misalnya, aplikasi yang berjalan pada konfigurasi Lingkungan App Service telah diuji untuk menangani 20K permintaan per detik (RPS). Jika kapasitas beban puncak yang diinginkan adalah 100K RPS, lima (5) Lingkungan App Service dapat dibuat dan dikonfigurasi untuk memastikan bahwa aplikasi dapat menangani beban maksimum yang diproyeksikan.

Karena pelanggan biasanya mengakses aplikasi menggunakan domain kustom (atau vanity), pengembang memerlukan cara untuk mendistribusikan permintaan aplikasi ke semua instans Lingkungan App Service. Cara yang bagus untuk mencapai tujuan ini adalah dengan menyelesaikan domain kustom menggunakan profil Azure Traffic Manager. Profil Traffic Manager dapat dikonfigurasi untuk mengarah ke semua Lingkungan App Service individual. Traffic Manager akan secara otomatis menangani distribusi pelanggan ke semua Lingkungan App Service, berdasarkan pengaturan penyeimbangan beban di profil Traffic Manager. Pendekatan ini akan berfungsi terlepas dari apakah semua Lingkungan App Service disebarkan dalam satu wilayah Azure, atau disebarkan ke seluruh dunia di beberapa wilayah Azure.

Selain itu, karena pelanggan mengakses aplikasi melalui domain vanity, pelanggan tidak menyadari jumlah Lingkungan App Service yang menjalankan aplikasi. Akibatnya pengembang dapat dengan cepat dan mudah menambahkan, dan menghapus, Lingkungan App Service berdasarkan beban lalu lintas yang diamati.

Diagram konseptual di bawah ini menggambarkan aplikasi yang diperluas skalanya secara horizontal di tiga Lingkungan App Service dalam satu wilayah.

Diagram arsitektur konseptual layanan aplikasi terdistribusi geografis dengan Traffic Manager.

Sisa topik ini membahas langkah-langkah yang terlibat dengan penyiapan topologi terdistribusi untuk aplikasi contoh menggunakan beberapa Lingkungan App Service.

Merencanakan Topologi

Sebelum membangun jejak aplikasi terdistribusi, akan membantu jika Anda memiliki beberapa informasi terlebih dahulu.

  • Domain kustom untuk aplikasi: Apa nama domain kustom yang akan digunakan pelanggan untuk mengakses aplikasi? Untuk contoh aplikasi, nama domain kustom adalah www.asabuludemo.com.
  • Domain Traffic Manager: Pilih nama domain saat membuat profil Azure Traffic Manager. Nama ini akan digabungkan dengan akhiran trafficmanager.net untuk mendaftarkan entri domain yang dikelola oleh Traffic Manager. Untuk aplikasi contoh, nama yang dipilih adalah scalable-ase-demo. Akibatnya nama domain lengkap yang dikelola oleh Traffic Manager adalah scalable-ase-demo.trafficmanager.net.
  • Strategi untuk menskalakan jejak aplikasi: Apakah jejak aplikasi akan didistribusikan ke beberapa Lingkungan App Service dalam satu wilayah? Beberapa wilayah? Campuran dari kedua pendekatan? Landaskan keputusan pada ekspektasi tempat lalu lintas pelanggan akan berasal, dan seberapa baik infrastruktur lain di ujung belakang pendukung aplikasi dapat menskalakan. Misalnya, dengan aplikasi 100% tanpa status, aplikasi dapat diskalakan secara besar-besaran menggunakan kombinasi dari banyak Lingkungan App Service di setiap wilayah Azure, dikalikan dengan Lingkungan App Service yang disebarkan di banyak wilayah Azure. Dengan 15+ wilayah Azure global yang tersedia untuk dipilih, pelanggan dapat benar-benar membangun jejak aplikasi skala hiper di seluruh dunia. Untuk contoh aplikasi yang digunakan untuk artikel ini, tiga Lingkungan App Service dibuat dalam satu wilayah Azure (US Tengah Selatan).
  • Konvensi penamaan untuk Lingkungan App Service: Setiap Lingkungan App Service memerlukan nama yang unik. Selain satu atau dua Lingkungan App Service, sangat berguna untuk memiliki konvensi penamaan untuk membantu mengidentifikasi setiap Lingkungan App Service. Untuk aplikasi contoh, konvensi penamaan sederhana digunakan. Nama ketiga Lingkungan App Service adalah fe1ase, fe2ase, dan fe3ase.
  • Konvensi penamaan untuk aplikasi: Karena beberapa instans aplikasi akan disebarkan, nama diperlukan untuk setiap instans aplikasi yang disebarkan. Salah satu fitur Lingkungan App Service yang tidak banyak diketahui tetapi sangat memudahkan adalah nama aplikasi yang sama dapat digunakan di beberapa Lingkungan App Service. Karena setiap Lingkungan App Service memiliki akhiran domain yang unik, pengembang dapat memilih untuk menggunakan kembali nama aplikasi yang sama persis di setiap lingkungan. Misalnya, pengembang dapat memiliki aplikasi bernama sebagai berikut: myapp.foo1.p.azurewebsites.net, myapp.foo2.p.azurewebsites.net, myapp.foo3.p.azurewebsites.net, dll. Namun, untuk contoh aplikasi, setiap instans aplikasi juga memiliki nama yang unik. Nama instans aplikasi yang digunakan adalah webfrontend1, webfrontend2, dan webfrontend3.

Menyiapkan Profil Traffic Manager

Setelah beberapa instans aplikasi disebarkan di beberapa Lingkungan App Service, instans aplikasi individual dapat didaftarkan dengan Traffic Manager. Untuk contoh aplikasi, profil Traffic Manager diperlukan untuk scalable-ase-demo.trafficmanager.net yang dapat merutekan pelanggan ke salah satu instans aplikasi yang disebarkan berikut:

  • webfrontend1.fe1ase.p.azurewebsites.net: Instans aplikasi contoh yang disebarkan di Lingkungan App Service pertama.
  • webfrontend2.fe2ase.p.azurewebsites.net: Instans aplikasi contoh yang disebarkan di Lingkungan App Service kedua.
  • webfrontend3.fe3ase.p.azurewebsites.net: Instans aplikasi contoh yang disebarkan di Lingkungan App Service ketiga.

Cara termudah untuk mendaftarkan beberapa titik akhir Azure App Service, yang semuanya berjalan di wilayah Azure yang sama, adalah dengan dukungan Traffic Manager Azure Resource Manager PowerShell.

Langkah pertama adalah membuat profil Azure Traffic Manager. Kode di bawah ini menunjukkan cara profil dibuat untuk aplikasi contoh:

$profile = New-AzTrafficManagerProfile –Name scalableasedemo -ResourceGroupName yourRGNameHere -TrafficRoutingMethod Weighted -RelativeDnsName scalable-ase-demo -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"

Perhatikan bagaimana parameter RelativeDnsName diatur ke scalable-ase-demo. Parameter ini menyebabkan nama domain scalable-ase-demo.trafficmanager.net dibuat dan dikaitkan dengan profil Traffic Manager.

Parameter TrafficRoutingMethod menentukan kebijakan penyeimbangan beban yang akan digunakan Traffic Manager untuk menentukan cara menyebarkan beban pelanggan ke semua titik akhir yang tersedia. Dalam contoh ini, metode Tertimbang dipilih. Karena pilihan ini, permintaan pelanggan akan tersebar di semua titik akhir aplikasi terdaftar berdasarkan bobot relatif yang terkait dengan setiap titik akhir.

Dengan profil yang dibuat, setiap instans aplikasi ditambahkan ke profil sebagai titik akhir Azure native. Kode berikut mengambil referensi ke setiap aplikasi web ujung depan. Kode tersebut kemudian menambahkan setiap aplikasi sebagai titik akhir Traffic Manager melalui parameter TargetResourceId.

$webapp1 = Get-AzWebApp -Name webfrontend1
Add-AzTrafficManagerEndpointConfig –EndpointName webfrontend1 –TrafficManagerProfile $profile –Type AzureEndpoints -TargetResourceId $webapp1.Id –EndpointStatus Enabled –Weight 10

$webapp2 = Get-AzWebApp -Name webfrontend2
Add-AzTrafficManagerEndpointConfig –EndpointName webfrontend2 –TrafficManagerProfile $profile –Type AzureEndpoints -TargetResourceId $webapp2.Id –EndpointStatus Enabled –Weight 10

$webapp3 = Get-AzWebApp -Name webfrontend3
Add-AzTrafficManagerEndpointConfig –EndpointName webfrontend3 –TrafficManagerProfile $profile –Type AzureEndpoints -TargetResourceId $webapp3.Id –EndpointStatus Enabled –Weight 10

Set-AzTrafficManagerProfile –TrafficManagerProfile $profile

Perhatikan bagaimana ada satu panggilan ke Add-AzureTrafficManagerEndpointConfig untuk setiap instans aplikasi individual. Parameter TargetResourceId di setiap perintah PowerShell mereferensikan salah satu dari tiga instans aplikasi yang disebarkan. Profil Traffic Manager akan menyebarkan beban di ketiga titik akhir yang terdaftar di profil.

Ketiga titik akhir menggunakan nilai yang sama (10) untuk parameter Bobot. Situasi ini mengakibatkan Traffic Manager menyebarkan permintaan pelanggan ke ketiga instans aplikasi secara relatif merata.

Mengarahkan Domain Kustom Aplikasi di Domain Traffic Manager

Langkah terakhir yang diperlukan adalah mengarahkan domain kustom aplikasi di domain Traffic Manager. Untuk contoh aplikasi, arahkan www.asabuludemo.com ke scalable-ase-demo.trafficmanager.net. Selesaikan langkah ini dengan pendaftar domain yang mengelola domain kustom.

Dengan alat manajemen domain pendaftar Anda, data CNAME harus dibuat yang mengarahkan domain kustom ke domain Traffic Manager. Gambar di bawah ini memperlihatkan contoh seperti apa konfigurasi CNAME ini:

Cuplikan layar mengonfigurasi data CNAME di DNS.

Meskipun tidak tercakup dalam topik ini, ingatlah bahwa setiap instans aplikasi individual juga perlu memiliki domain kustom yang terdaftar dengannya. Jika tidak, ketika permintaan berhasil sampai ke instans aplikasi, dan aplikasi belum mendaftarkan domain kustom dengan aplikasi, permintaan akan gagal.

Dalam contoh ini, domain kustomnya adalah www.asabuludemo.com, dan setiap instans aplikasi memiliki domain kustom yang terkait dengannya.

Cuplikan layar pengaturan domain kustom App Service.

Untuk rekap terkait mendaftarkan domain kustom dengan aplikasi Azure App Service, lihat mendaftarkan domain kustom.

Mencoba Topologi Terdistribusi

Hasil akhir dari konfigurasi Traffic Manager dan DNS adalah permintaan untuk www.asabuludemo.com akan mengalir melalui urutan berikut:

  1. Browser atau perangkat akan membuat pencarian DNS untuk www.asabuludemo.com
  2. Entri CNAME di pendaftar domain menyebabkan pencarian DNS dialihkan ke Azure Traffic Manager.
  3. Pencarian DNS dibuat untuk scalable-ase-demo.trafficmanager.net terhadap salah satu server DNS Azure Traffic Manager.
  4. Berdasarkan kebijakan penyeimbangan beban yang ditentukan sebelumnya dalam parameter TrafficRoutingMethod, Traffic Manager memilih salah satu dari titik akhir yang dikonfigurasi. Kemudian mengembalikan FQDN titik akhir tersebut ke browser atau perangkat.
  5. Karena FQDN dari titik akhir adalah Url instans aplikasi yang berjalan di Lingkungan App Service, browser atau perangkat akan meminta server Microsoft Azure DNS untuk menyelesaikan FQDN ke alamat IP.
  6. Browser atau perangkat akan mengirim permintaan HTTP/S ke alamat IP.
  7. Permintaan akan tiba di salah satu instans aplikasi yang berjalan di salah satu Lingkungan App Service.

Gambar konsol di bawah ini memperlihatkan pencarian DNS untuk domain kustom aplikasi contoh. Pencarian tersebut berhasil menyelesaikan ke instans aplikasi yang berjalan pada salah satu dari tiga contoh Lingkungan App Service (dalam hal ini, yang kedua dari tiga Lingkungan App Service):

Cuplikan layar hasil pencarian DNS.

Dokumentasi tentang dukungan Traffic Manager Azure Resource Manager PowerShell.

Catatan

Jika Anda ingin mulai menggunakan Azure App Service sebelum mendaftar untuk akun Azure, buka Coba Layanan Aplikasi, di mana Anda dapat segera membuat aplikasi web starter berumur pendek di Layanan Aplikasi. Tidak diperlukan kartu kredit; tidak ada komitmen.