🔗 Ekosistem
Ekosistem: Tek başına Jenkins, orkestrası olmayan bir şeftir — müziğin tam olarak ne zaman başlayacağını bilir ama enstrümanları sağlaması için Docker'a (tutarlı ortamlar), notal
Tek başına Jenkins, orkestrası olmayan bir şeftir — müziğin tam olarak ne zaman başlayacağını bilir ama enstrümanları sağlaması için Docker'a (tutarlı ortamlar), notaları sağlaması için Git'e (tek doğruluk kaynağı) ve seyirciye performansın nasıl geçtiğini söylemesi için Slack'e ihtiyacı vardır. Peki Jenkins zaten herhangi bir shell komutunu çalıştırabiliyorsa, neden her şeyi kendi içinde scriptlemiyor da bu araçlara ihtiyaç duyuyor? Çünkü Jenkins'in işi orkestrasyondur, state değil — tıpkı bir Java `@Scheduled` job'ının aynı zamanda kendi veritabanı ve loglama framework'ü olmaması gerektiği gibi, Jenkins de kaynak geçmişini, runtime ortamını veya bildirim kanalını sahiplenmemelidir. Her araç ayrı, değiştirilebilir ve bağımsız test edilebilir kalır. Bu ayrımı atlamanın QA maliyeti hızla ortaya çıkar: kendi ortam kurulumunu Docker kullanmak yerine elle yazan bir pipeline, developer'ların yerelde çalıştırdığından zamanla sapar ve 'Jenkins'te yeşil, benim makinemde kırmızı' nadir değil tekrarlayan bir incident haline gelir.
Jenkins Büyük Resme Nasıl Uyuyor
Tek başına Jenkins bir orkestratördür — kendisi hiçbir şey build etmez, test etmez veya deploy etmez, bu işi yapması için bir tetikleyici üzerine diğer araçları çağırır. Gerçek değeri onu tetikleyen bir versiyon kontrol sistemine, her build'e temiz ve tekrarlanabilir bir ortam veren bir container runtime'a, merge'leri sadece "testler geçti" den fazlasıyla kapılayan bir kod kalite tarayıcısına ve döngüyü insanlara geri kapatan bir bildirim sistemine bağlanmasından gelir.
Jenkins Ekosistemi — Kim Kiminle Konuşuyor
Her araç kendi işini iyi yapar — Git tetikler, Jenkins orkestre eder, Docker izole eder, SonarQube kapılar, Slack bildirir.
Pratik: Jenkins ekosistem bildirim adımını tamamla
TODO alanını failure durumunda Slack kanalına build linki gönderecek şekilde tamamla.
Jenkins Ekosisteminde Araçlar Nasıl Konuşur
GitHub/GitLab webhook, yeni push veya PR bilgisini Jenkins'e yollar.
Jenkins orkestre eder
Jenkins stage sırasını, agent seçimini ve hangi aracın ne zaman çağrılacağını yönetir.
Build ve test agent'ları sabit image'larla çalışır; ortam drift'i azalır.
SonarQube coverage, code smell ve vulnerability sonuçlarını kalite kapısına çevirir.
Sonuç ekibe linkli mesaj olarak döner; insanlar doğru build'e tek tıkla gider.