Engineering

Proses manajemen rilis untuk tim yang sering merilis

6 menit baca

Proses manajemen rilis adalah rangkaian langkah yang membawa sebuah perubahan dari “sudah di-merge” ke “berjalan di produksi dan dijelaskan kepada orang yang terdampak”. Untuk tim yang sering merilis, prosesnya terdiri dari tujuh langkah: merencanakan cakupan, mengisolasi perubahan, build dan tes, persetujuan, deploy dan verifikasi, komunikasi, dan tinjauan. Setiap langkah butuh satu pemilik bernama dan satu kriteria selesai, atau langkah itu diam-diam berhenti dilakukan.

Panduan ini mengasumsikan tim berisi 5 sampai 50 engineer yang deploy mingguan atau harian dan ingin prosesnya tidak menghalangi.

LangkahPemilikKriteria selesai
1. Merencanakan cakupanProduct atau tech leadDaftar perubahan di rilis ini tertulis, dan yang berisiko ditandai
2. Branch atau flagEngineer pemilik perubahanPekerjaan ada di branch berumur pendek atau di balik flag, sehingga main tetap siap rilis
3. Build dan tesCI, dengan penulis siaga untuk kegagalanPipeline hijau pada commit persis yang akan dirilis
4. PersetujuanReviewer, plus release manager untuk perubahan berisikoReview selesai, jalur rollback disebut, keputusan go atau no-go dicatat
5. Deploy dan verifikasiRelease manager atau engineer on-callTer-deploy, smoke check lulus, error rate dan latensi sesuai baseline sebelum rilis
6. KomunikasiOrang yang memahami perubahan, disunting orang yang tidakRelease notes terbit di tempat pengguna membaca, support dan sales diberi tahu
7. TinjauanRelease managerMetrik dibaca, apa pun yang salah punya pemilik dan perbaikan

Apa itu proses manajemen rilis?

Itu adalah jalur berulang yang diikuti sebuah perubahan untuk sampai ke pengguna: cakupan, build, tes, persetujuan, deploy, verifikasi, pengumuman, dan meninjau kembali. Gunanya menuliskannya adalah agar setiap rilis mengikuti jalur yang sama, sehingga orang yang sedang cuti, karyawan baru, atau engineer on-call pukul 2 pagi bisa menjalankannya tanpa bertanya kepada siapa pun cara kerjanya.

Apa saja jenis manajemen rilis?

Ada tiga jenis yang praktis: continuous deployment, rilis terjadwal, dan manajemen perubahan yang diatur regulasi. Ketiganya berbeda dalam seberapa banyak yang terjadi sebelum rilis dan seberapa banyak yang diotomatisasi. Continuous deployment merilis setiap perubahan yang di-merge, rilis terjadwal mengelompokkan perubahan dalam satu kereta, dan manajemen perubahan terregulasi menambahkan persetujuan formal dan jejak audit.

Continuous deploymentRilis terjadwalManajemen perubahan terregulasi atau ITIL
Unit rilisSatu pull request yang di-mergeSatu batch, mingguan atau dua mingguanSatu permintaan perubahan
Langkah cakupanImplisit, merge adalah cakupannyaRapat perencanaan rilisCatatan perubahan dengan peringkat risiko
PersetujuanCode review plus pemeriksaan otomatisRelease manager mengesahkan batchChange advisory board atau penyetuju yang didelegasikan
Kontrol risikoFeature flag, canary, rollback cepatStaging soak, release candidateRencana backout terdokumentasi, jendela pemeliharaan
Kadens umumBanyak per hariMingguan sampai bulananDitetapkan kalender perubahan
Titik lemahTidak ada yang memberi tahu pengguna apa yang berubahBatch besar menyembunyikan perubahan yang merusakWaktu proses melampaui perubahannya sendiri

Kebanyakan tim adalah campuran. Produk SaaS bisa deploy secara kontinu sementara aplikasi mobile-nya keluar dalam kereta mingguan, dan satu layanan pembayaran yang diperhatikan auditor mengikuti catatan perubahan formal. Pilih jenisnya per layanan, bukan per perusahaan. Ketika perubahan hanya diekspos bertahap, rilis dan pengumuman menjadi dua peristiwa terpisah, kasus yang dibahas di release notes feature flag.

Apa tanggung jawab seorang release manager?

Release manager memiliki jalur yang ditempuh perubahan menuju produksi. Mereka memegang kalender rilis, memutuskan apakah perubahan sudah siap, menjalankan atau mengawasi deploy, mengambil keputusan rollback, memastikan pengguna diberi tahu, dan menjalankan tinjauan sesudahnya.

Sebelum rilis, mereka memastikan cakupan dan memeriksa bahwa setiap perubahan berisiko punya jalur rollback. Selama rilis, mereka menjalankan checklist deploy, mengamati menit-menit pertama metrik produksi, dan memutuskan rollback lebih awal. Sesudahnya mereka memastikan catatan sudah keluar dan mencatat apa yang harus diperbaiki di proses.

Di tim kecil, putar perannya tiap minggu dan tulis checklist agar tidak ada yang butuh pengetahuan lisan. Monorepo dengan banyak paket yang dirilis mandiri biasanya butuh satu pemilik rilis per paket, atau perannya berubah menjadi hambatan.

Apa saja KPI utama untuk manajemen rilis?

Lacak metrik pengiriman software DORA, dan tambahkan satu milik Anda sendiri: berapa lama sampai pengguna diberi tahu. Riset DORA mengidentifikasi lima metrik, dibagi menjadi throughput (change lead time, deployment frequency, failed deployment recovery time) dan instabilitas (change fail rate, deployment rework rate).

Panduan DORA mendefinisikannya dengan istilah sederhana (dora.dev, software delivery metrics):

KPIYang diukurYang perlu diperhatikan
Change lead timeWaktu dari commit di version control sampai ter-deploy di produksiAngka yang naik biasanya berarti antrean di review atau persetujuan
Deployment frequencySeberapa sering Anda deploy, atau jeda antar deploymentFrekuensi yang turun berarti batch membesar
Failed deployment recovery timeWaktu pulih dari deployment yang butuh intervensi segeraMasalah rollback dan alerting terlihat di sini
Change fail ratePorsi deployment yang butuh rollback atau hotfixNaik ketika batch terlalu besar atau tes tipis
Deployment rework ratePorsi deployment yang tidak direncanakan dan disebabkan insiden produksiTanda bahwa perbaikan dirilis lebih cepat daripada pelajarannya
Waktu sampai pengguna diberi tahuMenit dari deploy produksi sampai catatan yang menghadap pengguna terbitUkur sendiri, tidak ada kerangka yang menyediakannya

Materi lama mendaftar empat metrik kunci dan menyebut pemulihan sebagai “time to restore”. Panduan saat ini memakai lima di atas.

Panduan yang sama memperingatkan agar metrik ini tidak diperlakukan sebagai target. Menetapkan tujuan seperti “semua deploy beberapa kali sehari pada akhir tahun” mengundang tim untuk mengakali angkanya, dan metrik dimaksudkan dibaca per aplikasi atau layanan, bukan dicampur di seluruh perusahaan. Saran praktisnya untuk memperbaiki semuanya adalah mengecilkan ukuran setiap perubahan, karena perubahan yang lebih kecil lebih mudah ditinjau, dilewatkan di pipeline, dan dipulihkan.

Bagaimana komunikasi rilis masuk ke proses manajemen rilis?

Ini langkah keenam, dan punya pemilik serta kriteria selesai seperti setiap langkah lain: catatan terbit di tempat pengguna membaca, dan tim internal diberi tahu. Tim paling sering melewatkannya, karena perkakas deployment melaporkan sukses begitu kode live.

Cara termurah menjaga langkah ini tepat jadwal adalah menulis entri saat perubahan di-merge, bukan saat rilis keluar. Pull request sudah memuat judul, penulis, issue yang tertaut, dan konteksnya. Draf yang dibangun darinya disunting, bukan ditulis dari ingatan seminggu kemudian. Itulah gagasan di balik otomatisasi changelog: turunkan draf saat merge, tahan untuk disetujui manusia, lalu terbitkan di mana-mana dari satu sumber. Changeloop bekerja seperti ini, membuat draf entri dari pull request yang di-merge dengan AI dan menahannya untuk persetujuan sebelum apa pun diterbitkan.

Dua variasi layak direncanakan sebelumnya. Support dan sales butuh catatan yang berbeda dari pelanggan, yang menjadi fungsi release notes internal. Rilis yang dipicu insiden tidak punya waktu untuk siklus penyusunan normal, jadi siapkan template singkat, seperti dijelaskan di release notes darurat. Template release notes memberi bentuk awal untuk versi yang menghadap pelanggan.

Bagaimana menjaga proses tetap ringan?

Otomatisasi setiap kriteria selesai yang bisa diperiksa mesin, dan sisakan manusia untuk penilaian. Pipeline hijau, penanda deploy di dasbor, dan draf entri changelog per pull request yang di-merge bisa diperiksa. Apakah rencana rollback meyakinkan, atau catatan masuk akal bagi pelanggan, membutuhkan manusia.

Untuk menguji proses, pilih satu rilis bulan lalu dan tanyakan apakah orang di luar tim bisa mengetahui, dari catatan tertulis saja, apa yang dirilis, siapa yang menyetujui, bagaimana diverifikasi, dan kapan pengguna diberi tahu. Celah apa pun adalah perbaikan Anda berikutnya.

FAQ

Apa perbedaan antara manajemen rilis dan manajemen perubahan? Manajemen rilis membuat sekumpulan perubahan di-build, dites, di-deploy, dan diumumkan. Manajemen perubahan, dalam pengertian ITIL, adalah proses persetujuan dan risiko di sekitar setiap perubahan. Tim yang sering merilis melebur persetujuan ke dalam code review dan pemeriksaan otomatis.

Seberapa sering kita sebaiknya merilis? Sesering yang diizinkan tes dan jalur rollback Anda, yang bagi banyak tim web berarti harian atau lebih. Panduan DORA adalah mengecilkan ukuran setiap perubahan, karena perubahan kecil lebih mudah ditinjau dan dipulihkan.

Apakah tim kecil butuh release manager? Mereka butuh tanggung jawabnya, tetapi belum tentu jabatannya. Putar peran itu di antara engineer, beri orang yang bertugas checklist tertulis, dan pastikan seseorang memiliki masing-masing dari tujuh langkah.

Apa yang harus ada di checklist rilis? Cakupan dikonfirmasi, pipeline hijau pada commit yang dirilis, jalur rollback disebut, persetujuan dicatat, smoke check setelah deploy, metrik dibandingkan dengan baseline, release notes terbit, support diberi tahu, dan tinjauan dijadwalkan. Jaga tetap satu halaman.


Klaim teknis dalam artikel ini belum ditinjau secara independen. Jika ada yang keliru, beri tahu kami dan kami akan memperbaikinya.

Terkait di changeloop: Dokumentasi developer, Templat catatan rilis

changeloop
Tim di balik changelog yang menutup lingkaran. Pengguna meminta sesuatu, timmu mengirimkannya, yang meminta jadi tahu.