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 mendesain alur kerja untuk membangun dan menyebarkan aplikasi beserta 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 lain, termasuk mengompresi file gambar yang akan disajikan kepada pengguna situs web Anda, menautkan kode Anda untuk memverifikasi bahwa itu 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 runner alur kerja. Bagian selanjutnya dari alur kerja Anda perlu bekerja dengan artefak untuk menyebarkannya melalui lingkungan Anda, dan mengujinya saat berkembang melalui gerbang kualitas yang Anda tetapkan dalam definisi alur kerja Anda.

Catatan

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

Artefak alur kerja

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

Artefak alur kerja menyediakan cara untuk menyimpan file di Tindakan GitHub, dan file tersebut terkait dengan alur kerja tertentu Anda. Anda menggunakan actions/upload-artifact tindakan alur kerja guna menginstruksikan Tindakan GitHub untuk mengunggah file atau folder dari sistem file runner sebagai artefak alur kerja:

- name: Upload folder as a workflow artifact
  uses: actions/upload-artifact@v3
  with:
    name: my-artifact-name
    path: ./my-folder

Properti path adalah lokasi berisi kode yang dikumpulkan atau file output Anda pada sistem file runner pekerjaan. Konten di lokasi ini akan diunggah ke artefak. Anda dapat menentukan satu file, beberapa file, atau folder.

Setiap artefak memiliki nama, yang Anda tentukan dengan menggunakan properti name. Anda menggunakan nama artefak untuk merujuknya nanti dalam alur kerja. Pekerjaan alur kerja berikutnya dapat mengunduh artefak sehingga mereka dapat bekerja dengannya, misalnya, menyebarkan situs web ke server yang menghostingnya:

Diagram showing a workflow uploading and then referring to an artifact named 'Website'.

Gunakan tindakan actions/download-artifact untuk mengunduh semua artefak alur kerja:

- uses: actions/download-artifact@v3

Atau, tentukan nama artefak untuk mengunduh artefak tertentu saja:

- uses: actions/download-artifact@v3
  with:
    name: my-artifact-name

Menyebarkan aplikasi

Proses build untuk aplikasi membuat dan mengupload artefak yang dapat disebarkan. Pekerjaan selanjutnya dalam alur kerja 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 ketika tiba saatnya untuk menyebarkan aplikasi, 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 tindakan azure/webapps-deploy:

- uses: azure/webapps-deploy@v2
  with:
    app-name: my-app-service
    package: my-artifact-name/website.zip

Anda perlu memberikan beberapa informasi untuk menyebarkan aplikasi Anda ke App Service. Informasi ini mencakup nama sumber daya aplikasi App Service, yang Anda tentukan dengan menggunakan properti app-name. Seperti yang Anda pelajari di unit sebelumnya, Anda harus menambahkan output ke file Bicep dan menggunakan variabel alur kerja untuk menyebarkan nama aplikasi melalui alur kerja Anda. Anda juga perlu menentukan file .zip dengan aplikasi untuk disebarkan dengan menggunakan package properti . Ini biasanya merupakan jalur ke artefak alur kerja.

App Service memiliki sistem autentikasi data plane sendiri yang digunakan untuk penyebaran. Tindakan azure/webapps-deploy menangani proses autentikasi secara otomatis untuk Anda:

Diagram illustrating the credential exchange process.

Tindakan azure/webapps-deploy menggunakan identitas yang terkait dengan sesi Azure aktif pekerjaan Anda, yang Anda masuki menggunakan identitas beban kerja . Tindakan tersebut 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 Anda dibuat, alur kerja Anda membuat gambar kontainer dan menerbitkannya ke registri kontainer, yang kemudian dibaca oleh kluster Kubernetes Anda. Karena registri kontainer Anda menyimpan aplikasi yang dikumpulkan, Anda biasanya tidak menggunakan artefak alur kerja.

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

Menguji aplikasi di alur kerja Anda

Dalam modul sebelumnya, Anda telah mempelajari tentang nilai dan pentingnya menjalankan pengujian otomatis dari alur kerja Anda. Saat Anda menyebarkan aplikasi, praktik yang baik untuk alur kerja adalah 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 kerja Anda setelah pekerjaan penyebaran selesai.

Alur kerja penyebaran Anda

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

Diagram showing the revised workflow, including a new build job and an application deployment job.