Arsitektur Azure Pipelines untuk IaaS

Penting

CI/CD untuk aplikasi IaaS adalah varian Desain alur CI/CD menggunakan Azure DevOps. Artikel ini berfokus pada spesifikasi penyebaran aplikasi web ke Azure Virtual Machines.

Azure Virtual Machines adalah opsi untuk menghosting aplikasi kustom saat Anda menginginkan manajemen komputasi yang fleksibel dan terperinci. Komputer virtual (VM) harus tunduk pada tingkat ketepatan rekayasa yang sama dengan penawaran Platform-as-a-Service (PaaS) sepanjang siklus hidup pengembangan. Misalnya, menerapkan alur build dan rilis otomatis untuk mendorong perubahan ke VM.

Artikel ini menjelaskan alur kerja DevOps tingkat tinggi untuk menyebarkan perubahan aplikasi ke VM menggunakan praktik integrasi berkelanjutan (CI) dan penyebaran berkelanjutan (CD) menggunakan Azure Pipelines.

Arsitektur

Diagram arsitektur alur CI/CD menggunakan Azure Pipelines.

Unduh file Visio arsitektur ini.

Aliran data

Bagian ini mengasumsikan Anda telah membaca arsitektur garis besar Azure Pipelines dan hanya berfokus pada spesifikasi penyebaran beban kerja ke Azure Virtual Machines.

  1. Alur - PRSama seperti garis besar

  2. Alur CI - Sama seperti garis besar, kecuali artefak build yang dibuat untuk menyebarkan Aplikasi Web ke IaaS adalah paket Web Deploy

  3. Pemicu - alur CDSama seperti garis besar

  4. Rilis CD ke penahapan - Sama dengan garis besar dengan 2 pengecualian: 1) artefak build yang diunduh adalah Paket Penyebaran Web dan 2) paket disebarkan ke Azure Virtual Machine penahapan.

  5. Rilis CD ke produksi - Sama seperti garis besar dengan 2 pengecualian:

    a. Rilis ke produksi dilakukan dengan memperbarui Azure Traffic Manager untuk menukar penahapan dan produksi. Strategi ini dapat dicapai dengan memiliki profil Traffic Manager dengan dua titik akhir, di mana produksi diaktifkan dan penahapan dinonaktifkan. Untuk menukar penahapan dan produksi, nonaktifkan produksi dan aktifkan penahapan.
    b. Pembatalan dapat dicapai dengan memperbarui Azure Traffic Manager untuk menukar produksi dan penahapan kembali.

  6. Pemantauan - sama seperti garis besar

Komponen

Bagian ini mengasumsikan Anda telah membaca bagian komponen arsitektur garis besar Azure Pipelines dan hanya berfokus pada spesifikasi penyebaran beban kerja ke Azure Virtual Machines.

  • Azure Virtual Machines menyediakan infrastruktur sesuai permintaan, skala tinggi, aman, dan tervirtualisasi menggunakan server Windows atau Linux. Virtual Machines digunakan dalam arsitektur ini untuk menghosting beban kerja.

  • Virtual Machine Scale Sets memungkinkan Anda membuat dan mengelola sekelompok VM dengan beban seimbang yang identik. Jumlah instans komputer virtual bisa secara otomatis meningkat atau menurun sebagai respons terhadap permintaan atau jadwal yang ditentukan. Set skala juga dapat digunakan untuk menghosting beban kerja.

  • Azure Traffic Manager adalah penyeimbang beban lalu lintas berbasis DNS yang dapat Anda gunakan untuk mendistribusikan lalu lintas ke titik akhir yang dikonfigurasi. Dalam arsitektur ini, Traffic Manager adalah titik masuk tunggal untuk klien dan dikonfigurasi dengan beberapa titik akhir, mewakili Mesin Virtual produksi dan Mesin Virtual penahapan. Titik akhir Komputer Virtual produksi diaktifkan dan penahapan dinonaktifkan.

Alternatif

Artikel ini berfokus pada penggunaan Azure Traffic Manager sebagai load balancer. Azure menawarkan berbagai opsi Penyeimbangan beban yang dapat Anda pertimbangkan.

Pertimbangan

Bagian ini mengasumsikan Anda telah membaca bagian pertimbangan di arsitektur garis besar Azure Pipelines dan hanya berfokus pada pertimbangan khusus untuk menyebarkan beban kerja ke Azure Virtual Machines.

Keunggulan Operasional

  • Karena Traffic Manager berbasis DNS, penembolokan klien alamat IP memperkenalkan latensi. Meskipun Anda mungkin mengaktifkan satu titik akhir dan menonaktifkan titik akhir lainnya di Traffic Manager, klien akan terus menggunakan alamat IP cache mereka hingga DNS Time-to-live (TTL) kedaluwarsa. Pertimbangkan opsi penyeimbangan beban yang bertindak pada lapisan 4 atau lapisan 7.

  • Pertimbangkan untuk menerapkan lingkungan selain penahapan dan produksi untuk memungkinkan hal-hal seperti pemutaran kembali, pengujian penerimaan manual, dan pengujian performa. Tindakan menggunakan penahapan sebagai lingkungan putar kembali membuat Anda tidak dapat menggunakan lingkungan tersebut untuk tujuan lain.

Langkah berikutnya