DevOps
Geliştirme ve Operasyon
Kısaca
DevOps, yazılım geliştirme ile BT operasyonlarını birleştirerek yazılımın daha hızlı ve güvenilir sunulmasını sağlayan bir kültür ve pratikler bütünüdür.
DevOps nedir?
DevOps, geliştirmeyi (yazılımı yazmak) ve operasyonu (onu canlı ortamda çalıştırmak) tek bir ortak çalışma biçiminde birleştirir. Geliştiricilerin bitmiş kodu ayrı bir operasyon ekibine devretmesi yerine, yazılımı derleyen, test eden, yayınlayan ve izleyen kişiler aynı ekiptir.
Uygulamada DevOps büyük ölçüde otomasyona dayanır. Ekipler her değişikliği test edip yayına almak için CI/CD hatlarını, sunucu ve ağları sürüm kontrolündeki dosyalardan oluşturmak için kod olarak altyapıyı, tutarlı ortamlar için konteynerleri, sorunları hızla fark etmek için de izleme ve uyarı sistemlerini kullanır. Amaç, büyük ve seyrek sürümler yerine küçük, sık ve düşük riskli sürümler çıkarmaktır.
Yararlı bir benzetme, tabakları duvarın ardından geçirip müşterileri hiç görmeyen aşçıların aksine, müşteri geri bildirimini doğrudan duyan bir restoran mutfağıdır. Daha kısa geri bildirim döngüleri daha hızlı düzeltmelere ve daha iyi sonuçlara yol açar. Dağıtım sıklığı ve hizmeti geri getirme süresi gibi DORA metrikleri, DevOps pratiklerinin ne kadar iyi işlediğini ölçmenin yaygın bir yoludur.
DevOps çoğu zaman bir unvan ya da belirli bir araç sanılır, oysa öncelikle bir kültür ve pratikler bütünüdür. DevOps mühendisi, bu pratikleri mümkün kılan otomasyonu ve platformları kuran kişidir. İlgili terimler arasında operasyona yazılım mühendisliği uygulayan SRE (site reliability engineering) ile güvenliği her aşamaya yerleştiren DevSecOps bulunur.
Önemli noktalar
- DevOps, geliştirme ve operasyonu tek bir ortak sorumlulukta birleştirir.
- Otomasyon merkezi bir yer tutar: CI/CD, kod olarak altyapı ve izleme.
- Küçük ve sık sürümler riski azaltır, geri bildirimi hızlandırır.
- Tek bir araç ya da ürün değil, bir kültür ve pratikler bütünüdür.
Sık sorulan sorular
DevOps bir meslek mi yoksa bir metodoloji mi?
DevOps öncelikle bir kültür ve pratikler bütünüdür. DevOps mühendisi unvanı ise genellikle bu pratikleri destekleyen otomasyonu, hatları ve altyapıyı kuran ve bakımını yapan kişiyi ifade eder.
DevOps ile Agile arasındaki fark nedir?
Agile, ekiplerin yazılımı kısa iterasyonlarla ve sık geri bildirimle nasıl planlayıp geliştirdiğine odaklanır. DevOps ise bu fikri geliştirmenin ötesine taşıyarak yazılımın yayınlanmasını, canlı ortamda işletilmesini ve izlenmesini de kapsar.
DevOps ile SRE arasındaki fark nedir?
SRE (site reliability engineering), DevOps fikirlerini uygulamaya koymanın somut bir yoludur: operasyonu yürütmek için yazılım mühendisliğini ve SLO adı verilen ölçülebilir güvenilirlik hedeflerini kullanır. DevOps ise daha geniş kapsamlı olan kültürdür.
Sık karşılaştırılanlar
İlgili sayfalar
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- DockerDevOps ve Bulut, s. 15Docker, bir uygulamayı ve ihtiyaç duyduğu her şeyi, her makinede aynı şekilde çalışan bir konteyner içinde paketlemeye yarayan açık kaynaklı bir platformdur.
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- MikroservislerYazılım Mimarisi, s. 24Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
- ServerlessDevOps ve Bulut, s. 46Serverless, sağlayıcının kodu talep üzerine çalıştırıp sunucuları yönettiği, otomatik ölçeklediği ve yalnızca gerçek kullanıma ücret aldığı bulut modelidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin