Mengonfigurasi Azure App Service
Setelah aplikasi Anda dideploy, langkah selanjutnya adalah mengonfigurasi berbagai aspek Azure App Service agar berjalan optimal dan aman. Di bagian ini, kita akan membahas domain kustom, autentikasi, dan pengaturan aplikasi.
Mengonfigurasi domain kustom
Secara default, App Service Anda dapat diakses melalui URL seperti your-app-name.azurewebsites.net. Untuk aplikasi produksi, Anda kemungkinan ingin menggunakan nama domain sendiri. Berikut cara menyiapkan domain kustom:
- Beli domain dari registrar domain jika Anda belum memilikinya
- Di App Service Anda, buka "Custom domains" di sidebar kiri
- Klik "Add custom domain"
- Masukkan nama domain Anda (mis.,
myapp.example.com) - Ikuti instruksi untuk memverifikasi kepemilikan domain
- Anda perlu menambahkan record
TXTatauCNAMEpada pengaturan DNS Anda

Untuk apex domain (seperti example.com tanpa www), Anda perlu membuat record A yang mengarah ke alamat IP App Service Anda. Anda dapat menemukan alamat IP ini di halaman konfigurasi domain kustom.
Anda juga dapat mengelola domain kustom menggunakan Azure CLI:
# Add a custom domain
az webapp config hostname add --webapp-name MyWebApp --resource-group MyResourceGroup --hostname www.example.com
Mengikat sertifikat SSL
Untuk aplikasi yang aman, terutama yang menangani data sensitif, penting untuk mengaktifkan HTTPS. Azure App Service mempermudah ini dengan menyediakan sertifikat terkelola gratis atau memungkinkan Anda mengunggah sertifikat sendiri.
Untuk menambahkan sertifikat SSL:
- Di App Service Anda, buka "TLS/SSL settings"
- Pilih "Private Key Certificates"
- Pilih salah satu opsi berikut:
- Buat sertifikat terkelola App Service gratis
- Impor sertifikat App Service
- Unggah sertifikat PFX
- Setelah sertifikat ditambahkan, buka "Bindings"
- Tambahkan binding SSL untuk domain kustom Anda
Untuk aplikasi data yang menangani informasi sensitif, saya menyarankan mengaktifkan mode HTTPS-only untuk memastikan seluruh lalu lintas terenkripsi:
- Di "TLS/SSL settings", buka bagian "HTTPS Only"
- Alihkan sakelar ke "On"
- Klik "Save"
Mengonfigurasi autentikasi dan otorisasi
Banyak aplikasi data memerlukan autentikasi pengguna untuk mengontrol akses ke data atau fungsionalitas sensitif. Azure App Service menyediakan opsi autentikasi bawaan yang dapat menghemat Anda dari penerapan logika autentikasi dalam kode.
Untuk menyiapkan autentikasi:
- Di App Service Anda, buka "Authentication" di sidebar kiri
- Klik "Add identity provider"
- Pilih penyedia identitas Anda:
- Microsoft (Azure AD)
- GitHub
- OpenID Connect
- Konfigurasikan pengaturan penyedia
- Siapkan URL pengalihan dan konfigurasi penyimpanan token

Untuk aplikasi data enterprise, Azure Active Directory sering menjadi pilihan utama karena terintegrasi dengan identitas korporat yang ada dan mendukung fitur seperti akses bersyarat dan autentikasi multi-faktor.
Anda juga dapat mengonfigurasi pembatasan otorisasi untuk mengontrol siapa yang dapat mengakses aplikasi Anda:
- Di pengaturan Authentication, pilih "Edit" di sebelah penyedia identitas Anda
- Di bawah "Restrict access", pilih salah satu opsi berikut:
- Izinkan permintaan tidak terautentikasi
- Wajibkan autentikasi
- Izinkan permintaan anonim (tanpa tindakan)
- Konfigurasikan URL pengalihan eksternal yang diizinkan jika diperlukan
App settings dan connection strings
Kita telah membahas sekilas app settings sebelumnya, namun mari dalami cara menggunakannya untuk mengonfigurasi aplikasi data Anda secara efektif.
App settings di Azure App Service berfungsi sebagai variabel lingkungan untuk aplikasi Anda. Ini sangat berguna untuk:
- String koneksi database
- Kunci API
- Feature flag
- Konfigurasi spesifik lingkungan
Untuk menambah atau mengubah app settings:
- Di App Service Anda, buka "Configuration" di sidebar kiri
- Pilih tab "Application settings"
- Klik "New application setting" untuk menambahkan pasangan key-value
- Untuk nilai sensitif, Anda dapat mengaktifkan opsi "deployment slot setting" untuk mencegahnya tertukar saat swap slot

