Penyediaan infrastruktur dengan slot penyebaran Azure menggunakan Terraform
Terraform memungkinkan definisi, pratinjau, dan penyebaran infrastruktur cloud. Menggunakan Terraform, Anda membuat file konfigurasi menggunakan sintaksis HCL. Sintaksis HCL memungkinkan Anda untuk menentukan penyedia cloud - seperti Azure - dan elemen yang membentuk infrastruktur cloud Anda. Setelah membuat file konfigurasi, Anda membuat rencana eksekusi yang memungkinkan Anda untuk melihat pratinjau perubahan infrastruktur Anda sebelum disebarkan. Setelah memverifikasi perubahan, Anda menerapkan rencana eksekusi untuk menyebarkan infrastruktur. Untuk informasi selengkapnya tentang menggunakan Terraform di Azure, lihat pusat pengembang Azure Terraform
Anda dapat menggunakan slot penyebaran Azure untuk bertukar antara berbagai versi dari aplikasi Anda. Kemampuan itu membantu Anda meminimalkan dampak penyebaran yang rusak.
Artikel ini mengilustrasikan contoh penggunaan slot penyebaran dengan memandu Anda melalui penyebaran dua aplikasi melalui GitHub dan Azure. Satu aplikasi dihosting di slot produksi. Aplikasi kedua dihosting dalam slot pementasan. (Nama "produksi" dan "penahapan" bersifat arbitrer. Mereka bisa menjadi apa pun yang sesuai untuk skenario Anda.) Setelah mengonfigurasi slot penyebaran, Anda menggunakan Terraform untuk bertukar antara dua slot sesuai kebutuhan.
Dalam artikel ini, Anda akan mempelajari cara:
- Membuat App Service
- Membuat slot App Service
- Menukar masuk dan keluar slot penyebaran contoh
1. Mengonfigurasi lingkungan Anda
- Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
Konfigurasikan Terraform: Jika Anda belum melakukannya, konfigurasikan Terraform menggunakan salah satu opsi berikut:
- akun GitHub: Anda memerlukan akun GitHub untuk mengambil dan menggunakan repositori GitHub uji.
2. Buat dan terapkan paket Terraform
Telusuri ke portal Microsoft Azure.
Buka Azure Cloud Shell. Jika Anda tidak memilih lingkungan sebelumnya, pilih Bash sebagai lingkungan Anda.

Ubah direktori ke direktori
clouddrivecd clouddriveBuat direktori bernama
deploy.mkdir deployBuat direktori bernama
swap.mkdir swapGunakan perintah bash
lsuntuk memverifikasi Anda telah berhasil membuat kedua direktori.
Ubah direktori ke direktori
deploycd deployPada Cloud Shell, buat file bernama
deploy.tf.code deploy.tfTempelkan kode berikut ke dalam editor:
# Configure the Azure provider provider "azurerm" { # The "feature" block is required for AzureRM provider 2.x. # If you're using version 1.x, the "features" block is not allowed. version = "~>2.0" features {} } resource "azurerm_resource_group" "slotDemo" { name = "slotDemoResourceGroup" location = "westus2" } resource "azurerm_app_service_plan" "slotDemo" { name = "slotAppServicePlan" location = azurerm_resource_group.slotDemo.location resource_group_name = azurerm_resource_group.slotDemo.name sku { tier = "Standard" size = "S1" } } resource "azurerm_app_service" "slotDemo" { name = "slotAppService" location = azurerm_resource_group.slotDemo.location resource_group_name = azurerm_resource_group.slotDemo.name app_service_plan_id = azurerm_app_service_plan.slotDemo.id } resource "azurerm_app_service_slot" "slotDemo" { name = "slotAppServiceSlotOne" location = azurerm_resource_group.slotDemo.location resource_group_name = azurerm_resource_group.slotDemo.name app_service_plan_id = azurerm_app_service_plan.slotDemo.id app_service_name = azurerm_app_service.slotDemo.name }Simpan file (<Ctrl>S), dan keluar dari editor (<Ctrl>Q).
Sekarang setelah Anda membuat file, verifikasi isinya.
cat deploy.tfMenginisialisasi Terraform.
terraform initBuat rencana Terraform.
terraform planProvisikan sumber daya yang ditentukan pada konfigurasi file
deploy.tf. (Konfirmasikan tindakan dengan memasukkanyespada prompt.)terraform applyTutup jendela Cloud Shell.
Di menu utama portal Microsoft Azure, pilih Grup sumber daya.

Pada tab Grup sumber daya, pilih slotDemoResourceGroup.

Anda sekarang melihat semua sumber daya yang dibuat Terraform.

3. Pisahkan proyek uji
Sebelum Anda dapat menguji pembuatan dan menukar masuk dan keluar slot penyebaran, Anda perlu memisahkan proyek pengujian dari GitHub.
Pisahkan repositori terraform yang mengagumkan.

Ikuti petunjuk apa pun untuk memindahkan ke lingkungan Anda.
4. Sebarkan dari GitHub ke slot penyebaran Anda
Setelah Anda memisahkan repositori proyek uji, konfigurasikan slot penyebaran melalui langkah-langkah berikut:
Di menu utama portal Microsoft Azure, pilih Grup sumber daya.
Pilih slotDemoResourceGroup.
Pilih slotAppService.
Pilih Opsi penyebaran.

Pada tab Opsi penyebaran, pilih Memilih Sumber, lalu pilih GitHub.

Setelah Azure membuat koneksi dan menampilkan semua opsi, pilih Otorisasi.
Pada tab Otorisasi, pilih Otorisasi, dan berikan kredensial yang dibutuhkan Azure untuk mengakses akun GitHub Anda.
Setelah Azure memvalidasi kredensial GitHub Anda, sebuah pesan muncul dan menyatakan bahwa proses otorisasi telah selesai. Pilih OK untuk menutup tab Otorisasi.
Pilih Memilih organisasi Anda dan pilih organisasi Anda.
Pilih Memilih proyek.
Pada tab Memilih proyek, pilih proyek terraform-yang mengagumkan.

Pilih Memilih cabang.
Pada tab Memilih cabang, pilih master.

Pada tab Opsi penyebaran, pilih OK.
Pada titik ini, Anda telah menyebarkan slot produksi. Untuk menyebarkan slot pementasan, lakukan langkah-langkah sebelumnya dengan modifikasi berikut:
Di langkah 3, pilih sumber daya slotAppServiceSlotOne.
Pada langkah 13, pilih cabang yang berfungsi.

5. Uji penyebaran aplikasi
Di bagian sebelumnya, Anda menyiapkan dua slot - slotAppService dan slotAppServiceSlotOne - untuk disebarkan dari berbagai cabang di GitHub. Mari kita pratinjau aplikasi web untuk memvalidasi bahwa mereka telah berhasil disebarkan.
Di menu utama portal Microsoft Azure, pilih Grup sumber daya.
Pilih slotDemoResourceGroup.
Pilih slotAppService atau slotAppServiceSlotOne.
Di halaman gambaran umum, pilih URL.

Bergantung pada aplikasi yang dipilih, Anda akan melihat hasil berikut:
- Aplikasi web slotAppService - Halaman biru dengan judul halaman Slot Demo App 1.
- Aplikasi web slotAppServiceSlotOne - Halaman hijau dengan judul halaman Slot Demo App 2.

6. Tukar dua slot penyebaran
Untuk menguji swapping dua slot penyebaran, lakukan langkah-langkah berikut:
Beralih ke tab browser yang menjalankan slotAppService (aplikasi dengan halaman biru).
Kembali ke portal Azure pada tab terpisah.
Buka Cloud Shell.
Ubah direktori ke direktori clouddrive/swap.
cd clouddrive/swapPada Cloud Shell, buat file bernama
swap.tf.code swap.tfTempelkan kode berikut ke dalam editor:
# Configure the Azure provider provider "azurerm" { # The "feature" block is required for AzureRM provider 2.x. # If you're using version 1.x, the "features" block is not allowed. version = "~>2.0" features {} } # Swap the production slot and the staging slot resource "azurerm_app_service_active_slot" "slotDemoActiveSlot" { resource_group_name = "slotDemoResourceGroup" app_service_name = "slotAppService" app_service_slot_name = "slotappServiceSlotOne" }Simpan file (<Ctrl>S), dan keluar dari editor (<Ctrl>Q).
Menginisialisasi Terraform.
terraform initBuat rencana Terraform.
terraform planProvisikan sumber daya yang ditentukan pada konfigurasi file
swap.tf. (Konfirmasikan tindakan dengan memasukkanyespada prompt.)terraform applySetelah Terraform menukar slot, kembali ke browser. Merefresh halaman.
Aplikasi web di slot pementasanslotAppServiceSlotOne Anda telah ditukar dengan slot produksi dan sekarang ditandai dengan warna hijau.

Untuk kembali ke versi produksi asli aplikasi, aplikasikan kembali paket Terraform yang Anda buat dari file konfigurasi swap.tf.
terraform apply
Setelah aplikasi ditukar, Anda akan melihat konfigurasi aslinya.
Memecahkan masalah Terraform pada Azure
Memecahkan masalah umum saat menggunakan Terraform di Azure