Github Actions dağıtım süresini azaltmayı deneyelim mi?
(blog.lemonbase.team)Github Actions dağıtım süresini azaltmayı deneyelim mi?
Bu yazı, Github Actions kullanılarak yapılan dağıtım süresini kısaltmak için denenen çeşitli yöntemleri ve bu süreçte karşılaşılan sorunları çözme deneyimini içeriyor.
- Dağıtım süresi giderek uzarken bunun geliştirme hızını ve ekip verimliliğini olumsuz etkilemesi sorunu ortaya çıktı
- Sorunu çözmek için dağıtım sürecinin paralel işlemeye dönüştürülmesi ve seçmeli build tetikleyicilerinin eklenmesi gibi çeşitli iyileştirmelerin nasıl yapıldığı anlatılıyor
Sorun durumu
- Github Actions kullanan dağıtım süresi zamanla uzadı ve ortalama dağıtım süresi 27 dakikaya çıktı
- Geliştirme verimliliğini etkilemeye başladı
- Frontend, Intro ve Backend'i sıralı olarak build edip dağıtan yapı, zaman geçtikçe verimsiz hale gelerek dağıtım süresini artırdı
Başlıca iyileştirmeler
- Paralel işlemeye geçiş
- Seri şekilde dağıtılan Frontend ve Backend dağıtım işlerinin paralel olarak ayrılmasıyla dağıtım süresi 27 dakikadan 18 dakikaya indirildi.
- Bu süreçte Github Workflow kodu da modüler hale getirildi
- Seçmeli build tetikleyicilerinin eklenmesi
- Yalnızca değişen kısımları build etmek için
path-filterkullanıldı, ancak rollback sırasında sorun yaratan durumlar tespit edildi path-filteryaklaşımı yerine, geliştiricilerin dağıtım hedefini seçebilmesi için Workflow seçenekleri sunuldu
- Yalnızca değişen kısımları build etmek için
- Docker Image Tag kullanım stratejisi
- Docker Image'ların yeniden kullanımıyla dağıtım süresi 18 dakikadan 15 dakikaya indirildi.
- Deploy aşamasının paralel işlenmesi
- Deploy aşaması da paralel işlemeye uygun olacak şekilde ayrıştırılarak dağıtım süresi daha da kısaltıldı
- Intro'nun ayrılması
- Frontend'de intro sayfası build'i, servis build'inden ayrılarak dağıtım verimliliği en üst düzeye çıkarıldı.
Sonuç
- Dağıtım süresinde %55 azalma (27 dakika -> 12 dakika)
- En fazla %70'e kadar zaman tasarrufu, altyapı maliyetlerinde düşüş ve ürün geliştirme verimliliğinde artış.
- Ek faydalar
- Workflow modülerleştirmesi sayesinde yeniden kullanılabilirlik ve bakım kolaylığı arttı
- Sorun çözme süresi kısaldı, sistem kararlılığı arttı
Henüz yorum yok.