Mengoptimalkan dan Memantau Pipeline Anda
Di awal karier saya, membangun pipeline bukanlah tantangan terbesar—memiliki pipeline yang cepat dan andal lah tantangannya. Pipeline yang dioptimalkan dengan baik bukan hanya membuat build lebih cepat; ini juga mengurangi frustrasi tim, menurunkan risiko deployment, dan mempercepat pengiriman.
Saya akan membagikan beberapa kiat dan strategi yang dapat Anda gunakan untuk menjaga Azure DevOps Pipelines Anda tetap cepat, teratur, dan andal.
Pipeline caching
Instalasi dependensi adalah bottleneck pipeline yang umum. Baik Anda bekerja dengan npm, .NET, atau manajer paket lainnya, mengunduh dependensi yang sama berulang kali dapat membuang banyak waktu. Caching dependensi dan artefak antar-run secara drastis memotong waktu eksekusi.
Berikut cara melakukan cache dependensi di Azure Pipelines.
Pertama, Anda harus mengidentifikasi manajer paket, seperti:
- Node.js (
node_modules) - Paket NuGet
- Python (paket
pip) - Dependensi Maven/Gradle
Azure Pipelines mendukung mekanisme caching, seperti tugas Cache@2, yang memungkinkan Anda melakukan cache dependensi antar-run pipeline.
Mari ambil contoh caching sederhana untuk Node.js:
# This task is used to cache files to speed up your pipeline.
- task: Cache@2 # This is the task name for caching files in Azure Pipelines.
inputs:
# Key is used to identify the cache. It combines npm (package manager), operating system (OS), and package-lock.json files.
key: 'npm | "$(Agent.OS)" | package-lock.json'
# RestoreKeys is an optional value used when the specific cache key is not found. It helps to find a fallback cache.
restoreKeys: |
npm | "$(Agent.OS)"
# Path defines the location of files or folders to be cached.
# Here, we are caching the 'node_modules' directory to avoid reinstalling dependencies.
path: '$(Build.SourcesDirectory)/node_modules'
# CacheHitVar is a variable that stores whether the cache was successfully used (restored).
# This can be checked later in the pipeline to decide if tasks need to run.
cacheHitVar: 'NPM_CACHE_RESTORED'
Anda kemudian dapat secara kondisional melewati instalasi jika sudah dicache. Ini adalah pemeriksaan cerdas sebelum menyelesaikan instalasi npm. Ini logika berbasis kondisi yang efisien.
Mari ambil contoh sederhana berikut:
# This step runs the command to install Node.js dependencies using npm.
- script: npm install # Installs packages listed in the package.json file.
# The condition checks whether the cache was restored successfully.
# This step will run if the cache is not restored ('NPM_CACHE_RESTORED' is not true).
condition: ne(variables.NPM_CACHE_RESTORED, 'true') # Run only if the cache is not restored.
Contoh caching sederhana untuk aplikasi Node.js ini menyimpan direktori cache npm menggunakan package-lock.json sebagai kunci. Saat dependensi Anda tidak berubah, cache akan dipulihkan, menghemat menit pada setiap build.
Saya pernah menyaksikan caching memangkas waktu build secara drastis, terutama di proyek besar, tetapi hanya jika kunci cache dipilih dengan cermat. Dalam salah satu proyek saya sebelumnya, ini memangkas waktu build aplikasi Node.js sebesar 55%.
Memantau kesehatan pipeline
Pipeline yang sukses bukan hanya tentang tanda centang hijau, visibilitas, dan umpan balik cepat. Saat sesuatu rusak, Anda ingin tim Anda segera mengetahuinya. Berikut cara tetap selangkah di depan masalah.
Cara menyiapkan dashboard Azure DevOps
Azure DevOps menyediakan widget bawaan untuk menampilkan status pipeline, run terbaru, tingkat kegagalan, dan durasi rata-rata.
- Pertama, arahkan ke Dashboards di dalam proyek Anda.

- Lalu klik New Dashboard atau gunakan yang sudah ada.

- Anda dapat menambahkan widget seperti: Build History, Release Pipeline Overview, Test Results Trend, dan lainnya.

Ini penting untuk melacak tren lolos/gagal, melihat environment mana yang bermasalah, dan lainnya.
Mengonfigurasi peringatan untuk pipeline yang gagal
- Di kiri bawah proyek Anda, buka Project Settings.

