Memilih agen pembangunan yang dihosting Microsoft atau yang dihosting sendiri

Selesai

Di unit ini, Anda akan mempelajari beberapa faktor yang perlu dipertimbangkan saat Anda memilih agen build. Anda akan mempelajari tentang beberapa manfaat dan batasan penggunaan agen yang dihosting Microsoft, dan apa yang terlibat saat menyiapkan agen build privat Anda sendiri.

Apa yang dimaksud dengan agen pembangunan dan kumpulan agen?

Agen pembangunan adalah sistem yang melakukan tugas pembangunan. Anggap saja sebagai server khusus yang menjalankan proses pembangunan Anda.

Bayangkan Anda memiliki proyek Azure Pipelines yang menerima permintaan build berkali-kali per hari, atau mungkin Anda memiliki beberapa proyek yang masing-masing dapat menggunakan jenis agen build yang sama. Anda dapat mengatur agen pembangunan ke dalam kumpulan agen untuk membantu memastikan bahwa ada server yang siap memproses setiap permintaan pembangunan.

Saat pembangunan dipicu, Azure Pipelines memilih agen pembangunan yang tersedia dari kumpulan. Jika semua agen sibuk, proses menunggu satu agen tersedia.

Saat Anda menggunakan agen yang dihosting Microsoft, Anda menentukan gambar Mesin Virtual yang akan digunakan dari kumpulan. Berikut adalah contoh dari konfigurasi pembangunan Anda yang sudah ada yang menggunakan agen pembangunan Ubuntu 20.04:

pool:
  vmImage: 'ubuntu-20.04'
  demands:
  - npm

Saat Anda menggunakan agen yang dihosting Microsoft, Anda menggunakan vmImage untuk menentukan jenis sistem yang Anda butuhkan. Microsoft menyediakan banyak jenis gambar Mesin Virtual, termasuk yang menjalankan Windows, macOS, dan berbagai versi Linux.

Bagian demands menentukan perangkat lunak atau kemampuan mana yang Anda perlukan untuk dimiliki oleh mesin pembangunan.

Saat Anda menggunakan agen pembangunan dari kumpulan Anda sendiri, juga dikenal sebagai kumpulan privat, Anda menentukan nama kumpulan Anda. Berikut contohnya:

pool:
  name: 'MyAgentPool'
  demands:
  - npm

Jika Anda tidak memerlukan bagian demands, Anda dapat mempersingkat sintaks seperti ini:

pool: 'MyAgentPool'

Anda akan membuat agen pembangunan dan menambahkannya ke kumpulan nanti dalam modul ini.

Agen seperti apa yang dapat saya gunakan?

Saat Anda memilih agen pembangunan, ada dua faktor yang perlu dipertimbangkan:

  • Sistem operasi tempat Anda ingin membangun
  • Apakah Anda dapat menggunakan agen yang dihosting Microsoft atau Anda perlu menyediakan agen Anda sendiri

Azure Pipelines mendukung sistem operasi berikut:

Agen pembangunan yang Anda pilih terutama bergantung pada alat apa yang Anda gunakan untuk membangun kode Anda. Misalnya, jika Anda menggunakan Xcode untuk membangun aplikasi, Anda dapat memilih agen macOS. Jika Anda membutuhkan Visual Studio, Anda mungkin akan memilih agen Windows.

Konfigurasi pembangunan Anda yang ada menggunakan agen yang dihosting Microsoft. Agen yang dihosting berjalan di infrastruktur yang disediakan Microsoft untuk Anda.

Agen privat menggunakan infrastruktur yang Anda sediakan. Agen Anda dapat berupa sistem yang berjalan di cloud atau di pusat data Anda. Salah satu sistem berfungsi, selama agen memenuhi persyaratan Anda dan dapat terhubung ke Azure Pipelines. Dalam modul ini, Anda akan menggunakan VM yang berjalan di Azure, yang kami sediakan.

Kapan saya harus menggunakan agen pembangunan saya sendiri?

Untuk banyak tugas pembangunan, agen yang dihosting Microsoft melakukan semua yang Anda butuhkan. Ini adalah cara termudah untuk memulai.

Microsoft menangani semua keamanan dan pembaruan sistem operasi lainnya untuk Anda. Yang perlu Anda lakukan adalah menentukan konfigurasi pembangunan yang ingin Anda jalankan.

Agen yang dihosting juga berisi perangkat lunak untuk membangun banyak jenis aplikasi umum. Anda dapat menambahkan perangkat lunak lain yang Anda butuhkan selama proses pembangunan.

Agen yang dihosting Microsoft memiliki beberapa batasan, yang meliputi:

  • Durasi pembangunan: Pekerjaan pembangunan dapat berjalan hingga enam jam.
  • Ruang disk: Agen yang dihosting menyediakan jumlah penyimpanan yang tetap untuk sumber dan output pembangunan Anda. Penyimpanan mungkin tidak akan cukup.
  • CPU, memori, dan jaringan: Agen yang dihosting berjalan di Mesin Virtual tujuan umum Microsoft Azure. Standard_DS2_v2 menjelaskan karakteristik CPU, memori, dan jaringan yang dapat Anda harapkan.
  • Interaktivitas: Anda tidak dapat masuk ke agen yang dihosting.
  • Berbagi: Anda tidak dapat menghilangkan artefak pembangunan ke berbagi Universal Naming Convention (UNC).

