Mengonfigurasi aplikasi dan mesin virtual

Selesai

Umum untuk membuat aplikasi dan kode kustom lainnya untuk solusi Azure Anda. Aplikasi kustom mungkin mencakup situs web, API, dan aplikasi latar belakang yang berjalan tanpa interaksi manusia. Di unit ini, Anda akan mempelajari cara merancang alur untuk membuat dan menyebarkan aplikasi di samping infrastrukturnya.

Membuat aplikasi

Banyak jenis aplikasi perlu dikompilasi atau dibuat sebelum dapat digunakan. Proses build mengambil kode sumber untuk aplikasi, melakukan urutan aktivitas di atasnya, kemudian membuat satu set file yang dapat digunakan.

Proses build mengompilasi kode sumber ke dalam file biner atau yang dapat dijalankan. Proses build biasanya mencakup aktivitas tambahan, termasuk mengompresi file gambar yang akan disajikan kepada pengguna situs web Anda, lint kode Anda untuk memverifikasi bahwa kode mengikuti praktik pengodean yang baik, dan menjalankan pengujian unit yang memverifikasi perilaku masing-masing bagian aplikasi Anda. Anda juga dapat melakukan langkah-langkah seperti menandatangani file secara digital untuk membantu memastikan bahwa file tersebut tidak dapat dimodifikasi.

Apa pun serangkaian langkahnya, output proses pembuatan adalah artefak yang dapat disebarkan. Artefak biasanya disimpan ke sistem file agen alur. Tahap selanjutnya alur Anda perlu bekerja dengan artefak untuk menyebarkannya melalui lingkungan Anda, dan mengujinya saat berlangsung melalui gerbang kualitas yang Anda definisikan dalam definisi alur Anda.

Catatan

Anda mungkin pernah mendengar istilah integrasi berkelanjutan dan penyebaran berkelanjutan, atau CI dan CD. Proses build berada dalam bagian integrasi berkelanjutan alur Anda.

Artefak alur

Artefak yang dibuat dalam alur Anda tidak disimpan di repositori Git Anda. Artefak berasal dari kode sumber tetapi bukan kode sendiri, sehingga tidak termasuk dalam repositori kontrol sumber. Skrip dibuat di sistem file agen alur. Agen baru dibuat untuk setiap pekerjaan alur, sehingga Anda memerlukan cara untuk berbagi file antara pekerjaan dan agen.

Artefak alur menyediakan cara untuk menyimpan file di Azure Pipelines, dan terkait dengan eksekusi alur tertentu. Anda menggunakan tugas alur bawaan PublishBuildArtifacts guna menginstruksikan Azure Pipelines untuk menerbitkan file atau folder dari sistem file agen sebagai artefak alur:

- task: PublishBuildArtifacts@1
  displayName: Publish folder as a pipeline artifact
  inputs:
    artifactName: my-artifact-name
    pathToPublish: '$(Build.ArtifactStagingDirectory)/my-folder'

Properti pathToPublish adalah lokasi yang berisi kode yang dikompilasi atau file output pada sistem file agen alur. Isi di lokasi ini akan diterbitkan ke artefak. Anda dapat menentukan satu file atau folder.

Setiap artefak memiliki nama, yang Anda tentukan dengan menggunakan properti tugas artifactName. Anda menggunakan nama artefak untuk merujuknya nanti di alur. Pekerjaan dan tahap alur berikutnya dapat mengunduh artefak sehingga dapat bekerja dengannya, misalnya, menyebarkan situs web ke server yang menghostingnya:

Diagram showing a pipeline publishing and then referring to an artifact named 'Website'.

Saat Anda menggunakan pekerjaan penyebaran, artefak alur otomatis diunduh secara default. Jika Anda menggunakan pekerjaan biasa, gunakan tugas DownloadBuildArtifacts untuk mengunduh artefak alur:

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: current
    downloadType: single
    artifactName: my-artifact-name
    downloadPath: '$(System.ArtifactsDirectory)'

Menyebarkan aplikasi

Proses build untuk aplikasi membuat dan menerbitkan artefak yang dapat disebarkan. Tahap alur selanjutnya kemudian menyebarkan artefak. Cara Anda menyebarkan aplikasi tergantung pada layanan yang Anda gunakan untuk menghostingnya.

Menyebarkan ke Azure App Service

Perusahaan mainan Anda menggunakan Azure App Service untuk menghosting situs webnya. Anda dapat membuat dan mengonfigurasi aplikasi App Service dengan menggunakan Bicep, tetapi saat tiba saatnya untuk menyebarkan aplikasi itu sendiri, Anda memiliki beberapa opsi untuk mendapatkan aplikasi yang dikompilasi ke infrastruktur hosting. Opsi ini dikelola sebagai bagian dari data plane App Service.

Pendekatan yang paling umum adalah menggunakan tugas Azure Pipelines AzureRmWebAppDeployment:

- task: AzureRmWebAppDeployment@4
  inputs:
    azureSubscription: MyServiceConnection
    ResourceGroupName: MyResourceGroup
    WebAppName: my-app-service
    Package: '$(Pipeline.Workspace)/my-artifact-name/website.zip'