- Klik Notifications.

- Lalu klik New Subscription.

Mari ambil skenario: Di bagian Category, pilih Build; di bagian Template, pilih “A build fails”, dan klik Next.
Anda akan melihat antarmuka seperti di bawah ini:

- Terakhir, klik Finish.
- Di bagian Notifications, Anda dapat memeriksa deskripsi Build untuk “A build fails” yang kita buat sebelumnya.

Saya pernah melewatkan kegagalan deployment kritis karena peringatan tidak disetel. Sejak itu, saya selalu menyiapkan dan mengonfigurasi peringatan tim untuk setiap deployment produksi. Dengan begitu, saya tidak pernah melewatkan build yang rusak atau keterlambatan dalam siklus rilis.
Menganalisis kinerja pipeline
Kita tahu bahwa meski pipeline Anda berfungsi, bisa jadi lambat, dan pipeline yang lambat membunuh produktivitas. Jadi mengidentifikasi bottleneck sejak dini menyelamatkan masalah di kemudian hari.
Metrik pipeline memberi wawasan tentang kinerja build dan deployment. Begini cara mengaksesnya.
Pertama, Anda harus mengaktifkan Analytics Views di bawah project settings dan terhubung ke Power BI atau jelajahi melalui grafik bawaan.
Memantau kesehatan pipeline
- Di bawah bagian Pipelines, buka Analytics.
- Lihat metrik seperti tingkat kelulusan pipeline, tingkat kelulusan uji, dan durasi pipeline.

Mari kita jelajahi lebih lanjut metrik kunci yang dapat kita pantau di analytics dan mengapa itu penting:
|
Metrik |
Mengapa Penting |
|
Tren Durasi Build |
Membantu dengan mudah melihat perlambatan dari waktu ke waktu. |
|
Tingkat Kegagalan per Branch |
Membantu mengidentifikasi fitur yang tidak stabil. |
|
Waktu dalam Antrean |
Membantu mendeteksi kekurangan agen. |
Beberapa bulan lalu, saya mengerjakan pipeline klien, dan yang paling menonjol adalah Waktu dalam Antrean. Saya pernah menemukan bahwa tim saya dan saya membebani pool agen self-hosted, dan 40% waktu pipeline dihabiskan untuk menunggu runner yang tersedia. Tidak ada yang menyadarinya sampai analytics membuatnya jelas.
Kami dapat memperbaikinya dengan menambahkan dua agen self-hosted lagi dan mendistribusikan beban berdasarkan jenis job. Hasilnya langsung terlihat; waktu build rata-rata untuk pipeline turun sekitar 35%.
Memantau menggunakan log
Jadi, di luar metrik, timeline log sangat berharga, terutama untuk tugas yang berjalan lama. Selama bertahun-tahun, saya terbiasa menambahkan penanda log kustom di dalam langkah penting skrip untuk menentukan penundaan secara tepat.
Mari ambil contoh sederhana berikut:
# This step prints a message to the console in the pipeline logs.
# It helps to mark the start of the dependency installation process.
echo "=== START: Dependency Install ===" # Display a message indicating the beginning of dependency installation.Praktik Terbaik untuk Azure Pipelines
Sekarang kita telah membahas layanan inti Azure Pipelines dan banyak lagi, mari lihat cara memaksimalkannya dengan mengikuti praktik terbaik berikut.
Mari beralih dari kinerja ke struktur, karena pipeline yang cepat tetapi sulit dirawat tetap akan merugikan tim mana pun.
Mengorganisasi pipeline untuk tim
Ketika banyak tim atau environment berbagi pipeline, semuanya sering menjadi berantakan. Anda memerlukan struktur. Satu pipeline raksasa untuk environment pengembangan, staging, dan produksi akan menyebabkan kekacauan.
Untuk mengorganisasi pipeline Anda, Anda harus memisahkannya ke dalam environment. Mari lihat struktur sederhana di bawah ini.
|
Environment |
Nama Pipeline |
Pemicu |
|
Development |
|
Feature branches (Berjalan pada setiap commit) |
|
Staging |
|
Pull request → Staging (Pemicu manual) |
|
Production |
|
Manual atau release pipelines (Perlu persetujuan) |
Hal-hal kunci yang perlu dipahami dari struktur sederhana ini:
- Setiap file mengambil dari template bersama.
- Setiap file menggunakan variabel spesifik environment.
- Setiap file mengendalikan akses melalui izin pipeline.
Dari pengalaman, pemisahan ini memudahkan debug dan memungkinkan pengembang junior melakukan deployment ke environment Dev tanpa berisiko pada environment Production.
Menggunakan template dan kode yang dapat digunakan ulang
DevOps bertujuan memangkas workflow manual dan meningkatkan otomasi di seluruh proses pengembangan perangkat lunak.
Kode YAML rentan terhadap kesalahan saat disalin-tempel di antara proyek. Azure DevOps memiliki template pipeline untuk pengaturan DRY (Don’t Repeat Yourself) melalui pipeline YAML. Anda dapat menggunakan ulang template pipeline YAML di banyak proyek, merancang pipeline secara konsisten, dan bahkan mengurangi waktu pemrosesan pipeline .
Mari ambil contoh template build yang dapat digunakan ulang.
Pertama, definisikan template build Anda, build-template.yml:
# Here we configure the platform and the build configuration.
parameters:
buildPlatform: 'Any CPU' # This specifies the build platform (e.g., Any CPU, x86, x64).
buildConfiguration: 'Release' # This specifies the build configuration (Release) to avoid warning.
# A pipeline is composed of steps (a series of tasks that will be executed)
steps:
- task: DotNetCoreCLI@2 # Task for running .NET Core commands in the pipeline.
inputs:
command: 'build' # This runs the 'build' command to compile the project(s).
projects: '**/*.csproj' # This specifies to build all .csproj files in the repository.
arguments: '--configuration ${{ parameters.buildConfiguration }}'
# This passes the build configuration parameter (e.g., Release or Debug) to the command.
Gunakan template build Anda di pipeline utama:
# A pipeline job is a group of tasks. Here, the job is named 'Build'.
jobs:
- job: Build # The job name where the build process occurs.
# Steps define the tasks or actions the pipeline will perform.
steps:
- template: templates/build-template.yml # Reference an external YAML template for reusable steps.
Mengelola rahasia dan variabel
Saat mengerjakan proyek, terutama di lingkungan kolaboratif, umum menggunakan informasi sensitif seperti string koneksi basis data, kunci API, kata sandi, atau token. Jika rahasia ini di-hardcode di basis kode Anda atau terekspos di log, rahasia tersebut mudah disusupi.
Mari lihat cara mengelola rahasia dan variabel kita secara aman menggunakan secrets dan variable groups di Azure Pipelines.
Langkah 1: Membuat variable group
- Klik tab Pipelines di bilah sisi kiri.
- Di bagian Pipelines, klik Library.

- Buat variable group:
- Klik tab Variable groups.

- Klik tombol Add variable group.
- Masukkan nama variable group Anda (misalnya,
MyAppSecrets).

Langkah 2: Menambahkan rahasia ke variable group
- Tambahkan variabel:
- Di variable group, klik Add untuk membuat variabel baru.

- Masukkan nama variabel (misalnya,
DB_CONNECTION_STRING). - Centang kotak Keep this value secret untuk memastikan nilainya diperlakukan sebagai rahasia.
- Masukkan nilai variabel (misalnya, string koneksi basis data saya).

- Klik Save untuk menyimpan variabel.

Langkah 3: Menggunakan rahasia di pipeline Anda
Sekarang Anda telah membuat variable group dengan rahasia, Anda dapat menggunakan variabel ini di file YAML pipeline Anda.
- Referensikan variable group: Tambahkan variable group ke file YAML pipeline Anda:
variables:
- group: MyAppSecrets
- Gunakan rahasia dalam langkah Anda: Anda dapat mereferensikan rahasia dalam langkah pipeline Anda menggunakan sintaks
$(VariableName). Berikut contoh cara menggunakanDB_CONNECTION_STRINGdalam langkah skrip:
# This defines the trigger for the pipeline.
# The pipeline runs automatically whenever changes are pushed to the 'main' branch.
trigger:
- main # Trigger the pipeline on changes to the 'main' branch.
# The pool specifies the environment where the pipeline will run.
# 'ubuntu-latest' means the pipeline will use the latest Ubuntu operating system image.
pool:
vmImage: 'ubuntu-latest' # Use the latest Ubuntu image provided by Azure Pipelines.
# Variables section defines reusable values for the pipeline.
# 'group: MyAppSecrets' links to a variable group that stores sensitive information like secrets.
variables:
- group: MyAppSecrets # Load secrets, such as database credentials, from a variable group.
# Steps define the tasks that the pipeline will execute one by one.
steps:
- script: |
echo "Connecting to the database..." # Print a message indicating the start of database connection.
echo "Connection String: $(DB_CONNECTION_STRING)" # Display the database connection string from the variable group.
displayName: 'Connect to Database' # A simple name for this step that appears in the pipeline logs.
Langkah 4: Menjalankan pipeline
- Setelah Anda menyimpan file YAML, buka bagian Pipelines dan klik Run Pipeline.
- Setelah pipeline berjalan, Anda dapat memeriksa log. Anda akan melihat bahwa nilai rahasia disembunyikan, menjaga informasi sensitif Anda tetap aman.
Kesimpulan
Dalam tutorial ini, kita menelusuri perjalanan lengkap menggunakan Azure Pipelines—mulai dari menyiapkan pipeline pertama hingga membangun, menguji, menerapkan, memantau, dan mengoptimalkannya.
Fase deployment membutuhkan latihan. Mulailah sederhana, terus tingkatkan, dan seiring waktu, Anda akan memperoleh kepercayaan diri dan keluwesan dalam mengelola workflow CI/CD. Azure Pipelines menyediakan alatnya, Anda membawa iterasi dan pembelajaran.
Dengan upaya yang konsisten, Anda dapat merampingkan proses pengembangan dan menjadi percaya diri dalam merilis perangkat lunak berkualitas tinggi dalam skala besar.
Untuk menggali lebih dalam Azure DevOps dan Microsoft Azure, silahkan lihat sumber daya berikut:
- Tutorial Azure DevOps - Tutorial ini memandu Anda melalui Azure DevOps, membuat CI/CD jadi lebih mudah dari sebelumnya.
- Understanding Microsoft Azure – Bangun fondasi yang kuat di Microsoft Azure dan buka kekuatan komputasi awan.
- Microsoft Azure Fundamentals (AZ-900) – Siap ujian dengan track ramah pemula yang mencakup semua dasar-dasar Azure.
- Understanding Microsoft Azure Architecture and Services – Pelajari bagaimana arsitektur dan layanan Azure bekerja bersama untuk menjalankan solusi cloud.
FAQs
Bisakah saya menggunakan Azure Pipelines untuk proyek non-Azure?
Ya, bisa. Azure Pipelines mendukung deployment ke on-premise dan berbagai lingkungan cloud seperti AWS, GCP, dan banyak lagi.
Bahasa pemrograman apa yang didukung Azure Pipelines?
Azure Pipelines mendukung banyak bahasa pemrograman, termasuk Node.js, Python, Java, .NET, dan banyak lagi.
Apa perbedaan antara Azure Pipelines dan GitHub Actions?
Azure Pipelines menawarkan integrasi yang lebih mendalam dengan ekosistem Azure dan alat deployment yang kuat, sedangkan GitHub Actions menyediakan pengalaman CI/CD yang lebih sederhana dan native GitHub. Keduanya mendukung workflow YAML dan deployment terkontainer.
Bisakah saya menggunakan Azure Pipelines dengan teknologi non-Microsoft seperti Python atau Java?
Ya, Azure Pipelines mendukung semua platform dan bahasa utama, termasuk Python, Java, Node.js, dan lainnya. Anda dapat mengonfigurasi build dan deployment untuk tumpukan teknologi apa pun menggunakan YAML.
Apakah Azure Pipelines gratis digunakan?
Azure Pipelines menawarkan tier gratis dengan 1.800 menit/bulan untuk proyek publik dan waktu build privat terbatas. Penggunaan tambahan memerlukan paket berbayar atau agen self-hosted.
Apa itu Azure DevOps Service Connections, dan mengapa penting?
Service Connections menautkan Azure Pipelines secara aman ke layanan eksternal seperti Azure Web Apps atau klaster Kubernetes. Ini penting untuk deployment otomatis dan manajemen infrastruktur.
Bagaimana perbandingan Azure Pipelines dengan Jenkins atau CircleCI?
Azure Pipelines memberikan pengalaman yang lebih terintegrasi untuk pengguna Azure dan dukungan yang lebih baik untuk layanan Microsoft. Jenkins lebih dapat disesuaikan namun memerlukan lebih banyak penyiapan; CircleCI unggul dalam kecepatan dan paralelisme.
Emmanuel Akor adalah Cloud & DevOps Engineer yang mahir memanfaatkan teknologi cloud dan alat DevOps untuk mendorong proyek-proyek berdampak. Lulusan Cum Laude Ilmu Komputer dari Babcock University dan mantan Cloud Co-Lead untuk GDSC, Emmanuel memadukan keunggulan akademis dengan pengalaman langsung. Sebagai Penulis Konten Teknis, ia unggul dalam berbagi pengetahuan dan berkolaborasi dengan tim.