Untuk aplikasi data, pengaturan umum meliputi:
- String koneksi database
- Kunci akses storage account
- Endpoint model machine learning
- Feature flag untuk A/B testing
Anda juga dapat mengonfigurasi connection strings secara terpisah, yang berguna untuk koneksi database:
- Di halaman Configuration, pilih tab "Connection strings"
- Klik "New connection string"
- Berikan nama, nilai, dan jenis (SQL Server, MySQL, PostgreSQL, dll.)
Connection strings juga tersedia bagi aplikasi Anda sebagai variabel lingkungan, namun dengan konvensi penamaan yang berbeda tergantung bahasa/kerangka kerja Anda.
Untuk mengambil pengaturan di aplikasi Python Anda:
import os
# Retrieve an application setting
api_key = os.environ.get('API_KEY')
# Retrieve a connection string (Python)
connection_string = os.environ.get('SQLCONNSTR_MyDatabase')
Menggunakan referensi Key Vault
Untuk informasi yang sangat sensitif seperti kredensial database atau kunci API, Azure Key Vault menyediakan lapisan keamanan tambahan. Anda dapat mereferensikan secret Key Vault langsung di app settings:
- Buat Azure Key Vault dan tambahkan secret Anda
- Pastikan App Service Anda memiliki managed identity
- Beri hak akses pada identity ke Key Vault
- Di app settings Anda, referensikan secret dengan format: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
Pendekatan ini memisahkan informasi sensitif dari konfigurasi aplikasi dan menyediakan manajemen secret terpusat.
Menskalakan dan Mengelola Azure App Service
Sekarang aplikasi Anda telah dideploy dan dikonfigurasi, mari fokus memastikan performanya baik, tetap andal, dan beradaptasi dengan beban kerja yang berubah.
Menskalakan dan mengelola Azure App Service dengan tepat sangat penting untuk aplikasi data, yang sering memiliki kebutuhan sumber daya variabel dan mungkin memproses informasi sensitif.
Menskalakan App Service plan
Salah satu keuntungan utama platform cloud seperti Azure adalah kemampuan untuk menskalakan sumber daya naik atau turun sesuai permintaan. Untuk aplikasi data, ini sangat berharga karena beban kerja sering kali sangat bervariasi, dari periode pemrosesan data intensif hingga waktu senggang dengan lalu lintas minimal.
Azure App Service menawarkan dua metode skalasi utama:
Skala vertikal (Scale up/down)
Skala vertikal melibatkan perubahan ukuran App Service plan Anda untuk menyediakan lebih atau kurang CPU, memori, dan ruang disk. Ini berguna saat performa aplikasi Anda dibatasi oleh sumber daya dari satu instance.
Untuk skala vertikal:
- Di App Service plan Anda, pilih "Scale up (App Service plan)" di sidebar kiri
- Pilih tier harga atau ukuran instance yang berbeda sesuai kebutuhan
- Klik "Apply"

Untuk aplikasi data, pertimbangkan skala vertikal ketika:
- Aplikasi Anda mengalami tekanan memori karena operasi pemrosesan data besar
- Anda mencapai batas CPU saat inferensi model
- Anda membutuhkan penyimpanan tambahan untuk caching data atau file sementara
Skala horizontal (Scale out/in)
Skala horizontal mengubah jumlah instance mesin virtual yang menjalankan aplikasi Anda. Pendekatan ini ideal untuk mendistribusikan beban dan meningkatkan ketersediaan.
Untuk skala horizontal:
- Di App Service plan Anda, pilih "Scale out (App Service plan)" di sidebar kiri
- Atur jumlah instance secara manual atau konfigurasikan aturan auto-scaling
- Klik "Save"
Untuk skala manual, cukup sesuaikan jumlah instance sesuai keinginan. Namun, auto-scaling memberikan fleksibilitas lebih dengan menyesuaikan sumber daya secara otomatis berdasarkan metrik.
Menyiapkan aturan auto-scaling
Auto-scaling sangat berharga untuk aplikasi data dengan beban kerja variabel. Misalnya, API penyajian model machine learning mungkin mengalami lalu lintas lebih tinggi selama jam kerja dan lebih rendah di malam hari.
Untuk mengonfigurasi auto-scaling:
- Di bagian "Scale out", pilih "Enable autoscale"
- Tentukan kondisi skala dengan komponen berikut:
- Jumlah instance default
- Aturan scale-out (kapan menambah instance)
- Aturan scale-in (kapan mengurangi instance)
- Aturan berbasis jadwal opsional

Berikut contoh aturan auto-scaling yang umum:
- Scale out: Tambah satu instance ketika persentase CPU > 70% selama 10 menit
- Scale in: Kurangi satu instance ketika persentase CPU < 30% selama 10 menit
Anda juga dapat membuat aturan yang lebih canggih berdasarkan:
- Penggunaan memori
- Panjang antrean data
- Metrik kustom dari Application Insights
Untuk beban kerja data science, pertimbangkan strategi auto-scaling berikut:
- Jika aplikasi Anda menyajikan model ML, skala berdasarkan panjang antrean permintaan agar latensi prediksi tetap rendah
- Untuk proses ETL, jadwalkan kapasitas tambahan selama jendela pemrosesan yang diketahui
- Untuk aplikasi dengan pengguna global, gunakan scaling berbasis jadwal untuk memastikan kapasitas memadai di berbagai zona waktu
Anda juga dapat mengonfigurasi auto-scaling menggunakan Azure CLI:
# Create an autoscale setting with a rule to scale out when CPU > 70%
az monitor autoscale create --resource-group MyResourceGroup --resource MyAppServicePlan --resource-type "Microsoft.Web/serverfarms" --name MyAutoScaleConfig --min-count 2 --max-count 5 --count 2
# Add a scale out rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale out 1 --condition "Percentage CPU > 70 avg 10m"
# Add a scale in rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale in 1 --condition "Percentage CPU < 30 avg 10m"
Pemantauan dan Diagnostik
Pemantauan yang efektif sangat penting untuk mempertahankan aplikasi data yang andal. Azure menyediakan alat pemantauan komprehensif yang memberi Anda visibilitas terhadap performa aplikasi, pola penggunaan, dan potensi masalah.
Azure Monitor dan Application Insights
Azure Monitor adalah fondasi untuk memantau layanan Azure, sementara Application Insights memberikan wawasan yang lebih mendalam khusus aplikasi.
Untuk mengaktifkan Application Insights bagi App Service Anda:
- Di App Service Anda, pilih "Application Insights" di sidebar kiri
- Klik "Turn on Application Insights"
- Konfigurasikan resource Application Insights baru atau yang sudah ada
- Klik "Apply"

