DevOps’ta Pipelines Kavramı
İşletme sürekli değer teslimi ister ve bu değer yalnızca bir ürünün memnun bir müşteriye teslim edildiğinde yaratılır. İşlem bir silo tamamlandığında oluşturulmaz. Bu, odağı silolardan baştan sona bir değer akışına sıfırlamanızı gerektirir. Temel fikir, yazılımı konseptten müşteriye götürmek için tekrarlanabilir, güvenilir ve adım adım iyileştirici bir süreç oluşturmaktır. Bunun amacı, otomatik bir yazılım üretim hattı aracılığıyla üretime sürekli bir değişiklik akışı sağlamaktır. Bunu bir boru hattı olarak düşünebilirsiniz.
Pipelines yazılım teslim sürecini aşamalara ayırmaktadır. Her aşamada, yeni işlevselliğin doğrulanması ve hataların kullanıcılarınızı etkilemesini önlemek için yeni özelliklerin kalitesini farklı bir açıdan doğrulamayı amaçlamaktadır. Pipelines ekibe geri bildirim sağlamalı ve yeni özelliklerin sunulmasında yer alan herkese değişiklik akışı konusunda görünürlük sağlamalıdır.
Bir dağıtım pipelines, akışa odaklanarak daha küçük değişikliklerin akışını daha sık sağlar. Ekipleriniz, işletmeye ölçülebilir değer getiren değişikliklerin dağıtımını optimize etmeye odaklanabilir. Bu yaklaşım, ekiplerin engellerle nerede karşılaştıklarını sürekli olarak izlemelerini ve öğrenmelerini, bu sorunları çözmelerini ve pipelines akışını kademeli olarak iyileştirmelerini sağlar. Süreç devam ettikçe, geri bildirim döngüsü, yeni sorunlara ve çözülecek engellere ilişkin yeni bilgiler sağlar. Pipelines, sürekli gelişim döngünüzün odak noktasıdır.
Tipik bir pipelines aşağıdaki aşamaları içerir:
Yapım otomasyonu ve sürekli entegrasyon; test otomasyonu; ve dağıtım otomasyonu.
- Otomasyon ve Sürekli Entegrasyon oluşturma
Pipelines, sonraki aşamalara aktarılacak olan teslimatların yaratılması için ikili dosyaların oluşturulmasıyla başlar. Geliştiriciler tarafından uygulanan yeni özellikler, merkezi bir kod tabanına sürekli olarak entegre edilmiştir ve test edilmiştir. Bu, geliştirme ekibini uygulama kodlarının sağlığı hakkında bilgilendiren en doğrudan geribildirim döngüsüdür.
- Test Otomasyonu
Bu aşamada, bir uygulamanın yeni sürümü, istenen tüm sistem niteliklerini karşıladığından emin olmak için titizlikle test edilir. Tüm ilgili hususların – işlevsellik, güvenlik, performans veya uygunluk – pipelines tarafından doğrulanması önemlidir. Aşama, farklı türlerde otomatikleştirilmiş ya da (en azından başlangıçta) manuel faaliyetler içerebilir.
- Dağıtım Otomasyonu
Uygulama sınamak için bir ortama her yüklendiğinde bir dağıtım gerekir, ancak dağıtım otomasyonu için en kritik an başlama zamanıdır. Önceki aşamalar sistemin genel kalitesini doğruladığından, bu düşük riskli bir adımdır. Dağıtım, yeni sürümün başlangıçta üretim ortamının bir alt kümesine bırakılması ve tamamen dağıtılmadan önce izlenmesi ile gerçekleştirilebilir. Dağıtım otomatik olarak yapılır ve gerektiğinde kullanıcılara dakikalar içinde yeni işlevlerin güvenilir bir şekilde teslim edilmesini sağlar.