Meskipun agen yang dihosting relatif mudah disiapkan, ada beberapa keuntungan menggunakan agen build Anda sendiri, selain dari batasan yang baru saja kami jelaskan.

Misalnya, saat Anda menggunakan agen yang dihosting, Anda berbagi infrastruktur dengan pengguna Azure DevOps lainnya. Meskipun biasanya hanya butuh beberapa detik untuk memulai pembangunan Anda, pembangunan bisa memakan waktu lebih lama bergantung pada beban pada sistem Microsoft.

Selain itu, ketika Anda menggunakan agen yang dihosting, Anda mendapatkan sistem yang bersih dengan setiap pembangunan. Saat Anda membawa agen pembangunan sendiri, Anda dapat memutuskan apakah akan melakukan pembangunan bersih setiap kali atau melakukan pembangunan bertahap. Dengan pembangunan bertahap, Anda membangun dengan alat pembangunan yang ada dan kode yang dikompilasi. Pembangunan bertahap membutuhkan waktu lebih sedikit untuk diselesaikan, karena sistem sudah memiliki banyak alat pembangunan dan komponen dependen yang terinstal.

Sebagai gantinya, karena infrastruktur pembangunan adalah milik Anda, Anda bertanggung jawab untuk memastikan bahwa agen pembangunan Anda berisi perangkat lunak dan penambal keamanan terbaru.

Bagaimana cara menyiapkan agen pembangunan privat?

Agen pembangunan privat berisi perangkat lunak yang diperlukan untuk membangun aplikasi Anda. Agen pembangunan privat juga berisi perangkat lunak agen, yang memungkinkan sistem untuk terhubung ke Azure Pipelines dan menerima pekerjaan pembangunan.

Saat menyiapkan agen privat, Anda menyediakan infrastruktur tempat build dijalankan. Hal ini memberi Anda fleksibilitas dalam cara Anda menyiapkan dan memelihara agen Anda.

Misalnya, Anda dapat:

  • Menyiapkan agen pembangunan secara manual: Anda menyiapkan sistem, masuk, dan menginstal alat pembangunan dan perangkat lunak agen secara interaktif.

  • Mengotomatiskan proses: Anda menyiapkan sistem dan menjalankan skrip atau alat untuk menginstal alat pembangunan dan perangkat lunak agen. Anda dapat mengonfigurasi agen setelah sistem online atau selama proses provisi.

    Misalnya, ketika Anda menjalankan agen pembangunan di Azure, Anda dapat menggunakan template Azure Resource Manager (template ARM) atau Bicep guna menyiapkan sistem dan mengonfigurasi sistem untuk bertindak sebagai agen pembangunan, semuanya dalam satu langkah. Terraform oleh HashiCorp adalah cara lain untuk mengotomatisasi proses. Terraform bekerja dengan banyak jenis infrastruktur, termasuk Azure.

  • Membuat gambar: Anda membuat gambar—atau rekam jepret—dari lingkungan yang dikonfigurasi. Anda kemudian menggunakan gambar untuk membuat sistem yang identik sebanyak yang Anda butuhkan di kumpulan Anda.

Konfigurasi manual adalah cara yang baik untuk memulai, karena memungkinkan Anda memahami prosesnya. Konfigurasi manual juga merupakan cara tercepat untuk menyiapkan saat Anda hanya membutuhkan satu agen pembangunan.

Otomatisasi berguna ketika Anda membutuhkan banyak agen build atau Anda perlu menyiapkan dan membongkar infrastruktur build secara teratur. Anda dapat berpindah dari proses manual ke proses otomatis saat Anda membutuhkan banyak agen.

Gambar adalah bentuk otomatisasi. Mereka dapat membantu menghemat waktu, karena semua perangkat lunak telah dikonfigurasi sebelumnya. Sebagai gantinya, Anda mungkin perlu membangun kembali gambar Anda secara berkala untuk menggabungkan patch OS terbaru dan alat pembangunan. Packer oleh HashiCorp adalah alat populer untuk membuat gambar.

Untuk skenario Space Game Anda, Anda memutuskan untuk menggunakan agen build privat.

Uji pengetahuan Anda

1.

Katakanlah Anda sedang membangun video game. Proses build membutuhkan waktu dua jam untuk dijalankan dan menggunakan ruang disk sebesar 18 GB hingga 20 GB untuk mengompilasi aset game. Jenis agen pembangunan apa yang mungkin Anda gunakan?

2.

Katakanlah Anda sedang membangun aplikasi yang berjalan di macOS, Linux, dan Windows. Bagaimana Anda membangun aplikasi untuk setiap platform yang Anda targetkan?

3.

Agen pembangunan yang dihosting sendiri: