Azure DevOps Pipelines: CI-CD ve Triggers/Agents

Estimated reading time: 9 minute(s)

Merhaba, bu yazımda CI-CD süreçlerini özetleyip, Azure DevOps üzerinde uygulamayı anlatmaya çalışacağım.

İlk dört bölümde ne yaptığımızı hatırlayacak olursak;

ASP.NET Core Web Api oluşturup Azure DevOps repoya gönderdik.
Projeyi Dockerize ettik.

Build pipeline oluşturup, Azure Devops üzerinde projeyi Dockerize edip Docker Hub’a gönderdik.

Release için SSH Connection ile Docker Hub’da bulunan image’ımızı sunucu üzerinde çalıştırdık.

Şimdi Continuous IntegrationContinuous Delivery ve Continuous Deployment kavramlarını net bir şekilde anlayabilmeniz için, yaptığımız uygulama üzerinden anlatmaya çalışayım.

CI – Continuous Integration: Uygulamamız üzerinde yapacağımız her değişiklik ve push sonrası otomatik olarak Build Pipeline’ımız çalışacak ve Docker Hub üzerinde kullanılabilir bir versiyon oluşacak.

CD – Continuous Delivery: Bir önceki yazıda oluşturduğumuz Release pipeline’ı tam olarak bu terimi karşılıyor. Oluşturulmuş bir build kullanılarak SSH connection üzerinden deployment tamamlanıyor. Buradaki ince ayrıntı, bizim release’i manuel olarak tetiklememizdir.

Continuous Deployment: Continuous Delivery ile tek farkı sürecin otomatik olarak ilerliyor olmasıdır. Biz kod üzerinde bir değişiklik yapıp repoya gönderdiğimizde, ilk olarak Build Pipeline çalışıp Docker Hub üzerinde Image oluşacak. Sonrasında otomatik olarak Release çalışıp Deployment’ı tamamlayacak.

Continuous Delivery ve Continuous Deployment’ın seçim tercihi basitçe uygulama kritikliğine göre yapılır. Eğer sorumluluğu yüksek bir uygulama geliştiriliyorsa (banka uygulamaları vs.) genellikle Continuous Delivery tercih edilir. Integration ve Deployment arasına tercihi kontroller gelir. Integration sonrası herşey yolundaysa Deployment manuel olarak tetiklenir.


Continuous Integration Trigger: Push sonrasında Build Pipeline’ın otomatik çalışmasını sağlar.

Pipelines->Builds menüsüne gidip sağ üstte bulunan Edit butonuna tıklayın.

Aşağıdaki resimde yer alan kısımdan Triggers sayfasına gidin.

Build Pipeline Trigger’ını bu ekrandan ayarlayabilirsiniz. Dilerseniz Trigger’ı Disable edebilir, hangi branch üzerinde çalışacağını da ayarlayabilirsiniz. Varsayılan Enable gelmektedir.

Disable etmek için Override the YAML continuous integration trigger from here seçilmelidir.

Continuous Deployment Trigger: Build Pipeline’ın başarılı şekilde tamamlanması durumunda otomatik olarak Release Pipeline’ın tetiklenmesini sağlar.

Pipelines->Releases menüsüne gidip sağ üstte bulunan Edit butonuna tıklayın.

Açılan ekranda Artifacts kısmında bulunan şimşek butonuna tıklayın, gelen ekranda Continuous deployment trigger’ı Enabled olarak seçin ve kaydedin.

İşte bu kadar. Artık her push sonrasında otomatik Build ve Release işlemleri gerçekleşecek.


Agents: Azure DevOps işçisi olarak tanımlanabilir. Pipeline’lar, Agent’lar aracılığıyla çalıştırılır. Eğer aktif bir Agent yoksa yukarıda anlattığım hiçbir işlem çalışmayacaktır. Organization Settings->Pipelines->Agent Pools menüsünden ajanları ve gerçekleştirdikleri işleri görüntüleyebilirsiniz.

Okuduğunuz için teşekkürler, umarım sizin için faydalı bir yazı serisi olmuştur. Sormak istediğiniz sorularınız olursa yorum kısmından sorabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir