0Pricing
Azure Fundamentals · Pelajaran

Slot Penerapan dan Pertukaran

Buat slot penahapan untuk penerapan blue-green, siapkan rilis baru di slot penahapan, lalu tukarkan ke produksi tanpa waktu henti.

Slot Penerapan dan Pertukaran adalah pelajaran Azure Fundamentals gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Azure Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Azure Fundamentals mencakup 4 pelajaran total.

Apa Itu Slot Deployment?

Slot deployment adalah lingkungan aktif dan terpisah untuk aplikasi web App Service, masing-masing dengan nama host sendiri (misalnya, myapp-staging.azurewebsites.net). Slot berbagi paket App Service dan sumber daya yang sama dengan slot Production, tetapi berjalan secara independen. Slot memungkinkan deployment blue-green—Anda memvalidasi rilis baru di slot Staging, lalu menukarnya ke Production tanpa waktu henti. Slot tersedia mulai dari tingkat Standard dan yang lebih tinggi.

Membuat Slot Deployment

Tambahkan slot deployment baru ke aplikasi web Anda menggunakan portal Azure atau CLI. Setiap slot memiliki URL, pengaturan aplikasi, dan string koneksi sendiri. Anda dapat membuat hingga 5 slot pada Standard dan hingga 20 slot pada tingkat Premium. Nama slot yang umum antara lain staging, canary, hotfix, dan integration, yang mencerminkan berbagai tahap alur rilis.

# Create a staging deployment slot
az webapp deployment slot create \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging

# Deploy code to the staging slot
az webapp deploy \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --src-path app.zip

# The staging slot is live at:
# https://MyUniqueWebApp-staging.azurewebsites.net

Mempersiapkan Slot Staging

Sebelum melakukan penukaran, Anda perlu mempersiapkan slot Staging agar versi baru sepenuhnya diinisialisasi. Instans App Service yang belum aktif akan melayani permintaan pertama dengan lambat saat runtime diinisialisasi, dan hal ini tidak dapat diterima di Production. Aktifkan Auto Swap atau kirim permintaan HTTP pemanasan secara manual ke slot Staging. App Service juga mendukung konfigurasi applicationInitialization untuk menentukan jalur pemanasan yang harus mengembalikan 200 sebelum slot dianggap siap.

# web.config snippet for warm-up (IIS/Windows)
# <system.webServer>
#   <applicationInitialization>
#     <add initializationPage='/health' hostName='MyUniqueWebApp-staging.azurewebsites.net'/>
#   </applicationInitialization>
# </system.webServer>

# Or use a startup probe via the App Service health check
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --generic-configurations '{"healthCheckPath": "/health"}'

Menukar Slot

Penukaran secara atomik menukar slot Staging dan Production. Selama penukaran, App Service terlebih dahulu mengarahkan lalu lintas ke instans Staging yang menjalankan kode baru, menunggu hingga instans tersebut diinisialisasi, lalu mengarahkan kembali seluruh lalu lintas Production ke instans baru; instans Production lama menjadi slot Staging yang baru. Dengan demikian, pengembalian perubahan menjadi mudah—cukup lakukan penukaran lagi untuk mengembalikannya.

# Swap staging into production
az webapp deployment slot swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --target-slot production

# Rollback: swap production back to staging
az webapp deployment slot swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot production \
  --target-slot staging

Pengaturan yang Terikat Slot vs. Tidak Terikat

Pengaturan aplikasi dapat ditandai sebagai sticky (khusus slot) atau non-sticky (dapat ditukar). Pengaturan non-sticky berpindah bersama slot deployment saat Anda melakukan penukaran—sehingga string koneksi basis data Staging ikut masuk ke Production bersama kode. Pengaturan sticky tetap berada pada slotnya, apa pun penukarannya—Production selalu mempertahankan string koneksi basis data Production. Tandai pengaturan sebagai sticky menggunakan kotak centang 'deployment slot setting' atau CLI.

# Mark a setting as sticky (slot-specific) -- it won't swap
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --slot-settings DATABASE_URL='postgresql://staging-db/...'

# Set a non-sticky setting (it WILL travel with a swap)
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --settings FEATURE_FLAG_NEW_UI=true

Membagi Lalu Lintas untuk Rilis Canary

App Service mendukung pembagian lalu lintas—mengarahkan persentase lalu lintas Production ke slot non-Production tanpa melakukan penukaran penuh. Fitur ini memungkinkan rilis canary, yaitu Anda mengalihkan lalu lintas secara bertahap dari 5% ke 10% lalu ke 50% setelah semakin yakin terhadap rilis baru, sambil memantau tingkat kesalahan pada setiap tahap. Pengguna yang masuk ke slot canary menerima kuki sticky yang mempertahankan mereka pada versi yang sama demi konsistensi sesi.

# Route 10% of traffic to the staging slot (canary)
az webapp traffic-routing set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --distribution staging=10

# View current traffic distribution
az webapp traffic-routing show \
  --name MyUniqueWebApp \
  --resource-group MyRG

# Reset all traffic to production
az webapp traffic-routing clear \
  --name MyUniqueWebApp \
  --resource-group MyRG

Auto Swap

Auto Swap secara otomatis menukar slot Staging ke Production setiap kali kode baru diterapkan ke slot tersebut. Fitur ini ideal untuk alur CI/CD ketika Anda ingin setiap penerapan yang berhasil langsung tersedia untuk pengguna. Auto Swap menunggu hingga permintaan HTTP slot Staging mengembalikan 200 sebelum menyelesaikan penukaran. Aktifkan fitur ini per slot melalui portal atau CLI—namun gunakan dengan hati-hati karena tidak ada tahap persetujuan manual antara penerapan dan Production.

# Enable Auto Swap for the staging slot
az webapp deployment slot auto-swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --auto-swap-slot production

# Disable Auto Swap
az webapp deployment slot auto-swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --disable

Praktik Terbaik Slot Deployment

Ikuti praktik terbaik berikut untuk slot deployment: selalu memvalidasi di Staging sebelum menukar ke Production, gunakan pengaturan sticky agar koneksi basis data Production tetap terpisah dari Staging, jalankan pengujian asap terhadap URL slot Staging setelah penerapan, konfigurasikan jalur pemeriksaan kesehatan agar App Service tidak menyelesaikan penukaran jika versi baru tidak sehat, dan beri tag pada penerapan Anda agar Anda dapat melacak commit mana yang aktif di setiap slot.

Slot dalam Alur CI/CD

Dalam alur CI/CD yang umum, tahap build mengompilasi dan menguji kode, tahap deploy mengirim artefak ke slot Staging, tahap pengujian integrasi menjalankan pengujian otomatis terhadap URL Staging, dan tahap swap menukar Staging ke Production—secara opsional dengan persetujuan manual sebagai syarat. Pola ini didukung secara bawaan di Azure Pipelines dan GitHub Actions dengan tindakan penerapan App Service.

# GitHub Actions step: deploy to staging slot
# - name: Deploy to Staging Slot
#   uses: azure/webapps-deploy@v2
#   with:
#     app-name: MyUniqueWebApp
#     slot-name: staging
#     publish-profile: ${{ secrets.AZURE_STAGING_PUBLISH_PROFILE }}
#
# - name: Swap to Production
#   uses: azure/CLI@v1
#   with:
#     inlineScript: |
#       az webapp deployment slot swap \
#         --name MyUniqueWebApp \
#         --resource-group MyRG \
#         --slot staging

Memantau Kesehatan Penukaran

Selama dan setelah penukaran slot, pantau metrik penting di Azure Monitor untuk memastikan versi baru sehat. Perhatikan lonjakan kesalahan HTTP 5xx, waktu respons rata-rata, dan pemanfaatan CPU/memori. Siapkan peringatan metrik yang aktif jika tingkat kesalahan melampaui ambang batas—ini memberi Anda sinyal untuk segera melakukan penukaran kembali. Deteksi cerdas Application Insights dapat secara otomatis memberi tahu Anda tentang anomali setelah penerapan.

# Create an alert rule for HTTP 5xx errors post-swap
az monitor metrics alert create \
  --name 'HighErrorRate' \
  --resource-group MyRG \
  --scopes '/subscriptions/.../providers/Microsoft.Web/sites/MyUniqueWebApp' \
  --condition 'avg Http5xx > 10' \
  --window-size 5m \
  --evaluation-frequency 1m \
  --action-group MyActionGroup

Slot vs. Beberapa Aplikasi

Slot deployment lebih disarankan daripada memelihara aplikasi App Service yang sepenuhnya terpisah untuk Staging dan Production karena slot berbagi paket yang sama (tanpa biaya tambahan), memiliki penukaran sekali klik dengan pengembalian perubahan, mendukung pembagian lalu lintas, dan dikelola dalam sumber daya App Service yang sama. Gunakan aplikasi terpisah hanya jika Staging memerlukan SKU paket yang pada dasarnya berbeda, persyaratan isolasi, atau penagihan yang sepenuhnya terpisah.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini Anda telah mempelajari bahwa slot deployment menyediakan lingkungan terisolasi yang memungkinkan deployment blue-green, pengaturan yang terikat slot menjaga konfigurasi khusus lingkungan (seperti URL basis data) tetap terkait dengan slot, bukan dengan kode, dan pembagian lalu lintas memungkinkan rilis canary dengan mengarahkan persentase lalu lintas Production ke versi baru. Berikutnya kita akan membahas penskalaan otomatis dan domain khusus.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Slot Penerapan dan Pertukaran” gratis?

Ya — teks lengkap “Slot Penerapan dan Pertukaran” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Azure Fundamentals, upgrade ke CoddyKit PRO. Kursus Azure Fundamentals mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Slot Penerapan dan Pertukaran”?

Buat slot penahapan untuk penerapan blue-green, siapkan rilis baru di slot penahapan, lalu tukarkan ke produksi tanpa waktu henti. Kamu berlatih Azure Fundamentals dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Azure Fundamentals?

Tidak diperlukan pengalaman sebelumnya. Azure Fundamentals di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Slot Penerapan dan Pertukaran” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Azure Fundamentals ini?

Ya. Setiap pelajaran Azure Fundamentals menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Rencana App Service dan Aplikasi Web
  2. Slot Penerapan dan Pertukaran
  3. Penskalaan Otomatis dan Domain Kustom
  4. Autentikasi dan Jaringan App Service
← Kembali ke Azure Fundamentals