CI/CD hattı kurulduğunda kodun hangi kontrollerden geçerek canlıya çıktığını herkesin görebilmesi gerekir. Aksi hâlde bir yayın durduğunda ekip aynı soruları yeniden sorar: Hangi değişiklik test edildi, kim onay verdi, canlıya hangi sürüm çıktı ve sorun ne zaman başladı? KOBİ’lerde de kurumsal ekiplerde de görünür bir yayın akışı, bu soruların yanıtını kişilerin hafızasına bırakmaz. Kod değişikliğinden izlemeye uzanan adımları ve her adımın sorumlusunu önceden tanımlamak, yayın kararını daha anlaşılır hâle getirir.
01CI/CD hattında yayın adımlarını görünür kılmak için akışı haritalayın
CI, kod değişikliklerinin bir araya getirilip otomatik kontrollerden geçirilmesidir. CD ise doğrulanan değişikliğin yayın için hazırlanmasını ve belirlenen kurallarla ortama aktarılmasını kapsar. Görünürlük için ilk iş, mevcut akışı bir şemada toplamak olmalıdır: Kod incelemesi nerede yapılır, testler ne zaman çalışır, yayın adayı nasıl belirlenir, canlıya geçişi kim başlatır?
Şemayı yalnızca teknik araç adlarından oluşturmayın. Her aşama için giriş koşulunu, beklenen çıktıyı ve sorumluyu yazın. Örneğin bir değişiklik kod deposuna eklendiğinde otomatik testlerin başlaması giriş koşuludur; test sonuçları ve değişikliğe bağlı kayıt ise çıktıdır. Yayın adayı aşamasında hangi kod sürümünün, hangi yapılandırmayla ve hangi ortamda değerlendirildiği görülebilmelidir.
- Değişikliğin kaydını ilgili iş ihtiyacı veya hata bildirimiyle ilişkilendirin.
- Test edilen sürüm ile canlıya alınacak sürümün aynı olup olmadığını kontrol edin.
- Her aşamada bekleyen, başarısız olan ve tamamlanan işleri ekipçe görülebilir kılın.
- Yayın kararının hangi kayda dayanacağını önceden belirleyin.
Bu harita, yazılım ve altyapı ekipleri için ortak bir dil oluşturur. Bir adımın sahibi ya da çıktısı belirsizse yeni araç eklemeden önce o boşluğu gidermek daha yararlıdır.
02Otomatik testlerin sonucunu yayın kararına bağlayın
Otomatik test yalnızca arka planda çalışan bir görev olmamalıdır. Hangi testin çalıştığı, sonucu ve başarısızlık durumunda hattın nasıl davranacağı görülebilmelidir. Birim testleri belirli kod parçalarını, API testleri servisler arasındaki davranışı, arayüz testleri ise kullanıcı akışlarını değerlendirmek için kullanılabilir. Seçim, uygulamanın risklerine ve değişiklik sıklığına göre yapılmalıdır.
Örneğin sipariş oluşturan bir uygulamada kritik akışın testi başarısız olduysa yayın adayı otomatik olarak ilerlememelidir. Buna karşılık kritik olmayan bir testin neden kararsız sonuç verdiği ayrıca incelenebilir. Önemli olan, hangi sonucun yayını durduracağına hata ortaya çıktıktan sonra değil, ekipçe önceden karar vermektir.
Test raporunu değerlendirirken yalnızca genel bir başarılı veya başarısız işaretine bakmayın. Başarısız testin adı, ilgili değişiklik, test ortamı ve önceki çalıştırmalarla farkı görülebilmelidir. Test tekrar çalıştırıldıysa ilk sonucun kaybolmaması da incelemeyi kolaylaştırır. Böylece ekip, geçici bir ortam sorunuyla uygulamadaki hatayı birbirinden ayırmak için dayanak bulur.
OPEIS Teknoloji’nin test ve kalite güvence kapsamındaki birim, API ve arayüz test otomasyonu yaklaşımı, bu kontrollerin yayın akışındaki yerini düşünmek için somut bir çerçeve sunar. Ancak her kontrolü otomatikleştirmek yerine hangi testin hangi riski değerlendirdiğini yazılı olarak belirtmek gerekir.
03İnsan onayı gereken noktaları ekiple önceden belirleyin
Otomasyon, her yayın kararının insansız alınması anlamına gelmez. Kod incelemesi, canlıya geçiş veya yüksek etkili bir yapılandırma değişikliği gibi noktalarda insan onayı gerekebilir. Bunun nerede gerekli olduğu; verinin hassasiyetine, sistemin etkisine ve kurumun çalışma biçimine göre değerlendirilmelidir. Her değişiklik için aynı onay zincirini kurmak yerine risk düzeyine uygun bir akış tanımlayın.
Örneğin yalnızca metin düzenlemesi içeren bir değişiklik ile veri akışını etkileyen bir API değişikliği aynı değerlendirmeyi gerektirmeyebilir. Ekip, hangi tür değişikliklerde teknik inceleme, ürün sorumlusu değerlendirmesi veya canlıya alma onayı arayacağını önceden yazmalıdır. Onay verecek kişinin değişikliği yapan kişiden farklı olması gerekiyorsa bu kural da açıkça belirtilmelidir.
- Onayın amacı nedir: Teknik uygunluk, iş akışı doğrulaması veya yayın zamanlaması mı?
- Onaylayan kişi hangi test sonucunu ve değişiklik özetini görecek?
- Onay verilmezse değişiklik hangi aşamaya dönecek?
- Asıl sorumlu erişilebilir değilse kararı kim değerlendirecek?
Onay kaydında kimin, hangi sürüm için, hangi bilgiye dayanarak karar verdiği bulunmalıdır. Böyle bir kayıt yalnızca denetim için değil, yayın sonrasında ortaya çıkan bir sorunu anlamak için de işe yarar. İnsan onayının amacı belirsizse süreç bir kontrol noktası olmaktan çıkıp bekleme adımına dönüşebilir.
04Canlıya alımı ve izlemeyi aynı yayın kaydında takip edin
Yayın, dağıtım aracının tamamlandı mesajıyla bitmez. Uygulamanın beklenen şekilde çalışıp çalışmadığını anlamak için canlıya alma adımı izlemeyle birlikte tasarlanmalıdır. Yayın kaydında sürüm bilgisi, dağıtım sonucu, ilgili değişiklikler ve kontrol edilecek göstergeler bir arada bulunursa teknik ekip ile ürün yöneticisi aynı durumu değerlendirebilir.
İzleme göstergeleri uygulamanın işlevine göre seçilir. Hata kayıtları, servis erişilebilirliği ve önemli kullanıcı akışlarının durumu farklı sorulara yanıt verir. Örneğin uygulama erişilebilir görünürken sipariş oluşturma akışında hata yaşanabilir. Bu nedenle yalnızca sunucunun çalıştığını görmek, yayının beklenen sonucu verdiğini söylemek için yeterli değildir.
Yayın sonrasında beklenmeyen bir durum görüldüğünde kimin inceleme başlatacağı ve hangi koşulda geri dönüş seçeneğinin değerlendirileceği de önceden yazılmalıdır. Geri dönüş kararı her sistemde aynı şekilde uygulanamaz; veri değişiklikleri veya bağımlı servisler değerlendirmeyi etkileyebilir. Bu yüzden ekip, yayın öncesinde geri dönüşün uygulanabilirliğini ve olası kısıtlarını gözden geçirmelidir.
- Canlıya alınan sürümü ve dağıtım sonucunu kayıt altına alın.
- Yayın öncesi ve sonrası izleme verilerini karşılaştırın.
- Uyarının kime ulaşacağını ve incelemeyi kimin üstleneceğini belirtin.
- Sorun, alınan karar ve sonraki iyileştirme adımını aynı yayın kaydıyla ilişkilendirin.
CI/CD hattı, izleme ve kayıtlar birlikte ele alındığında yayın sürecinin nerede yavaşladığı ya da hangi kontrolün sık başarısız olduğu da görülebilir. Bu gözlemler, hattı yeni gereksinimlere göre düzenlemek için kullanılabilir.
05Sık sorulan sorular
CI/CD hattında her canlıya alma için insan onayı gerekir mi?
Bu karar değişikliğin etkisine ve kurumun risk yaklaşımına bağlıdır. Ekip, hangi değişikliklerin otomatik ilerleyebileceğini ve hangilerinin yayın öncesinde insan değerlendirmesi gerektirdiğini yazılı olarak belirlemelidir. Onay noktası varsa onaylayanın göreceği test sonuçları ve değişiklik özeti de tanımlanmalıdır.
Otomatik testler başarılıysa yayın doğrudan tamamlanmış sayılır mı?
Hayır. Otomatik testler önemli bir kontrol sağlar; ancak canlı ortamdaki davranış ayrıca izlenmelidir. Dağıtım sonucunu, uygulama hatalarını ve kritik kullanıcı akışlarını birlikte değerlendirmek, yayının durumunu daha doğru anlamaya yardımcı olur.
Yayın adımlarını görünür kılmaya nereden başlamalıyız?
Mevcut bir yayını baştan sona inceleyin. Kod değişikliği, test sonucu, onay ve canlı ortam kaydı arasında hangi bağlantıların eksik olduğunu bulun. Önce bu boşlukları ve sorumluları netleştirin; ardından otomasyon ve raporlamayı ihtiyaç duyulan noktalarda geliştirin.
06Sonuç: Yayın kararını görülebilir bir sürece dönüştürün
Görünür bir yayın akışı için kod değişikliğinin kaydı, otomatik test sonuçları, önceden belirlenmiş insan onayları ve canlı ortam izlemesi birbirine bağlanmalıdır. Siz de ekibinizle önce mevcut akışı haritalayıp belirsiz karar noktalarını belirleyebilirsiniz. CI/CD hattı kurulumu, yayın otomasyonu ve altyapı izleme kapsamını değerlendirmek için OPEIS Teknoloji DevOps & Altyapı Yönetimi hizmetini inceleyebilirsiniz.
DESTEK
Bu konuda destek alın
Yazıdaki yaklaşımı kendi altyapınıza uyarlamak için ekibimize yazın. 1 iş günü içinde dönüş yapıyoruz.
İletişime geçin