Sürekli teslim ile sürekli dağıtım karşılaştırması

Bu iki otomasyon uygulaması ile müşterilerinize yüksek kalitede kodları hızla sunun.

Sürekli teslim ve sürekli dağıtım nedir?

Sürekli tümleştirme, sürekli teslim ve sürekli dağıtım yöntemlerinin yanı sıra yazılım sunma aşamalarını otomatikleştiren yöntemler vardır. Bu uygulamalar geliştirme ekiplerinin yeni özellik, geliştirme ve düzeltmeleri müşterilerine daha hızlı, doğru ve verimli bir şekilde sunmalarını sağlar.

Sürekli teslim ve sürekli dağıtım pek çok ortak noktaya sahiptir. Bu uygulamalar arasındaki farkı anlayıp size uygun olanı bulmak için, otomatikleştirebileceğimiz yazılım teslim aşamalarını tanımlamamız gerekir.

Yazılım teslim sürecini otomatikleştirme

Tüketiciler, ürünlerde kişiselleştirme ve güvenliğin artmasını talep ediyor. Bu talepleri karşılayıp yazılımı daha hızlı ve güvenilir bir şekilde teslim etmek için dağıtım ekipleri DevOps kültürünü benimseyebilir.

DevOps kültürü, işbirliğini ve koordinasyonu iyileştirmek amacıyla silo disiplinlerini ortadan kaldırıp insanları, süreci ve teknolojiyi birleştirir. Sonuç olarak en kısa sürede kod değişiklikleri üretime, yeni değer de müşteriye ulaşır.

DevOps kapsamında geliştirme, BT operasyonları, kalite mühendisliği ve güvenlik ekipleri birlikte ve yakın bir şekilde çalışsa da yazılım teslimi, karmaşık bir süreç olmaya devam eder. DevOps, yazılım teslimini beş ayrı aşamada işler: planlama, geliştirme, teslim, dağıtım ve çalıştırma.

DevOps’ta yazılım teslimi

Geliştirme ekipleri yazılımları otomasyon olmadan el ile oluşturmalı, test etmeli ve dağıtmalıdır. Buna şunlar dahildir:

  • Kodu kullanıma alma, test etme ve onaylama.
  • Kod değişikliklerini ana dalla birleştirme.
  • Kodu yayınlanmaya hazırlama.
  • Dağıtılabilir yapıt oluşturma.
  • Kodu üretime gönderme.

Otomatikleştirilebilecek aşamalar

Sürekli tümleştirme, sürekli teslim ve sürekli dağıtım yöntemlerinin tümü, geliştirme ve teslim aşamalarının boyutlarını otomatikleştiren uygulamalardır. Her uygulama, sürekli tümleştirmeyle başlayarak otomasyonu bir adım ileri taşır.

Sürekli teslim ile sürekli dağıtım arasındaki fark

Sürekli tümleştirme

Sürekli teslimi ve sürekli dağıtımı tanımlamak için öncelikle sürekli tümleştirmeyle başlayacağız. Sürekli tümleştirme kapsamında, kod derleyip test etmeyi içeren geliştirme aşaması tamamen otomatikleştirilmiştir. Her kod işlediğinizde, değişiklikler onaylanır ve ana dalla birleştirilir. Kod bir yapıt derlemesinde paketlenir.

Sürekli teslim

Sürekli teslim, sonraki aşamayı otomatikleştirir: Teslim. Sürekli teslim kapsamında yeni bir derleme yapıtı her kullanıma sunulduğunda, yapıt otomatik olarak istenen ortama yerleştirilip dağıtılır.

Sürekli tümleştirme ve sürekli teslim (CI/CD)

Ekipler hem sürekli tümleştirmeyi hem de sürekli teslimi (CI/CD) uyguladığında, geliştirme ve teslim aşamaları otomatikleştirilir. Kod, üretim için her zaman hazır olur. Tüm ekiplerin, bir düğmeye basmak kadar basitleşebilen geliştirmeden dağıtıma geçişi el ile tetiklemesi, başka bir deyişle otomatikleştirilmiş derleme yapıtını otomatik dağıtımda kullanılabilir hale getirmesi yeterlidir.

