Apa itu Azure Pipelines?
Microsoft Azure Pipelines adalah layanan cloud yang dapat Anda gunakan untuk membangun, menguji, dan menyebarkan proyek kode Anda secara otomatis. Anda juga dapat membuatnya tersedia untuk pengguna lain, dan berfungsi dengan hampir semua bahasa atau jenis proyek.
Mara sangat bersemangat mereplikasi proses build tim di Azure Pipelines. Amita, penguji, akhirnya punya waktu luang dan ingin mengejar ketinggalan. Mara memutuskan bahwa sekarang adalah saat yang tepat untuk memberi tahunya tentang rencananya: menyiapkan alur build otomatis untuk situs web Space Game dengan menggunakan Azure Pipelines.
Ketika dia mendengar rencana Mara, Amita agak ragu, tetapi karena rencana Mara adalah untuk mereplikasi proses build tetapi tidak menggantinya, dia juga penasaran. Dia tahu proses build dapat menggunakan beberapa perbaikan.
Amita: Kedengarannya seperti latihan yang menarik, tetapi Anda harus ingin membuktikan titik DevOps!
Mara: Kau sudah mengenalku dengan baik!
Amita: Peningkatan apa yang Anda harapkan untuk dilihat, terutama karena Anda akan melakukan apa yang sudah kami lakukan?
Mara: Saya berpikir bahwa hanya pindah ke Azure Pipelines akan membawa banyak manfaat. Ingat, Azure Pipelines adalah layanan cloud. Kita dapat menggunakannya untuk membuat dan menguji kode secara otomatis. Dan itu akan tersedia untuk orang lain juga. Layanan tersebut berfungsi hampir semua bahasa atau jenis proyek.
Server build kami memiliki masalah, dan bahkan menjaganya tetap terbaru sulit. Karena Azure Pipelines menyediakan server build yang dihosting dan dikelola Microsoft, Azure Pipelines selalu memiliki patch terbaru dan pembaruan keamanan. Kita tidak perlu khawatir tentang memelihara server build.
Juga, kita memiliki semua jenis skrip yang ditulis oleh orang yang berbeda. Kami bahkan tidak mengerti bagaimana beberapa dari mereka bekerja. Azure Pipelines dilengkapi dengan katalog tugas. Tugas adalah skrip atau prosedur paket yang telah diabstraksi dengan serangkaian input. Saya akan mencoba untuk memetakan apa yang skrip build kita lakukan untuk tugas-tugas tersebut. Setidaknya kita dapat menstandarkan bagaimana hal-hal selesai dan meningkatkan tingkat otomatisasi.
Dan Azure Pipelines berfungsi dengan berbagai bahasa dan jenis aplikasi. Jika kita ingin memperluas ke arah itu, kita tidak perlu melakukan retool.
Amita: Aku tahu itu egois, tapi mengapa aku peduli? Salah satu masalah besar saya adalah bahwa saya tidak pernah tahu kapan build siap untuk menguji. Terkadang seseorang ingat untuk memperbarui spreadsheet, tetapi sering kali mereka lupa. Sepertinya saya adalah orang terakhir yang tahu.
Mara: Benar, itu sesuatu yang bisa kita perbaiki dengan mudah. Kami dapat menyiapkan alur untuk memberi tahu Anda secara otomatis, baik melalui email atau pemberitahuan lainnya, saat build siap. Anda tidak perlu menunggu seseorang mengingatkan Anda lagi.
Amita: Oke, jadi tujuan anda sekarang adalah membangun aplikasi dan memberi tahu saya kapan siap?
Mara: Ya! Tentu saja, aku punya rencana yang lebih besar. Aku tahu kalian semua akan menyukai langkah pertama ini, jadi aku ingin membangunnya untuk memberi kita integrasi berkelanjutan sejati.
Amita: Beri saya rundown lima menit pada integrasi berkelanjutan.
Mara: Biar kugambar fotomu.
Mara bergerak ke papan tulis dan menggambar alur.
Mara: Ini adalah alur CI saya. CI adalah proses otomatisasi pembuatan dan pengujian kode setiap kali anggota tim melakukan perubahan pada kontrol versi. Aku tahu kita belum melakukan pengujian otomatis, tapi berikan waktu.
Sebuah alur mendefinisikan proses integrasi berkelanjutan untuk aplikasi. Ini terdiri dari langkah-langkah yang disebut tugas . Anda dapat menganggapnya sebagai skrip yang menentukan bagaimana langkah-langkah build, pengujian, dan penerapan Anda dijalankan. Aku akan mencoba memetakan skrip kita ke tugas.
Alur berjalan saat Anda mengirimkan perubahan kode. Anda dapat mengonfigurasi alur untuk berjalan secara otomatis, atau Anda dapat menjalankannya secara manual. Anda menyambungkan alur Anda ke repositori sumber seperti GitHub, Bitbucket, atau Subversion. Salah satu tugas kami untuk sprint ini adalah mulai menggunakan GitHub, jadi kami akan menggunakan GitHub untuk proyek ini.
Agen build membangun atau menyebarkan kode. Saat build atau penyebaran Anda berjalan, sistem akan memulai satu atau beberapa pekerjaan. Agen adalah perangkat lunak yang dapat diinstal yang menjalankan satu pekerjaan build atau penyebaran pada suatu waktu. Karena kita menggunakan Azure Pipelines, kita dapat menggunakan agen yang dihosting Microsoft. Dengan agen yang dihosting Microsoft, pemeliharaan dan peningkatan dilakukan untuk kami. Setiap kali kita menjalankan alur, kita akan mendapatkan mesin virtual yang baru. Terdapat beberapa gambar mesin virtual untuk dipilih dan digunakan, termasuk Ubuntu 22.04.
Produk akhir dari alur adalah artefak build . Anggap artefak sebagai unit terkompilasi terkecil yang kita perlukan untuk menguji atau menerapkan aplikasi. Misalnya, artefak dapat berupa:
- Aplikasi Java atau .NET yang dikemas ke dalam file .jar atau .zip.
- Perpustakaan C++ atau JavaScript.
- Gambar mesin virtual, cloud, atau Docker.
Dan selesai. Aku tahu kita bisa melakukan ini.
Amita: Kedengarannya bagus. Mari kita lihat apa yang harus Anda lakukan untuk membuatnya bekerja dan berapa lama waktu yang Anda butuhkan. Anda dapat memberi kita semua demo.
Mara: Akan lakukan!
Mengelola agen build
Sekarang setelah Anda dan tim terbiasa dengan Azure Pipelines, mari kita bicarakan lebih lanjut tentang agen build. Agen build adalah perangkat lunak yang dapat diinstal yang menjalankan satu pekerjaan build atau penyebaran pada satu waktu. Untuk membangun kode atau menyebarkan perangkat lunak, Anda memerlukan setidaknya satu agen. Saat menambahkan lebih banyak kode dan orang, Anda akan membutuhkan lebih dari satu agen. Ada dua kategori utama agen.
Agen yang dihosting Microsoft adalah agen yang dikelola Microsoft, sehingga pemeliharaan dan peningkatan ditangani untuk Anda. Setiap kali Anda menjalankan alur, Anda mendapatkan agen baru untuk setiap pekerjaan di alur. Dalam modul ini, saat Anda memilih Lingkungan pengembangan lokal menggunakan agen yang dihosting Microsoft, Anda menjalankan alur di agen yang dihosting Microsoft. Untuk menjalankan alur pada agen yang dihosting Microsoft, organisasi Anda harus memiliki setidaknya satu pekerjaan paralel yang dihosting Microsoft. Periksa jumlah pekerjaan paralel yang dihosting Microsoft untuk memastikan bahwa Anda memiliki setidaknya satu pekerjaan paralel yang dihosting Microsoft. Jika jumlah pekerjaan paralel yang dihosting Microsoft adalah nol (organisasi Azure DevOps baru biasanya tidak memiliki pekerjaan paralel), Anda dapat meminta pemberian gratis. Proses persetujuan untuk pemberian gratis biasanya memakan waktu dua hingga tiga hari kerja.
Agen yang dihost sendiri adalah agen yang Anda kelola. Anda mengonfigurasi komputer virtual atau kontainer dengan menginstal perangkat lunak agen dan alat yang diinginkan, dan mendaftarkan agen dengan Azure DevOps. Dalam modul ini, saat Anda memilih lingkungan pengembangan GitHub Codespaces menggunakan agen yang dihost sendiri, Anda menggunakan agen yang dihost sendiri yang berjalan di kontainer GitHub Codespaces Anda. Hosting mandiri agen pada kontainer GitHub Codespaces bukanlah skenario produksi yang khas, tetapi menyediakan lingkungan untuk menyelesaikan modul pelatihan ini.