9 puan yazan whatsup 2024-08-14 | Henüz yorum yok. | WhatsApp'ta paylaş

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-filter kullanıldı, ancak rollback sırasında sorun yaratan durumlar tespit edildi
    • path-filter yaklaşımı yerine, geliştiricilerin dağıtım hedefini seçebilmesi için Workflow seçenekleri sunuldu
  • 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.

Henüz yorum yok.