Anda perlu memberikan beberapa informasi untuk menyebarkan aplikasi Anda ke App Service. Informasi ini mencakup grup sumber daya dan nama sumber daya aplikasi App Service, yang Anda tentukan dengan menggunakan input ResourceGroupName dan WebAppName. Seperti yang Anda pelajari di unit sebelumnya, Anda harus menambahkan output ke file Bicep Anda dan menggunakan variabel alur untuk menyebarkan nama aplikasi melalui alur Anda. Anda juga perlu menentukan file .zip dengan aplikasi untuk menyebarkan dengan menggunakan input Package. Ini biasanya jalan menuju artefak alur.

App Service memiliki sistem autentikasi data plane sendiri yang digunakan untuk penyebaran. Tugas AzureRmWebAppDeployment menangani proses autentikasi secara otomatis untuk Anda:

Diagram illustrating the credential exchange process.

Tugas AzureRmWebAppDeployment menggunakan perwakilan layanan yang terkait dengan koneksi layanan Anda untuk secara otomatis membuat dan mengunduh kredensial yang diperlukan untuk penyebaran . Kemudian menggunakan kredensial penyebaran saat berkomunikasi dengan API data plane App Service .

App Service juga menyediakan beberapa fitur terkait penyebaran lainnya, termasuk slot penyebaran. Slot membantu Anda menyebarkan versi baru aplikasi dengan aman tanpa waktu henti. Slot juga membantu menyediakan dan mempersiapkan versi baru aplikasi sebelum Anda mengirimkan lalu lintas produksi ke aplikasi. Kami tidak menggunakan slot dalam modul ini, tetapi menyediakan tautan ke informasi selengkapnya tentang slot di halaman Ringkasan di akhir modul.

Menyebarkan aplikasi ke layanan Azure lainnya

Azure menyediakan banyak opsi lain untuk menghosting aplikasi Anda, yang masing-masing memiliki pendekatan sendiri untuk penyebaran.

Azure Functions dibuat di App Service, dan menggunakan proses penyebaran yang mirip dengan yang dijelaskan sebelumnya.

Jika menyebarkan ke mesin virtual, Anda biasanya perlu tersambung ke instans mesin virtual untuk menginstal aplikasi Anda. Anda sering kali perlu menggunakan alat khusus, seperti Chef, Puppet, atau Ansible, untuk mengatur penyebaran ke mesin virtual.

Jika menggunakan Kubernetes atau Azure Kubernetes Service (AKS), Anda biasanya akan menggunakan pendekatan yang sedikit berbeda untuk membuat dan menyebarkan solusi Anda. Setelah aplikasi dibuat, alur Anda membuat gambar kontainer dan menerbitkannya ke registri kontainer, yang kemudian dibaca oleh kluster Kubernetes Anda. Karena registri kontainer Anda menyimpan aplikasi yang dikompilasi, Anda umumnya tidak menggunakan artefak alur.

Dalam modul ini, kami berfokus pada Azure App Service untuk mengilustrasikan konsep alur yang terlibat. Di halaman Ringkasan di akhir modul, kami menyediakan tautan ke informasi selengkapnya tentang penyebaran ke layanan hosting lainnya.

Menguji aplikasi di alur Anda

Dalam modul sebelumnya, Anda mempelajari tentang nilai dan pentingnya menjalankan pengujian otomatis dari alur Anda. Saat Anda menggunakan aplikasi, ini adalah praktik yang baik bagi alur untuk menjalankan beberapa pengujian yang memanggil kode aplikasi. Pengujian semacam itu mengurangi risiko bahwa kesalahan aplikasi atau penyebaran dapat menyebabkan waktu henti. Dalam skenario lanjutan, Anda bahkan mungkin melakukan serangkaian kasus pengujian terhadap aplikasi Anda, seperti meminta API atau mengirimkan dan memantau transaksi sintetis.

Banyak aplikasi menerapkan titik akhir pemeriksaan kesehatan. Saat titik akhir pemeriksaan kesehatan menerima permintaan, titik akhir ini melakukan serangkaian pemeriksaan terhadap situs web, seperti memastikan bahwa database dan layanan jaringan dapat dijangkau dari lingkungan aplikasi. Respons yang dikembalikan situs menunjukkan apakah aplikasi tersebut sehat. Pengembang dapat menulis dan menyesuaikan pemeriksaan kesehatan mereka sendiri agar sesuai dengan kebutuhan aplikasi. Jika aplikasi Anda memiliki titik akhir pemeriksaan kesehatan, sering kali masuk akal untuk memantaunya dari alur Anda setelah tahap penyebaran selesai.

Alur penyebaran Anda

Pada latihan berikutnya, Anda akan memperbarui alur penyebaran untuk menambahkan pekerjaan baru guna membangun aplikasi situs web dan menyebarkannya ke setiap lingkungan:

Diagram showing the revised pipeline, including a new build stage and an application deployment step.