Sürekli dağıtım

Sürekli dağıtım sayesinde kodun işlenmesinden üretime kadar olan sürecin tamamını otomatikleştirirsiniz. Geliştirme ve teslim aşamaları arasındaki tetikleme otomatiktir, yani kod değişiklikleri onaylanıp tüm testlerden geçtiği anda yayınlanır. Böylece müşteriler, iyileştirmeleri anında elde eder.

Sürekli teslim ile sürekli dağıtım karşılaştırması: Hangisini seçmelisiniz?

Sürekli teslim ve sürekli dağıtımdan hangisini benimsediğiniz fark etmeksizin, size destek olabilecek araçları bulabilirsiniz.

Bu uygulamaların hangisini uygulayacağınızı seçmeden önce, kuruluşunuzun bu uygulamaları destekleyebilecek bir DevOps kültürü olup olmadığını belirleyin. DevOps ekipleri tüm yazılım teslim sürecini otomatikleştirmeye çalışacağından, sonraki soru “hangisi daha iyi?” değildir. Bunun yerine, “sürekli tümleştirme ve sürekli teslim arasında el ile tetikleme yapmaya ihtiyacımız var mı?” sorusunu sormalısınız.

Yanıtı ararken sizi yönlendirmesi için şu soruları kullanın:

  • Proje katılımcılarının onayı olmadan dağıtabilir misiniz?
  • Sisteminiz ve geçit gereksinimleriniz uçtan uca otomasyona izin veriyor mu?
  • Müşterilerinizi bir seferde az üretim değişikliğine maruz bırakabilir misiniz?
  • Kuruluşunuz üretim hatalarına hızlı yanıt veriyor mu?

Tümüne evet yanıtını verdiyseniz kod işlemeden üretime kadar sürekli dağıtım uygulamayı ve yazılım teslimini tamamen otomatikleştirmeyi düşünebilirsiniz.

Herhangi birine hayır yanıtını verdiyseniz sürekli tümleştirme ve sürekli teslim (CI/CD) ile başlamanız gerekebilir. Dağıtımdan yalnızca bir el onayı ile kullanıma alınabilecek, üretime hazır kodların oluşturulmasını otomatikleştirirsiniz. Zaman içinde, sürekli dağıtıma yönelik çalışıp yazılım teslim sürecinizi tamamen otomatik hale getirebilirsiniz.

Her şekilde, bu iki uygulamanın ortak avantajlarını elde edersiniz:

  • Değişiklikler otomatik olarak oluşturulur, onaylanır ve test edilir.
  • Kod her zaman dağıtılabilir, yayın günü endişesine son.
  • Yayınlar daha hızlı bir şekilde proje katılımcısı ve müşteri geri bildirimi alır.
  • El ile yapılan görevlerin ve yönetici görevlerinin azalmasıyla geliştiriciler daha üretken hale gelir.
  • Değişiklikler küçük ve sık olduğundan, hatalar nadiren oluşur ve en az düzeyde kararsızlığa neden olur.

Sürekli tümleştirme, sürekli teslim ve sürekli dağıtım araçları

DevOps ekipleri yazılım teslimini otomatikleştirmek için, bağlı yazılım geliştirme programları serisi olan araç zincirlerine güvenir. Kullanacağınız araçlar seçeceğiniz otomasyon uygulamasına ve uygulamanın otomatikleştireceği aşamalara bağlıdır. Bazı örnekler aşağıda verilmiştir.

Azure’da DevOps’u uygulamaya başlayın

Hem sürekli teslim ve sürekli geliştirme araçlarını hem de buluttaki diğer DevOps uygulamalarını kolaylaştıran araçları keşfedin.