Bisa mengurangi waktu deployment Github Actions?
(blog.lemonbase.team)Bisa mengurangi waktu deployment Github Actions?
Ini adalah tulisan tentang berbagai metode yang dicoba untuk mempersingkat waktu deployment dengan memanfaatkan Github Actions, serta pengalaman menyelesaikan masalah yang muncul di prosesnya.
- Waktu deployment yang terus bertambah menimbulkan masalah yang berdampak buruk pada kecepatan pengembangan dan produktivitas tim
- Tulisan ini menjelaskan bagaimana berbagai perbaikan dilakukan untuk mengatasi masalah tersebut, seperti mengubah proses deployment menjadi paralel dan memperkenalkan trigger build selektif
Situasi masalah
- Waktu deployment menggunakan Github Actions terus bertambah hingga mencatat rata-rata 27 menit
- Mulai memengaruhi produktivitas pengembangan
- Frontend, Intro, dan Backend dibangun serta dideploy secara berurutan; seiring waktu cara deployment ini menjadi tidak efisien dan menyebabkan waktu deployment meningkat
Perbaikan utama
- Penerapan pemrosesan paralel
- Pekerjaan deployment Frontend dan Backend yang sebelumnya berjalan serial dipisah menjadi paralel, sehingga waktu deployment berkurang dari 27 menit menjadi 18 menit.
- Dalam proses ini, kode Github Workflow juga dimodularisasi
- Penerapan trigger build selektif
- Menggunakan path-filter agar hanya bagian yang berubah saja yang dibangun, tetapi ditemukan situasi yang menimbulkan masalah saat rollback
- Alih-alih memakai pendekatan path-filter, opsi Workflow disediakan agar pengembang dapat memilih target deployment
- Strategi penggunaan Docker Image Tag
- Penggunaan ulang Docker Image memangkas waktu deployment dari 18 menit menjadi 15 menit.
- Pemrosesan paralel untuk Deploy
- Tahap Deploy juga dipisah agar bisa diproses secara paralel, sehingga waktu deployment semakin singkat
- Pemisahan intro
- Build halaman intro dipisahkan dari build layanan pada frontend untuk memaksimalkan efisiensi deployment.
Hasil
- Waktu deployment berkurang 55% (27 menit -> 12 menit)
- Penghematan waktu hingga 70% dimungkinkan, biaya infrastruktur menurun, dan produktivitas pengembangan produk meningkat.
- Manfaat tambahan
- Modulisasi Workflow meningkatkan reusabilitas dan kemudahan pemeliharaan
- Waktu penyelesaian masalah lebih singkat, stabilitas sistem meningkat
Belum ada komentar.