- CI/CD araçlarının kullanımı geliştirici üretkenliğini artırıyor
- Bu yılın nisan ayında Birleşik Krallık merkezli geliştirici analiz şirketi SlashData ile küresel açık kaynak topluluğu Continuous Delivery Foundation(CDF) tarafından yayımlanan ‘State Of Continuous Integration & Continuous Delivery Report’ araştırma sonuçlarına göre
- CI/CD araçları (managed veya self-hosted) kullanan geliştiricilerin, kullanmayanlara kıyasla kod değişikliği lead time’ı, servis kurtarma süresi ve dağıtım sıklığında daha yüksek performans gösterme olasılığı daha yüksek
- Bu üçü, geliştirici üretkenliğini değerlendiren DORA’nın temel metriklerinin bir kısmı
- CI/CD araçlarını kullanmayan geliştiricilerin, kullananlara göre daha düşük performans gösterme olasılığı daha yüksek
- Hem managed hem de self-hosted CI/CD araçlarını kullanan geliştiriciler, kod değişikliği lead time’ı, servis kurtarma süresi ve dağıtım sıklığında en iyi performansı gösteriyor
- SlashData ve CDF’ye göre, kod değişikliği lead time’ı bir günden kısa olan geliştiriciler arasında en büyük pay, hem managed hem self-hosted CI/CD araçlarını kullanan geliştiricilerde (%24)
- Onları yalnızca managed CI/CD araçlarını kullanan geliştiriciler (%22), yalnızca self-hosted CI/CD araçlarını kullanan geliştiriciler (%17) ve CI/CD araçlarını kullanmayan geliştiriciler (%13) izliyor
- Kod değişikliği lead time’ı bir ay veya daha uzun olan geliştiriciler arasında en büyük pay, CI/CD araçlarını kullanmayan geliştiricilerde (%40); ardından yalnızca self-hosted CI/CD araçlarını kullanan geliştiriciler (%33), yalnızca managed CI/CD araçlarını kullanan geliştiriciler (%30) ve hem managed hem self-hosted CI/CD araçlarını kullanan geliştiriciler (%19) geliyor
- Servis kurtarma süresi 1 saatten kısa olan geliştiriciler arasında en büyük pay, hem managed hem self-hosted CI/CD araçlarını kullanan geliştiricilerdeydi (%25)
- Onları yalnızca self-hosted CI/CD araçlarını kullanan geliştiriciler (%17), yalnızca managed CI/CD araçlarını kullanan geliştiriciler (%15) ve CI/CD araçlarını kullanmayan geliştiriciler (%11) izledi
- Servis kurtarma süresi bir hafta veya daha uzun olan geliştiriciler arasında en büyük pay, CI/CD araçlarını kullanmayan geliştiricilerde (%32); ardından yalnızca self-hosted CI/CD araçlarını kullanan geliştiriciler (%29), yalnızca managed CI/CD araçlarını kullanan geliştiriciler (%25) ve hem managed hem self-hosted CI/CD araçlarını kullanan geliştiriciler (%17) geliyor
- SlashData ve CDF, “Hem managed hem self-hosted CI/CD araçlarını birlikte kullanmak, managed araçların kullanım kolaylığı ve yerleşik özelliklerini, self-hosted araçların özelleştirilebilir işlevleriyle birleştirerek verimliliği artırabilir” diyor
- Söz konusu araştırmada managed CI/CD araçları Azure Pipelines ve AWS CodePipeline’ı, self-hosted CI/CD araçları ise Jenkins ve TeamCity’yi ifade ediyor
- Birden fazla self-hosted CI/CD aracı kullanıldığında performans düşüyor
- Aynı türden birden fazla CI/CD aracı kullanmak dağıtım performansını düşürebilir
- Bu durum özellikle birden fazla self-hosted CI/CD aracı kullanıldığında belirginleşiyor
- SlashData ve CDF araştırmasına göre, self-hosted CI/CD araçlarının sayısı arttıkça kod değişikliği lead time’ı, dağıtım sıklığı ve servis kurtarma süresinde bir ay veya daha uzun süren düşük performanslı geliştiricilerin oranı hızla artıyor
- İki kuruma göre, kod değişikliği lead time’ı bir ay veya daha uzun olan geliştiriciler arasında en büyük pay, 4 self-hosted CI/CD aracı kullanan geliştiricilerdeydi
- Dağıtım sıklığı ve servis kurtarma süresi ayrı ayrı bir ay veya daha uzun olan geliştiriciler arasında ise en büyük pay, 5 veya daha fazla self-hosted CI/CD aracı kullanan geliştiricilerdeydi
- Buna karşılık, kod değişikliği lead time’ı ve servis kurtarma süresi ayrı ayrı bir günden kısa olan geliştiriciler arasında en büyük pay, 1 managed CI/CD aracı kullanan geliştiricilerdeydi
- SlashData ve CDF, self-hosted CI/CD araçlarının sayısının artmasının servis kurtarma süresi üzerinde olumsuz etki yaratmasının başlıca nedeni olarak ‘interoperability’ sorununa işaret ediyor
- Birden fazla CI/CD aracı kullanıldığında tüm araçları düzgün biçimde entegre etmek zorlaşabiliyor
- Bu nedenle hizmeti etkileyen sorunları izole etmek güçleşebiliyor
- Yapay zeka ve makine öğrenimi, CI/CD ile daha sıkı entegre oluyor
- Yapay zeka ve makine öğrenimi, CI/CD pipeline’larına daha fazla entegre ediliyor
- Yapay zeka tabanlı CI/CD pipeline’ları sorunların daha hızlı tespit edilmesini destekliyor
- Bu da geliştirme ve test ekiplerinin troubleshooting ve debugging için harcadığı süreyi önemli ölçüde azaltmasına yardımcı oluyor
- Yapay zeka, CI test ortamı kurulumunu otomatikleştiriyor ve testleri hızlandırıyor
- Bu, CD pipeline’ında akıllı otomasyonu ilerletiyor; kod inceleme ve testleri de otomatikleştiriyor
- Yapay zeka ve makine öğrenimi uygulanarak koddaki güvenlik açıkları tespit ediliyor
- Tahmine dayalı analitiğin, CI/CD pipeline’larında potansiyel sorunları ve başarısızlıkları öngörmek için aktif biçimde kullanılmasının beklendiği belirtiliyor
- Bu teknoloji veri, istatistiksel algoritmalar ve makine öğrenimini kullanıyor
- Böylece geçmiş build başarısızlığı kalıplarını analiz ederek, ekiplerin sorunları dağıtım pipeline’ını etkilemeden önce önceden tespit edip çözmesine yardımcı oluyor
- Sonuç olarak dağıtımlar daha hızlı ve daha kararlı hale geliyor
- Yapay zeka ve makine öğrenimi, bundan sonra CI/CD’ye daha geniş ve daha sıkı biçimde uygulanacak
- GitOps’un CI/CD üzerindeki etkisi artıyor
- GitOps, CI/CD pipeline’ları üzerinde giderek daha etkili oluyor
- Bu, sürüm kontrolü, iş birliği, compliance ve CI/CD gibi uygulama geliştirmede kullanılan DevOps en iyi uygulamalarını altyapı otomasyonuna uygulayan bir operasyon çerçevesi
- Birçok kuruluş, CI/CD süreçlerinin bir parçası olarak GitOps’u hayata geçiriyor
- Geliştiriciler GitOps ile Git repository’sini kod ve yapılandırma için tek doğru kaynak (SSOT) olarak kullanabiliyor
- Git repository’sinde kod veya yapılandırma değişikliği
- GitOps, altyapı ve uygulama dağıtımı genelinde sürüm kontrollü değişiklikleri teşvik ediyor, iş birliğini sadeleştiriyor ve görünürlüğü artırıyor
- Çünkü GitOps, tüm yapılandırma ve dağıtım manifestlerini Git repository’si içinde merkezileştiriyor
- GitOps, Git merkezli iş akışıyla artımlı güncellemelerin otomatik olarak yayınlanmasını sağlıyor; geliştiricilerin cluster yönetmesini ve yapılandırma hataları olmadan verimli, güvenli uygulamalar sunmasını destekliyor
- Hız, verimlilik ve kullanım kolaylığının etkisiyle; kuruluşlar DevOps iş akışlarını sadeleştirip IaC en iyi uygulamalarını benimsedikçe GitOps, CI/CD’de yaygın biçimde kullanılacak
- Edge computing’i benimseme ihtiyacı artıyor
- CI/CD pipeline’larında edge computing’i benimseme ihtiyacı büyüyor
- Edge computing, verinin üretildiği yerde veya ona yakın bir noktada veriyi gerçek zamanlı işlemek ve cihazları çalıştırmak anlamına geliyor
- Bu, veriyi gerçek zamanlı işleyip analiz ettiği için gecikmeyi azaltıyor ve uygulamaların daha verimli ve daha hızlı çalışmasına yardımcı oluyor
- CI/CD pipeline’larının edge dağıtımları destekleyecek şekilde uyum sağlaması gerektiği görüşü öne çıkıyor
- Örneğin hafif dağıtımlar oluşturmak veya containerization kullanarak edge cihazlara daha kolay dağıtım yapmak
- Geliştirme ekiplerinin edge cihazlara program ve hizmetlerin en güncel sürümlerini güvenilir biçimde sunması her zamankinden daha önemli hale geliyor
- CI/CD pipeline’larını edge’e bağlamak, edge uygulamaları için tutarlı ve verimli bir geliştirici deneyimi sağlayarak operasyonel verimliliği artırıyor
- Erken geri bildirimle birlikte uygulamaları edge’e otomatik olarak dağıtıp test ederek daha iyi ürünleri daha hızlı sunmak mümkün oluyor
- Bazı hizmetler edge dağıtımı desteklese de, CI/CD pipeline’ları dahil mevcut pipeline’lar için yeni araçlar ve eklentilerin ortaya çıkma olasılığı yüksek
1 yorum
Açıkçası, yapay zeka tabanlı CI/CD'nin normal CI/CD'den tam olarak ne farkı olduğunu ben de pek bilmiyorum...