Jika pipeline CI/CD Anda sering rusak atau terasa lambat dan kikuk, Anda tidak sendirian. Saya pernah berurusan dengan build gagal, lingkungan yang tidak selaras, dan rekan tim yang tanpa sengaja menimpa pekerjaan saya. Azure Pipelines menghilangkan frustrasi ini dengan layanan cloud-hosted yang dapat membangun, menguji, dan menerapkan hampir proyek apa pun di platform apa pun.
Itu sebabnya dalam tutorial ini, saya akan menunjukkan cara untuk:
Mari kita mulai!
Apa itu Azure Pipelines?
Azure Pipelines adalah solusi berbasis cloud yang menyederhanakan pengembangan, pengujian, dan penerapan aplikasi.
Ini merupakan komponen dari toolkit Azure DevOps, yang mendukung seluruh siklus hidup pengembangan perangkat lunak. Ini juga merupakan opsi yang fleksibel untuk tim dari berbagai ukuran karena mendukung berbagai platform dan bahasa pemrograman. GitHub, Azure Repos, dan sistem kontrol versi terkenal lainnya terintegrasi dengannya.
Fitur inti Azure Pipelines mencakup:
Layanan
Tujuan
Dukungan multi-platform
Azure Pipelines mengotomatiskan proses build dan deployment aplikasi untuk berbagai sistem operasi, seperti Linux, macOS, dan Windows.
Integrasi dengan kontrol versi
Azure Pipelines terhubung ke repositori kode Anda seperti Azure Repos, GitHub, dan sistem kontrol versi terkenal lainnya.
Konfigurasi pipeline berbasis YAML
Azure Pipelines memungkinkan kita mendefinisikan proses build dan deployment sebagai kode, sehingga dapat dikendalikan versinya.
Continuous Integration dan Continuous Deployment (CI/CD)
Azure Pipelines memfasilitasi proses end-to-end untuk mengintegrasikan perubahan kode dan menerapkan aplikasi.
Berdasarkan pengalaman saya, Azure Pipelines bermanfaat bagi siapa pun yang ingin memiliki CI/CD yang tepat di dalam tim mereka. Solusi ini fleksibel, dapat diskalakan, dan terintegrasi dengan baik dengan layanan Azure lainnya.
Arsitektur Azure Pipelines (Sumber: Microsoft).
Jika Anda mencari pemahaman yang lebih luas tentang Azure DevOps di luar pipelines, tutorial Azure DevOps ini memabarkan seluruh siklus hidup CI/CD dari awal hingga akhir.
Menyiapkan Azure Pipeline Pertama Anda
Untuk bekerja dengan lingkungan Azure Pipelines, kita harus menyiapkan semuanya terlebih dahulu untuk mendukung proses build, uji, dan deployment end-to-end.
Prasyarat
Sebelum mulai membuat pipeline pertama Anda, pastikan Anda memiliki hal-hal berikut:
Jika Anda perlu menyegarkan pemahaman tentang ekosistem Azure yang lebih luas, saya sarankan memeriksa kursus Understanding Microsoft Azure.
Membuat proyek dan repositori baru
Sekarang akun dan organisasi Azure DevOps Anda sudah siap, mari buat proyek dan repositori pertama kita.
Untuk tutorial ini, kita akan menggunakan Azure Repos sebagai repositori kode. Jika Anda baru memulai atau tidak memiliki alasan khusus untuk memilih TFVC, saya sarankan memilih Git.
Membuat pipeline pertama Anda
Sekarang saatnya membuat pipeline pertama kita. Ikuti langkah-langkah di bawah ini:
Memilih YAML vs Classic Editor
Azure Pipelines menyediakan dua cara untuk mendefinisikan pipeline Anda:
.yamlatau.ymldi repositori sumber Anda, memungkinkan versioning dan kolaborasi yang lebih baik.Aspek
YAML Pipelines
Classic Editor
Kontrol versi
YAML Pipelines mendukung kontrol versi dan disimpan di repositori kode sumber.
Classic Editor tidak mendukung kontrol versi. Ini berbasis Graphical User Interface (GUI).
Fleksibilitas
YAML Pipelines memiliki fleksibilitas tingkat tinggi.
Classic Editor memiliki fleksibilitas terbatas.
Terbaik untuk
YAML Pipelines paling cocok untuk workflow jangka panjang, kompleks, dan otomasi.
Classic Editor paling cocok untuk penyiapan cepat.
Menurut pengalaman saya, pipeline YAML memberikan fleksibilitas lebih dan lebih baik untuk tim yang mengikuti praktik Infrastructure as Code (IaC). Namun Classic Editor cocok untuk pemula yang menyukai cara visual.
Namun, untuk skalabilitas jangka panjang, pipeline YAML lebih direkomendasikan daripada Classic Editor.
Membangun dengan Azure Pipelines
Sekarang, mari lihat bagaimana kita dapat melakukan build dengan Azure Pipelines.
Di bagian ini, kita akan menentukan langkah-langkah yang diambil Azure Pipelines untuk membangun kode Anda, seperti memasang dependensi, mengompilasi, dan menjalankan uji. Kita akan mengekspresikan langkah-langkah ini dalam file konfigurasi di repo kode sumber kita menggunakan YAML, cara sederhana dan mudah dibaca untuk menggambarkan langkah-langkah seperti sebuah resep.
Sintaks pipeline YAML
Berikut contoh sederhana pipeline YAML:
Mari kita uraikan kodenya langkah demi langkah:
trigger: Menentukan branch yang memicu pipeline (misalnya,main).pool: Mendefinisikan build agent (misalnya,ubuntu-latest).steps: Mencantumkan tugas yang dijalankan, seperti memasang dependensi dan menjalankan skrip build.Mengonfigurasi langkah build
Untuk menambahkan langkah build ke pipeline YAML Anda, Anda harus mendefinisikan 'script' di bawah bagian 'steps'.
Untuk aplikasi
Node.jssederhana, misalnya, fileazure-pipelines.ymldi bawah ini berisi kode yang secara otomatis dibuat oleh Azure DevOps.Mari kita lihat
stepsbuild pada pipeline YAML di atas:NodeTool@0untuk menentukan versi Node.js.npm installuntuk memasang dependensi proyek.npm run builduntuk mengompilasi kode.Menjalankan pipeline
Pipeline kita dapat dipicu secara manual atau diatur untuk berjalan otomatis saat terjadi peristiwa seperti push ke branch.
mainmemicu pipeline secara otomatis. Berikut contohnya:Setelah menjalankan pipeline, Anda dapat melihat log dan memecahkan masalah apa pun.
Untuk mengakses log, buka ringkasan run pipeline Anda dan pilih job atau task tertentu. Ini akan menampilkan log untuk langkah tersebut; seperti pada gambar di bawah, Anda dapat memilih job apa saja (Build, Push, atau Update) untuk melihat log mentah.
Untuk menelusuri masalah umum, Anda dapat memeriksa pipeline terhadap masalah seperti timeout, keterbatasan sumber daya, atau salah konfigurasi.
Menambahkan Uji ke Pipeline Anda
Anda menambahkan pengujian ke pipeline untuk memastikan kualitas kode dan menangkap masalah sejak awal pengembangan. Di Azure Pipelines, Anda dapat mengintegrasikan unit, integrasi, atau uji lainnya dengan menambahkan langkah dalam konfigurasi pipeline Anda.
Mengonfigurasi langkah uji
Sertakan langkah pengujian dalam pipeline untuk menjamin kualitas kode. Anda dapat menggunakan framework populer seperti Jest, Mocha, atau NUnit. Misalnya, berikut cara menambahkan unit test dengan Jest:
Melihat hasil uji
Azure Pipelines memiliki pelaporan uji bawaan. Anda dapat menyiapkan publikasi hasil uji untuk pelacakan yang lebih mudah dan melihat hasil uji di log pipeline. Berikut caranya:
PublishTestResults@2untuk menampilkan hasil. Ini memudahkan pelacakan secara keseluruhan. Contoh:Menerapkan dengan Azure Pipelines
Dalam langkah deployment di file YAML pipeline Azure Anda, Anda dapat secara otomatis menerapkan aplikasi ke beberapa lingkungan, seperti testing, staging, dan produksi. Di bagian ini, kita akan meninjau beberapa cara untuk melakukan deployment dengan Azure Pipelines.
Menerapkan ke Azure Web Apps
Azure Web Apps adalah layanan di Azure Portal yang memungkinkan Anda mengembangkan, menerapkan, dan mengelola aplikasi web dalam skala besar.
Untuk menerapkan ke Azure Web Apps, Anda harus menautkan kedua layanan tersebut. Begini caranya:
Berikut contoh pipeline YAML untuk deployment aplikasi
Node.jssederhana ke Azure App Service:Mari kita uraikan kode di atas, agar Anda dapat mengadaptasikannya untuk kebutuhan Anda:
your-azure-subscriptiondengan nama service connection yang memberi akses ke langganan Azure Anda.your-app-namedengan nama aplikasi web Anda yang sebenarnya di Azure.$(Build.ArtifactStagingDirectory)dengan direktori tempat paket atau file aplikasi web untuk deployment.$(Build.ArtifactStagingDirectory)— Variabel ini menunjuk ke folder tempat artifact build (file aplikasi Anda) berada setelah dibangun.Menyiapkan continuous deployment (CD)
Setelah semuanya di kode kita lolos semua uji dan pemeriksaan, langkah berikutnya adalah menyiapkan continuous deployment. Ikuti langkah-langkah di bawah ini.
Model deployment release pipeline Azure (Sumber: Microsoft)
Berdasarkan pengalaman, fase ini diperlukan untuk menjaga stabilitas di lingkungan pengembangan yang menuntut. Persetujuan dan gates memberikan kontrol dan memastikan hanya kode berkualitas yang mencapai produksi.
Menerapkan ke Kubernetes
Kubernetes memudahkan menjalankan aplikasi terkontainer yang andal dan dapat diskalakan. Saat menggunakan Azure Kubernetes Service (AKS), Anda mendapatkan lingkungan terkelola yang menyederhanakan deployment dan operasi. Di bagian ini, saya akan memandu cara menerapkan aplikasi Anda ke AKS menggunakan Azure Pipelines.
Menyiapkan Klaster AKS
Anda dapat membuat klaster AKS menggunakan Azure portal atau CLI. Berikut perintah Bash CLI dasar untuk menyediakan klaster:
Mari kita uraikan perintah di atas:
--resource-group: Menunjukkan resource group Azure tempat klaster AKS akan dibuat.--name: Mengacu pada nama klaster AKS Anda.--node-count: Menetapkan jumlah node dalam klaster (misalnya, 3 pada contoh ini).--enable-addons monitoring: Memungkinkan monitoring dan analitik dengan Azure Monitor for Containers.--generate-ssh-keys: Secara otomatis membuat kunci SSH untuk akses node yang aman jika tidak disediakan.Jangan lupa mengganti
<ResourceGroupName>dan<AKSClusterName>dengan nama resource group dan klaster Anda yang sebenarnya.Kubectl perlu dikonfigurasi setelah klaster AKS Anda disiapkan. Ini memastikan agen pipeline atau komputer lokal Anda dapat menggunakan
kubectluntuk berkomunikasi dengan klaster.Anda dapat mempercepat tugas Azure menggunakan alat baris perintah—Azure CLI cheat sheet ini adalah referensi praktis.
Membuat file YAML deployment
Mari ambil contoh file YAML deployment dasar untuk menerapkan image Docker ke Kubernetes:
Menerapkan menggunakan Azure Pipelines
Di pipeline YAML Anda, sertakan task untuk menerapkan ke AKS.
Commit dan push file YAML untuk memicu deployment.
AKS menyederhanakan orkestrasi kontainer, sehingga lebih mudah mengelola penskalaan, pembaruan, dan rollback. Menurut pengalaman saya, ini wajib dimiliki untuk aplikasi cloud-native modern.