Setelah diaktifkan, Application Insights mengumpulkan banyak data tentang aplikasi Anda, termasuk:
- Tingkat permintaan, waktu respons, dan tingkat kegagalan
- Panggilan dependensi (database, API eksternal)
- Performa tampilan halaman
- Log pengecualian
- Event kustom yang Anda definisikan di kode
Untuk aplikasi Python, Anda perlu memasang SDK Application Insights:
pip install opencensus-ext-azure
Lalu tambahkan instrumentasi ke aplikasi Anda:
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
# Configure the Azure exporter
azure_exporter = AzureExporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'
)
# Create a tracer
tracer = Tracer(exporter=azure_exporter, sampler=ProbabilitySampler(1.0))
# Use the tracer in your application
with tracer.span(name="main_function"):
# Your code here
pass
Melihat log dan menyiapkan peringatan
Azure App Service secara otomatis mengumpulkan log yang dapat membantu Anda mendiagnosis masalah:
- Di App Service Anda, pilih "Log stream" untuk melihat log waktu nyata
- Untuk analisis lebih rinci, buka "Diagnostic logs" dan aktifkan application logging
- Konfigurasikan level log (Error, Warning, Information, Verbose)

Untuk aplikasi data, beri perhatian khusus pada:
- Out of memory exception, yang umum saat memproses dataset besar
- Timeout koneksi ke sumber data
- Bottleneck performa saat operasi transformasi data
Menyiapkan peringatan memastikan Anda diberi tahu akan masalah sebelum berdampak pada pengguna:
- Di Azure Monitor, pilih "Alerts"
- Klik "New alert rule"
- Pilih App Service Anda sebagai resource
- Tentukan kondisi yang harus memicu peringatan
- Konfigurasikan action group untuk menentukan siapa yang diberi tahu dan bagaimana caranya
- Beri nama peringatan Anda dan simpan
Peringatan umum untuk aplikasi data meliputi:
- Penggunaan memori tinggi (>80%)
- Kesalahan server (respons 5xx)
- Waktu pemrosesan lama untuk operasi kunci
- Upaya koneksi data yang gagal
Pemantauan kustom untuk aplikasi data
Untuk kebutuhan pemantauan khusus data, pertimbangkan untuk melacak metrik kustom berikut:
- Throughput pemrosesan data (rekor yang diproses per menit)
- Latensi inferensi model
- Waktu perhitungan fitur
- Rasio hit/miss cache
Anda dapat mengirim metrik kustom ke Application Insights menggunakan SDK:
from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation, measure, stats, view
# Create a metrics exporter
exporter = metrics_exporter.new_metrics_exporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
# Create and record custom metrics
prediction_time = measure.MeasureFloat(
"prediction_time", "Time taken for model inference", "ms")
prediction_time_view = view.View(
"prediction_time_view", "Model inference time", [], prediction_time, aggregation.LastValueAggregation())
# Register the view
stats.stats.view_manager.register_view(prediction_time_view)
# Record metrics
mmap = stats.stats.stats_recorder.new_measurement_map()
mmap.measure_float_put(prediction_time, 175.5) # Record 175.5ms inference time
mmap.record()
# Force metrics to be sent immediately
exporter.export_metrics([])
Pencadangan dan Pemulihan
Aplikasi data sering mengelola informasi berharga, sehingga kemampuan backup dan pemulihan menjadi sangat penting. Azure App Service menyediakan fungsionalitas backup bawaan yang dapat menangkap file aplikasi Anda, konfigurasi, dan database yang terhubung.
Menyiapkan backup otomatis
Untuk mengonfigurasi backup:
- Di App Service Anda, pilih "Backups" di sidebar kiri
- Klik "Configure"
- Atur jadwal backup (harian, mingguan, atau kustom)
- Tentukan storage account untuk file backup
- Opsional sertakan database dalam backup
- Klik "Save"

Untuk aplikasi data, pertimbangkan praktik terbaik backup berikut:
- Jadwalkan backup saat aktivitas rendah
- Pastikan storage account berada di region yang sama dengan App Service Anda untuk backup yang lebih cepat
- Untuk aplikasi dengan perubahan data yang sering, konfigurasikan backup lebih sering
- Ingat bahwa database besar mungkin melebihi batas ukuran backup; pertimbangkan strategi backup khusus database untuk kasus ini
Memulihkan dari backup
Jika Anda perlu memulihkan aplikasi:
- Di bagian Backups, pilih titik backup yang ingin Anda pulihkan
- Klik "Restore"
- Pilih apakah akan memulihkan konten aplikasi, konfigurasi, dan database yang terhubung
- Tentukan target App Service (bisa sama atau aplikasi yang berbeda)
- Klik "OK" untuk memulai proses pemulihan
Untuk aplikasi data yang kritis, saya merekomendasikan menguji proses pemulihan secara berkala untuk memastikan strategi pemulihan Anda berjalan sebagaimana mestinya.
Strategi backup khusus database
Meskipun backup App Service dapat menyertakan database yang terhubung, aplikasi yang intensif data sering mendapatkan manfaat dari strategi backup khusus database:
- Untuk Azure SQL database, konfigurasikan backup otomatis dengan point-in-time restore
- Untuk Cosmos DB, gunakan mode continuous backup
- Untuk dataset besar yang disimpan di Azure Storage, pertimbangkan replikasi dan versioning storage account
Keamanan dan Kepatuhan di Azure App Service
Keamanan adalah hal utama untuk aplikasi data, terutama yang menangani informasi sensitif atau yang diatur. Azure App Service menyediakan beberapa fitur keamanan untuk membantu melindungi aplikasi Anda.
Role-based access control (RBAC)
RBAC memungkinkan Anda mengontrol siapa yang dapat mengelola resource App Service Anda:
- Di Azure Portal, navigasikan ke App Service Anda
- Pilih "Access control (IAM)" di sidebar kiri
- Klik "Add" lalu "Add role assignment"
- Pilih peran yang sesuai:
- Contributor: Dapat mengelola App Service tetapi tidak dapat memberikan akses ke orang lain
- Reader: Dapat melihat tetapi tidak dapat mengubah apa pun
- Website Contributor: Dapat mengelola website tetapi tidak App Service plan
- Pilih pengguna, grup, atau service principal untuk diberikan peran
- Klik "Save"

