DevOps Kültürü ve Uygulamaları: Öğrenme Rehberi
Beceri rehberi

DevOps Kültürü ve Uygulamaları: Öğrenme Rehberi

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

DevOps kültürünü ve uygulamalarını öğrenme yolu: CI/CD, altyapı otomasyonu, izleme, güvenlik ve ekip modelleri; başlangıçtan ileri düzeye yol haritası.

DevOps nedir, yalnızca araç mıdır?

DevOps, yazılım geliştirme (development) ile işletim (operations) ekipleri arasındaki duvarı kaldırarak yazılımın daha sık, daha güvenli ve daha öngörülebilir biçimde canlıya çıkmasını hedefleyen bir çalışma kültürü ve uygulama bütünüdür. Bir ürün adı ya da tek bir rol değildir.

Geleneksel modelde geliştirme ekibi kodu yazıp işletme ekibine teslim eder, işletme ekibi de ortaya çıkan sorunları geliştiriciye geri yollar. Bu el değiştirme gecikme ve suçlama üretir. DevOps'ta ortak sahiplik esastır: aynı ekip, kodun yazılmasından canlıdaki davranışına kadar sorumluluk taşır. Araçlar bu kültürü mümkün kılar, ama kültür olmadan araçlar tek başına sonuç vermez.

Temel uygulamalar

  • Sürekli entegrasyon (CI): Geliştiricilerin kodlarını sık sık ortak depoya birleştirmesi ve her birleştirmede otomatik derleme ve testin çalışması.
  • Sürekli teslimat ve dağıtım (CD): Test edilmiş sürümün, güvenilir bir hat üzerinden yayına hazır tutulması ya da otomatik olarak yayına alınması.
  • Kod olarak altyapı: Sunucu, ağ ve ortam yapılandırmasının elle değil kodla tanımlanması ve sürüm kontrolünde tutulması.
  • İzleme ve geri bildirim: Canlıdaki sistemin sağlığının ölçülmesi, günlüklerin ve uyarıların toplanması, bulguların geliştirmeye geri dönmesi.
  • Güvenliğin sürece katılması: Güvenlik ve uyumluluk kontrollerinin sürecin sonunda değil, hattın içinde yapılması.
  • Küçük ve sık değişiklik: Büyük, nadir yayınlar yerine küçük artışlarla ilerlemek; hata olursa geri almayı kolaylaştırır.

Kültürel boyut: ortak sahiplik ve öğrenen ekip

DevOps kültürünün çekirdeğinde şeffaflık, hızlı geri bildirim ve suçlamasız öğrenme vardır. Bir kesinti yaşandığında amaç sorumluyu bulmak değil, sistemin neden bunu mümkün kıldığını anlamaktır. Olay sonrası değerlendirme, bu öğrenmenin yapısal aracıdır.

Kültür bir de ekip modeli kararıdır. Bazı kuruluşlar her ürün ekibine kendi platform becerisini yerleştirir, bazıları ortak bir platform ekibi kurarak diğer ekiplere kendi kendine kullanılabilir araçlar sunar. Hangisinin uygun olduğu kuruluşun büyüklüğüne ve ürün sayısına göre değişir. Önemli olan, sorumluluk sınırlarının net ve el değiştirmelerin az olmasıdır.

İlerlemeyi ölçmek için teslimat performansı metrikleri kullanılır. Yaygın olarak izlenen göstergeler dağıtım sıklığı, değişikliğin canlıya çıkma süresi, değişikliklerin hata oranı ve sorundan geri dönme süresidir.

Örnek senaryo: bir web uygulamasının teslimat hattı

Örneğin bir ekip web uygulamasını geliştiriyor. Geliştirici değişikliği bir dala yazar ve birleştirme isteği açar. Hat otomatik olarak kodu derler, birim testlerini çalıştırır ve kod kalitesi ile güvenlik taramalarını yürütür. Sonuçlar olumluysa değişiklik ana dala birleşir.

Birleştirme, bir test ortamına otomatik dağıtımı tetikler. Orada tümleşik testler çalışır. Ardından onaylanan sürüm canlıya kademeli olarak çıkar: önce küçük bir kullanıcı grubu, sonra hepsi. Altyapı bir tanım dosyasından üretildiği için test ve canlı ortamlar aynı yapıdadır.

Canlıda izleme sistemi hata oranını ve yanıt sürelerini ölçer. Bir artış olursa uyarı gider ve ekip değişikliği geri alabilir. Bu döngü ne kadar kısa ve güvenliyse, ekip o kadar sık ve rahat yayın yapar.

Sık yapılan hatalar

  • DevOps'u yalnızca bir araç seti sanmak. Araç alıp süreci ve ekip yapısını değiştirmemek beklenen faydayı getirmez.
  • Adı DevOps olan yeni bir silo kurmak. Geliştirme ve işletme arasına üçüncü bir ekip koymak, el değiştirmeyi azaltmak yerine artırabilir.
  • Otomasyonu testsiz kurmak. Hızlı ama güvenilmez bir hat, hızlı biçimde hata yayar.
  • Güvenliği en sona bırakmak.
  • İzlemeyi canlıya çıktıktan sonra düşünmek.
  • Ölçmeden iyileştirmeye çalışmak. Mevcut teslimat süresini ve hata oranını bilmeden hedef konulamaz.
  • Her şeyi aynı anda dönüştürmek. Önce tek bir ürün ya da ekipte denemek ve öğrenileni yaymak daha gerçekçidir.

Başlangıçtan ileri düzeye öğrenme yolu

Başlangıç düzeyinde DevOps felsefesini, yazılım yaşam döngüsünü, sürüm kontrolünü ve Linux komut satırını öğrenin. Hedef, yazılımın fikirden canlıya nasıl aktığını uçtan uca anlamaktır.

Orta düzeyde sürekli entegrasyon ve teslimat hattı kurun, konteyner kullanımını ve kod olarak altyapı yaklaşımını deneyin, izleme ve günlük toplama araçlarını tanıyın. Küçük bir uygulamanın hattını baştan sona kendiniz kurmak etkili öğrenme biçimlerinden biridir.

İleri düzeyde güvenlik ve uyumluluğun hatta gömülmesi, ölçeklenebilir platform tasarımı, ekip modelleri, güvenilirlik pratikleri ve ölçek çerçevelerinde DevOps uygulamaları öne çıkar. Büyük kuruluşlarda ölçeklendirilmiş çevik çerçevelerin DevOps boyutu da ayrı bir uzmanlık alanıdır.

Mindset programlarında DevOps nerede işlenir?

Mindset kataloğundaki DevOps Temelleri eğitiminin modül başlıkları şunlardır: DevOps Felsefesi ve Kültürel Dönüşüm; Sürekli Entegrasyon Temelleri; Sürekli Teslimat ve Dağıtım; Altyapı Otomasyonu Temelleri; İzleme ve Geri Bildirim Döngüsü; DevOps Güvenliği ve Uyumluluk; DevOps Ekip Modelleri ve Örgüt Tasarımı.

Ölçeklendirilmiş çevik ortamlara yönelenler için SAFe DevOps Practitioner programı da bulunur. Modülleri sürekli entegrasyon ve kod kalitesi, sürekli dağıtım ve yayın stratejisi, güvenliğin teslimat hattına entegrasyonu, DevOps metrikleri ve ölçüm ile sürekli keşif ve müşteri geri bildirimini kapsar.

İlgili Mindset programı

DevOps Temelleri

Sık sorulanlar

Sık sorulan sorular

DevOps bir rol mü, kültür mü?

İkisi de kullanılır. DevOps mühendisi, hat ve altyapı otomasyonuyla ilgilenen bir rol olarak iş ilanlarında yer alır. Ancak DevOps'un özü bir çalışma kültürüdür: geliştirme ve işletme sorumluluğunun paylaşılması. Rol tek başına kültürün yerine geçmez. Rolün sınırları kuruluştan kuruluşa değişebilir; ilan metnindeki sorumluluklara bakmak gerekir.

DevOps öğrenmek için önce neyi bilmeliyim?

Linux komut satırı, ağ temelleri, sürüm kontrolü ve en az bir programlama ya da betik dili iyi bir başlangıçtır. Yazılımın nasıl geliştirildiğini ve çalıştırıldığını anlamak, araç öğrenmekten daha önceliklidir; araçlar sonradan eklenir ve zaman içinde değişir. Yeni başlayanlar için önce tek bir araç değil, bütünün nasıl çalıştığını görmek daha öğreticidir.

DevOps ile çevik yaklaşım aynı şey mi?

Birbirini tamamlarlar. Çevik yaklaşım, işi küçük parçalara bölüp sık geri bildirimle geliştirmeye odaklanır. DevOps ise bu değişikliklerin güvenle ve hızla canlıya ulaşmasını sağlayan teslimat ve işletme tarafını güçlendirir. İkisi birlikte uygulandığında yazılımın değere dönüşme süresi kısalır. Çevik yaklaşım ile DevOps'u ayrı ayrı değil, aynı değer akışının iki yarısı olarak düşünmek faydalıdır.

Küçük bir ekip DevOps uygulayabilir mi?

Evet. Hatta küçük ekipler için başlangıç kolaydır: ortak bir depo, otomatik test ve basit bir dağıtım hattı büyük kazanç sağlar. Kuruluş büyüdükçe izleme, güvenlik ve platform konuları eklenir. Önemli olan hepsini baştan kurmak değil, sırayla ve ölçerek ilerlemektir. Başlangıçta sürüm kontrolü, otomatik test ve tek tuşla dağıtım gibi küçük adımlar yeterlidir.

DevOps sertifikası şart mı?

Şart değildir; işverenler uygulama deneyimini ve bir portföyü de önemser. Sertifika, bilgiyi yapılandırmaya ve belirli bir çerçeveyi kanıtlamaya yarar. Hangi sertifikanın fayda sağlayacağı, çalışmak istediğiniz ortama ve kullandığı araç ve çerçevelere göre değişir. Bu nedenle sertifikayı hedef değil, öğrenme planınızın bir aşaması olarak düşünün.

DevOps Nasıl Öğrenilir: Kültür, Araçlar ve Uygulamalar