Untuk tim data, pertimbangkan membuat peran kustom yang membatasi akses ke operasi tertentu berdasarkan tanggung jawab pekerjaan.
Pembatasan IP dan jaringan
Pembatasan IP memungkinkan Anda mengontrol alamat IP mana yang dapat mengakses App Service Anda:
- Di App Service Anda, pilih "Networking" di sidebar kiri
- Buka "Access Restrictions"
- Klik "Add rule"
- Tentukan rentang alamat IP, aksi (Allow/Deny), prioritas, dan nama
- Klik "Add rule"
Untuk aplikasi data yang terhubung ke resource internal, pertimbangkan:
- VNet Integration: Menghubungkan App Service ke virtual network Anda
- Service Endpoints: Mengamankan koneksi ke layanan Azure seperti SQL dan Storage
- Private Endpoints: Membuat private link ke App Service Anda dari virtual network
Untuk menyiapkan VNet Integration:
- Di bagian Networking, pilih "VNet Integration"
- Klik "Add VNet"
- Pilih atau buat virtual network dan subnet
- Klik "OK"
Integrasi ini sangat berguna untuk menghubungkan dengan aman ke database atau sumber data lain di dalam jaringan Anda.
Pemecahan Masalah Umum di Azure App Service
Bahkan dengan perencanaan yang matang, masalah dapat muncul pada App Service Anda. Berikut beberapa masalah umum dan solusinya, dengan fokus pada skenario aplikasi data.
Mendiagnosis crash aplikasi
Jika aplikasi Anda crash atau tidak responsif:
- Periksa log App Service:
- Buka "Log stream" untuk log waktu nyata
- Periksa "Diagnostic logs" untuk data historis
- Gunakan Application Insights untuk mengidentifikasi pengecualian
- Jalankan alat diagnostik Kudu:
- Arahkan ke
https://<your-app-name>.scm.azurewebsites.net/DebugConsole - Gunakan konsol untuk memeriksa file dan proses
Penyebab umum crash pada aplikasi data meliputi:
- Batas memori: Pemrosesan dataset besar dapat melampaui memori yang tersedia
- Masalah dependensi: Paket yang hilang atau tidak kompatibel
- Kesalahan konfigurasi: String koneksi atau variabel lingkungan yang tidak tepat
Untuk operasi yang intensif memori, pertimbangkan untuk:
- Menskalakan ke tier yang lebih tinggi dengan memori lebih besar
- Menerapkan chunking data untuk memproses batch yang lebih kecil
- Menggunakan algoritme atau struktur data yang lebih efisien
Debugging masalah performa
Jika aplikasi Anda berjalan lambat:
- Gunakan pemantauan performa Application Insights:
- Periksa blade Performance untuk mengidentifikasi permintaan yang lambat
- Cari panggilan dependensi yang mungkin menyebabkan bottleneck
- Tinjau metrik server di Azure Monitor:
- Utilisasi CPU dan memori
- Panjang antrean HTTP
- Periksa performa kueri database untuk operasi berat data
Untuk meningkatkan performa:
- Terapkan caching untuk kueri yang sering
- Optimalkan indeks database
- Pertimbangkan scaling up atau out
- Gunakan operasi asinkron untuk proses yang berjalan lama
Meninjau log dan pesan kesalahan
Azure App Service menyediakan beberapa opsi logging:
- Application logs: Log dari aplikasi Anda sendiri
- Web server logs: Log permintaan HTTP dan kesalahan
- Deployment logs: Informasi tentang proses deployment Anda
- Detailed error logging: Informasi lebih lanjut tentang kesalahan HTTP
Untuk mengonfigurasi logging yang lebih rinci:
- Di App Service Anda, buka "Diagnostic logs"
- Aktifkan jenis log yang sesuai
- Atur level yang sesuai (Error, Warning, Information, Verbose)
- Pilih apakah akan menyimpan log di file system atau blob storage
Untuk aplikasi Python, Anda dapat meningkatkan logging dengan:
import logging
import sys
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler(sys.stdout)
]
)
# Use logging in your application
logger = logging.getLogger(__name__)
logger.info("Processing data batch")
logger.error("Failed to connect to database", exc_info=True)
Manajemen Biaya dengan Azure App Service
Aplikasi data sering mengonsumsi sumber daya yang signifikan, sehingga memahami dan mengoptimalkan biaya menjadi sangat penting. Pada bagian terakhir ini, kita akan membahas model harga Azure App Service dan strategi untuk mengelola biaya secara efektif.
Memahami penetapan harga Azure App Service
Harga Azure App Service terutama didasarkan pada App Service plan yang Anda pilih. Mari uraikan faktor biaya yang perlu dipertimbangkan:
Tier App Service plan
Seperti yang telah kita bahas, Azure menawarkan beberapa tier harga, masing-masing dengan kapabilitas dan biaya yang berbeda:
|
Tier |
Kisaran biaya bulanan (USD) |
Fitur |
Terbaik untuk |
|
Free |
$0 |
Penyimpanan 1GB, infrastruktur bersama, komputasi 60 menit/hari |
Pengembangan, pembelajaran |
|
Shared (D1) |
$10-15 |
Penyimpanan 1GB, komputasi 240 menit/hari |
Situs lalu lintas rendah, pengujian |
|
Basic (B1-B3) |
$55-220 |
VM khusus, skala manual, domain kustom |
Beban kerja produksi, lalu lintas rendah hingga sedang |
|
Standard (S1-S3) |
$70-400 |
Auto-scaling, staging slots, backup harian |
Aplikasi produksi dengan lalu lintas variabel |
|
Premium (P1V2-P3V2) |
$80-500 |
Kinerja ditingkatkan, opsi scaling lebih banyak |
Kebutuhan kinerja tinggi, aplikasi besar |
|
Isolated |
$300-1000+ |
Isolasi jaringan/komputasi khusus |
Aplikasi dengan persyaratan kepatuhan ketat |
Catatan: Harga bersifat perkiraan dan dapat bervariasi menurut region atau perubahan harga Azure. Untuk informasi terbaru, lihat halaman harga resmi.
Faktor biaya tambahan
Selain App Service plan dasar, pertimbangkan biaya tambahan berikut:
- Transfer data keluar: Setelah 5GB pertama per bulan (gratis), transfer data keluar dikenakan biaya. Untuk aplikasi data yang menyajikan dataset besar ke pengguna, ini bisa signifikan.
- Sertifikat SSL: Meskipun Azure menyediakan sertifikat gratis, sertifikat kustom memiliki biaya tersendiri.
- Domain kustom: Domain kustom pertama gratis, tetapi domain tambahan mungkin dikenakan biaya.
- Penyimpanan: Penyimpanan tambahan di luar yang termasuk dalam tier Anda dikenakan biaya.
- Add-on dan layanan terhubung: Database, layanan caching, dan resource Azure lainnya yang terhubung ke App Service Anda memiliki biaya masing-masing.
Memantau biaya
Azure menyediakan alat untuk memantau dan memperkirakan pengeluaran Anda:
- Azure cost management: Akses di Azure Portal untuk melihat biaya per resource, menetapkan anggaran, dan membuat peringatan.
- Kalkulator harga: Gunakan Azure Pricing Calculator untuk memperkirakan biaya sebelum deployment.
- Rekomendasi Advisor: Azure Advisor menyediakan saran optimasi biaya berdasarkan pola penggunaan Anda.
> Untuk mengelola biaya, keamanan, dan performa secara efektif di seluruh layanan Azure, kursus Azure Management and Governance ini sangat direkomendasikan.
Strategi optimasi biaya
Setelah memahami model harga, mari jelajahi strategi untuk mengoptimalkan biaya aplikasi data di Azure App Service.
Menentukan ukuran App Service plan yang tepat
Salah satu cara paling efektif untuk mengontrol biaya adalah memastikan Anda menggunakan App Service plan yang sesuai:
- Mulai dengan baseline yang tepat: Alih-alih langsung memilih plan tier tinggi, mulailah dengan plan menengah dan skala naik hanya jika diperlukan.
- Pantau pemanfaatan sumber daya: Gunakan Azure Monitor untuk melacak CPU, memori, dan penggunaan disk. Jika secara konsisten di bawah 50%, pertimbangkan untuk menurunkan ukuran.
- Sesuaikan tier dengan beban kerja Anda: Untuk aplikasi data dengan beban kerja stabil dan terprediksi, tier Basic atau Standard mungkin cukup. Cadangkan tier Premium untuk aplikasi dengan kebutuhan performa menuntut.
Untuk aplikasi data science, pertimbangkan rekomendasi khusus berikut:
- API penyajian model dengan kebutuhan latensi rendah namun lalu lintas sedang sering berjalan baik pada plan Standard dengan auto-scaling.
- Pipeline pemrosesan data yang berjalan terjadwal sering dapat menggunakan plan Basic jika waktu pemrosesan tidak kritis.
- Dasbor interaktif dengan banyak pengguna konkuren biasanya memerlukan plan Standard atau Premium untuk menjaga responsivitas.
Menggunakan auto-scaling secara efektif
Auto-scaling tidak hanya untuk menangani lonjakan lalu lintas—ini juga alat optimasi biaya yang kuat:
- Scale to zero bila memungkinkan: Untuk aplikasi non-kritis atau lingkungan pengembangan, pertimbangkan menurunkan ke minimum nol instance saat di luar jam kerja.
- Tetapkan ambang scaling yang tepat: Jangan terlalu agresif saat scale out. Mulai dengan ambang konservatif (seperti 70% CPU) dan sesuaikan berdasarkan pengamatan performa.
- Terapkan scaling terjadwal: Untuk beban kerja yang terprediksi, gunakan aturan scaling terjadwal alih-alih auto-scaling berbasis metrik. Misalnya, skala naik saat jam kerja dan turun pada malam dan akhir pekan.
# Example: Create a scheduled autoscale rule to scale down at night
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale to 1 --condition "Current time is between 22:00 and 06:00 recurring"
Mengoptimalkan lingkungan pengembangan dan pengujian
Lingkungan pengembangan dan pengujian menawarkan peluang penghematan biaya yang signifikan:
- Gunakan tier Free atau Shared untuk lingkungan pengembangan bila memungkinkan.
- Terapkan auto-shutdown untuk lingkungan non-produksi saat di luar jam kerja. Walau App Service tidak memiliki fitur shutdown bawaan, Anda dapat menggunakan Azure Automation atau Logic Apps untuk menghentikan dan memulai aplikasi sesuai jadwal.
- Manfaatkan deployment slot secara efisien: Alih-alih memelihara lingkungan terpisah untuk staging, gunakan deployment slot dalam satu App Service produksi. Pendekatan ini memungkinkan Anda bertukar lingkungan tanpa menggandakan biaya.
# Create a staging slot
az webapp deployment slot create --name MyWebApp --resource-group MyResourceGroup --slot staging
# Swap staging to production
az webapp deployment slot swap --name MyWebApp --resource-group MyResourceGroup --slot staging --target-slot production
Optimasi biaya khusus data
Untuk aplikasi data, pertimbangkan pendekatan penghematan biaya khusus berikut:
- Mengalihkan pemrosesan berat: Alih-alih melakukan pemrosesan data berat di App Service, pertimbangkan menggunakan layanan khusus seperti Azure Functions (untuk pemrosesan serverless) atau Azure Data Factory (untuk workflow ETL).
- Menerapkan caching: Untuk data yang tidak sering berubah, terapkan caching untuk mengurangi panggilan database dan komputasi. Azure Cache for Redis terintegrasi baik dengan App Service.
- Mengoptimalkan biaya database: Sering kali, database yang terhubung ke App Service Anda berbiaya lebih besar daripada App Service itu sendiri. Pertimbangkan:
- Menggunakan elastic pool untuk SQL database
- Menerapkan pengindeksan yang tepat
- Menggunakan penyimpanan bertingkat untuk data yang jarang diakses
- Kompresi respons: Untuk aplikasi yang menyajikan dataset besar ke pengguna, aktifkan kompresi untuk mengurangi biaya transfer data keluar:
# Example for Flask applications
from flask import Flask
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
Teknik Lanjutan untuk Aplikasi Data
Selain optimasi biaya, ada beberapa teknik lanjutan untuk meningkatkan performa dan kapabilitas aplikasi data Anda di Azure App Service.
Membuat container untuk aplikasi data
Container memberikan konsistensi lintas lingkungan dan dapat menyederhanakan manajemen dependensi—tantangan umum pada aplikasi data dengan kebutuhan kompleks:
- Di Azure Portal, buat Web App baru
- Pilih "Docker Container" alih-alih "Code" untuk opsi publish
- Pilih Single Container dan tentukan image Docker Anda
Untuk aplikasi data science, pertimbangkan memelihara image container dasar dengan pustaka umum seperti NumPy, pandas, dan scikit-learn untuk mempercepat deployment.
Menerapkan CI/CD untuk workflow data
Melampaui CI/CD dasar, pertimbangkan menerapkan pengujian otomatis khusus untuk aplikasi data:
- Pengujian validasi data: Memverifikasi bahwa pemrosesan data menghasilkan hasil yang diharapkan
- Pengujian performa model: Memastikan model ML memenuhi ambang akurasi dan performa
- Load testing: Memvalidasi bahwa aplikasi menangani volume data yang diharapkan
Contoh workflow GitHub Actions untuk aplikasi data:
name: Data App CI/CD
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pytest pytest-cov
- name: Test with pytest
run: |
pytest tests/data_validation_tests.py
pytest tests/model_performance_tests.py
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy to Azure
uses: azure/webapps-deploy@v2
with:
app-name: 'my-data-app'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
Menggunakan WebJobs untuk pemrosesan latar belakang
Untuk aplikasi data yang memerlukan pemrosesan latar belakang, Azure WebJobs menyediakan cara menjalankan skrip atau program dalam konteks yang sama dengan App Service Anda:
- Di App Service Anda, buka "WebJobs" di sidebar kiri
- Klik "Add"
- Unggah file skrip Anda (mis., skrip Python untuk pemrosesan data)
- Pilih jenis pemicu (manual, terjadwal, atau kontinu)
- Klik "OK"
WebJobs sangat berguna untuk:
- Pembersihan data terjadwal
- Pembuatan laporan rutin
- Pelatihan ulang model berkala
- Sinkronisasi data antar sistem
Konektivitas hibrida untuk data on-premises
Banyak organisasi memiliki data yang tetap on-premises. Azure App Service dapat terhubung ke data ini menggunakan:
- VNet integration: Menghubungkan App Service Anda ke virtual network yang memiliki konektivitas ke jaringan on-premises melalui ExpressRoute atau VPN.
- Hybrid connections: Alternatif yang lebih sederhana tanpa memerlukan VPN, memungkinkan App Service Anda menjangkau server on-premises tertentu berdasarkan hostname dan port.
Untuk menyiapkan Hybrid Connections:
- Di App Service Anda, pilih "Networking" di sidebar kiri
- Buka "Hybrid Connections"
- Klik "Add hybrid connection"
- Buat yang baru atau gunakan koneksi yang sudah ada
- Tentukan hostname endpoint dan port
- Instal Hybrid Connection Manager di server on-premises Anda
Menerapkan feature flag untuk aplikasi data
Feature flag memungkinkan Anda mengaktifkan fungsionalitas secara selektif, yang bermanfaat untuk A/B testing fitur data atau peluncuran bertahap model baru:
{
"FeatureFlags": {
"NewRecommendationModel": false,
"AdvancedDataFiltering": true
}
}
Baca flag ini di kode Anda:
import os
import json
feature_flags = json.loads(os.environ.get('FeatureFlags', '{}'))
use_new_model = feature_flags.get('NewRecommendationModel', False)
if use_new_model:
# Use new recommendation model
else:
# Use existing model
Pendekatan ini memungkinkan Anda menguji fitur baru pada subset pengguna atau dengan cepat menonaktifkan fitur yang bermasalah tanpa redeployment.
> Untuk mempelajari lebih dalam tentang otomasi deployment model ML, lihat kursus CI/CD untuk Machine Learning ini.
Kesimpulan
Sepanjang tutorial ini, kita telah mempelajari cara menyiapkan, mendeploy, mengonfigurasi, menskalakan, dan mengoptimalkan Azure App Service untuk aplikasi data. Dari membuat App Service pertama hingga menerapkan fitur lanjutan seperti auto-scaling dan konektivitas hibrida, kini Anda memiliki pengetahuan untuk memanfaatkan platform Azure bagi beban kerja data Anda.
Hal-hal penting
- Azure App Service menyediakan platform terkelola sepenuhnya yang memungkinkan praktisi data fokus pada logika aplikasi alih-alih pengelolaan infrastruktur.
- Beragam opsi deployment memungkinkan integrasi mulus dengan alur kerja pengembangan Anda, baik menggunakan GitHub, Azure DevOps, atau repositori Git lokal.
- Kemampuan skalasi memastikan aplikasi Anda dapat menangani beban kerja yang bervariasi, dari pengujian pengembangan hingga lonjakan lalu lintas produksi.
- Alat pemantauan dan diagnostik bawaan membantu menjaga keandalan dan performa, dengan metrik khusus untuk aplikasi data.
- Strategi optimasi biaya memungkinkan Anda memaksimalkan nilai sekaligus meminimalkan pengeluaran, sangat penting untuk beban kerja data yang intensif sumber daya.
Langkah selanjutnya
Untuk melanjutkan perjalanan Azure App Service Anda, pertimbangkan untuk mengeksplorasi:
- Integrasi dengan Azure ML: Deploy model yang dilatih di Azure Machine Learning ke App Service Anda untuk inferensi.
- Azure Functions: Untuk komputasi event-driven, serverless yang melengkapi aplikasi App Service Anda.
- Azure API Management: Untuk mengamankan dan mengelola API yang mengekspos layanan data Anda.
- Azure Logic Apps: Untuk otomasi workflow antara App Service dan sumber data lainnya.
- Track Microsoft Azure Fundamentals juga merupakan sumber yang sangat baik jika Anda mempersiapkan sertifikasi atau menginginkan pembelajaran terstruktur.
Ingat bahwa lanskap cloud berkembang pesat, jadi tetap pantau halaman pembaruan Azure untuk fitur dan layanan baru yang dapat meningkatkan aplikasi data Anda!

Latar belakang teknis yang luas mencakup pembelajaran mesin, sains data, pemodelan kuantitatif, rekayasa perangkat lunak, DevOps, dan komputasi awan.

Mendeploy aplikasi secara efisien kini sama pentingnya dengan mengembangkannya. Sebagai praktisi data, saya sering menemukan bahwa meskipun kita menghabiskan banyak waktu menyempurnakan model dan aplikasi, proses deployment terkadang terasa seperti urusan belakangan. Di sinilah Azure App Service berperan—platform yang menyederhanakan proses deployment sekaligus menyediakan fitur andal untuk skalabilitas, keamanan, dan pemantauan.
Dalam tutorial komprehensif ini, saya akan memandu Anda menyiapkan, mendeploy, dan menskalakan aplikasi di Azure App Service.
Baik Anda praktisi data junior yang ingin mendeploy aplikasi pertama atau profesional berpengalaman yang ingin mengoptimalkan infrastruktur cloud, panduan ini akan memberikan langkah-langkah praktis dan praktik terbaik.
Apa itu Azure App Service?
Azure App Service adalah layanan Platform as a Service (PaaS) dari Microsoft yang memungkinkan Anda membangun dan menghosting aplikasi web tanpa harus mengelola infrastruktur dasarnya. Layanan ini dirancang untuk mendukung berbagai bahasa dan kerangka kerja pemrograman, termasuk Python, Java, Node.js, .NET, dan lainnya.
Sebelum masuk ke proses penyiapan, mari pahami mengapa Azure App Service sangat berharga bagi para praktisi data:
Sebagai data scientist atau engineer, Anda mungkin bertanya-tanya bagaimana App Service berbeda dari penawaran Azure lain seperti Azure Functions atau Azure Kubernetes Service. Perbedaannya yang utama adalah App Service menyediakan titik tengah yang ideal—lebih fleksibel daripada opsi serverless tetapi kurang kompleks daripada platform orkestrasi container.
> Untuk gambaran dasar ekosistem dan layanan Azure, jelajahi kursus pengantar Microsoft Azure ini.
Menyiapkan Azure App Service
Sekarang kita memahami apa itu Azure App Service, mari kita mulai menyiapkan App Service pertama kita. Prosesnya mencakup dua langkah utama: membuat App Service plan dan kemudian membuat web app di dalam plan tersebut.
Membuat Azure App Service plan
App Service plan menentukan sumber daya komputasi, region, dan tingkat harga untuk aplikasi Anda. Anggap saja sebagai server farm tempat aplikasi Anda akan berjalan. Beberapa aplikasi dapat berbagi satu App Service plan, sehingga hemat biaya untuk menjalankan beberapa aplikasi kecil sekaligus.
Berikut cara membuat App Service plan:
Berbicara tentang tier harga, Azure App Service menawarkan beberapa opsi:
Tier
Fitur
Terbaik untuk
Free
Penyimpanan 1GB, infrastruktur bersama, komputasi 60 menit/hari
Pengembangan dan pengujian
Shared
Penyimpanan 1GB, komputasi 240 menit/hari
Aplikasi lalu lintas rendah, pengembangan
Basic
Penyimpanan 10GB, VM khusus, domain kustom
Beban kerja produksi dengan lalu lintas sedang
Standard
Penyimpanan 50GB, auto-scaling, staging slots
Aplikasi produksi dengan lalu lintas lebih tinggi
Premium
Penyimpanan 250GB, kinerja ditingkatkan, opsi scaling lebih banyak
Aplikasi enterprise, kebutuhan kinerja tinggi
Untuk aplikasi data, saya biasanya merekomendasikan mulai setidaknya dengan tier Basic di produksi, karena pemrosesan data sering membutuhkan sumber daya lebih besar daripada sekadar menyajikan web. Jika Anda menyajikan model machine learning yang membutuhkan komputasi signifikan, pertimbangkan tier Standard karena kemampuan auto-scaling-nya.
Anda juga dapat membuat App Service plan menggunakan Azure CLI:
Membuat web app App Service
Setelah Anda memiliki App Service plan, Anda dapat membuat web app di dalamnya. Web app adalah instance aplikasi yang akan menjalankan kode Anda.
Ikuti langkah-langkah berikut untuk membuat web app:
myapp.azurewebsites.net)Jika Anda menggunakan Azure CLI, Anda dapat membuat web app dengan satu perintah:
Setelah membuat web app, Azure akan menyediakan sumber daya yang diperlukan. Setelah selesai, Anda dapat masuk ke web app baru dengan mengklik "Go to resource" atau menemukannya di resource group Anda.
Pada tahap ini, Anda akan melihat halaman default saat mengunjungi URL aplikasi Anda (
https://your-app-name.azurewebsites.net). Ini menandakan aplikasi Anda berjalan, meski belum memuat kode Anda—kita akan membahas deployment pada bagian berikutnya.Mengonfigurasi pengaturan aplikasi dasar
Sebelum melanjutkan ke deployment, mari atur beberapa konfigurasi dasar untuk aplikasi kita. Untuk aplikasi data, Anda mungkin memerlukan variabel lingkungan tertentu untuk koneksi database atau kunci API.
Untuk mengonfigurasi pengaturan aplikasi:
Anda juga dapat mengaturnya menggunakan Azure CLI:
Pengaturan ini akan tersedia sebagai variabel lingkungan bagi aplikasi Anda, yang merupakan cara aman untuk menyimpan konfigurasi tanpa hardcode di sumber kode.
Mendeploy Aplikasi Pertama Anda
Setelah infrastruktur Azure App Service kita siap, saatnya mendeploy aplikasi. Azure App Service menawarkan berbagai metode deployment, memberi Anda fleksibilitas sesuai alur kerja dan preferensi. Pada bagian ini, kita akan membahas cara mendeploy aplikasi menggunakan source control (GitHub atau Azure Repos), FTP, dan repositori Git lokal.
Sebagai praktisi data, langkah ini krusial karena menjembatani kesenjangan antara lingkungan pengembangan lokal dan aplikasi siap produksi yang dapat menyajikan model atau pipeline pemrosesan data Anda.
> Bagi yang baru pada prinsip deployment, kursus DevOps ini memberikan pengantar yang jelas tentang konsep inti dan alatnya.
Deploy dari GitHub atau Azure Repos
Salah satu fitur terkuat Azure App Service adalah kemampuan continuous deployment (CD) bawaan. Dengan menghubungkan App Service Anda ke repositori GitHub atau Azure DevOps, Anda dapat secara otomatis mendeploy perubahan setiap kali kode didorong ke cabang tertentu.
Pendekatan ini sangat berharga bagi tim data yang mengerjakan proyek kolaboratif, karena:
> Jika Anda baru dengan version control, track GitHub Foundations dapat membantu Anda mempelajari dasar-dasarnya. Anda juga dapat menjelajahi Azure DevOps sebagai alternatif andal untuk mengelola pipeline deployment dan version control.
Berikut cara menyiapkan continuous deployment dari GitHub:
Azure akan membuat file workflow GitHub di repositori Anda yang secara otomatis membangun dan mendeploy aplikasi setiap kali perubahan didorong ke branch yang dipilih. Workflow ini menggunakan GitHub Actions untuk menangani proses CI/CD.
> Untuk mengotomatisasi deployment lebih lanjut, pertimbangkan menggabungkan Makefile dengan GitHub Actions untuk alur kerja CI/CD yang lebih ringkas.
Untuk aplikasi Python, workflow biasanya mencakup langkah-langkah untuk:
requirements.txtAnda juga dapat menyiapkan continuous deployment menggunakan Azure CLI:
Mengonfigurasi pengaturan deployment
Untuk menyetel deployment secara lebih halus, Anda dapat mengonfigurasi pengaturan tambahan di file workflow GitHub atau di Azure Portal:
Untuk aplikasi data science, Anda mungkin perlu menambahkan langkah build kustom yang memasang paket sains atau menjalankan skrip pelatihan model. Ini dapat ditambahkan langsung ke file workflow di repositori Anda.
Deploy menggunakan FTP atau Git lokal
Meskipun continuous deployment dari GitHub atau Azure Repos direkomendasikan untuk lingkungan tim, terkadang Anda memerlukan metode deployment yang lebih langsung. Azure App Service mendukung FTP dan Git lokal untuk skenario ini.
Deployment FTP
Deployment FTP adalah cara langsung untuk mengunggah file aplikasi Anda secara langsung ke Azure App Service. Metode ini berguna untuk pembaruan cepat atau saat Anda menangani aplikasi yang tidak memerlukan proses build kompleks.
Untuk deploy melalui FTP:
/site/wwwroot/Untuk aplikasi Python, pastikan file
requirements.txtdisertakan dalam unggahan. Azure App Service akan secara otomatis memasang paket yang diperlukan.Deployment Git lokal
Deployment Git lokal memungkinkan Anda mendorong kode dari repositori Git lokal langsung ke Azure. Metode ini memberi Anda lebih banyak kendali atas proses deployment sekaligus memanfaatkan kemampuan version control Git.
Untuk menyiapkan deployment Git lokal:
Saat Anda mendorong kode ke remote Azure, platform akan secara otomatis membangun dan mendeploy aplikasi Anda.
Memantau status deployment
Apa pun metode deployment yang Anda pilih, penting untuk memantau proses deployment guna segera menangkap masalah. Azure menyediakan beberapa cara untuk melacak status deployment:
Jika deployment gagal, log akan memberikan informasi tentang apa yang salah. Masalah umum meliputi:
requirements.txtUntuk memecahkan masalah deployment:
requirements.txtUntuk aplikasi data science, kegagalan deployment sering terjadi karena pemasangan paket berukuran besar atau operasi intensif memori saat startup. Jika Anda menemui masalah ini, pertimbangkan untuk: