DevOps Nedir?
Son zamanlarda popülaritesi gittikçe artan bir terimi sıkça duyuyoruz: DevOps. Ülkemizde de bu konuyla ilgili bir çok blog yazısı, makale ve içeriğe ulaşmanız mümkün. Bu konuyla ilgilenen kişilerin yazılarını büyük bir merak ve heyecanla okuyorum. Bu yazıların bir çoğunda konunun özü doğru anlatılsa da, bazı eksikler olduğunu düşünüyorum. Kendi bakış açıma göre eksik gördüğüm bu noktaları tamamlamak ve bu eksik noktalar nedeniyle DevOps’un sadece teknik bir yaklaşım olduğuna dair oluşan yanlış algıyı düzeltmek adına böyle bir yazı hazırlamak istedim.
DevOps kelimesi, Development ve Operations kelimelerinin birleşmesi ile ortaya çıkan bir yaklaşım. İlk olarak Agile 2008 konferansında dile getirildi, sonrasında bu alanda yapılan etkinlikler ile yaygınlaşmaya başladı. DevOps, otomasyona, iletişime, ortak çalışmaya ve entegrasyona vurgu yapan bir yazılım geliştirme metodu olarak tanımlanıyor.
DevOps, yazılım geliştirme, kalite (QA) ve IT Operasyon birimlerinin birbirleriyle dayanışma içerisinde olmaları gerektiğini söyler. Böylece bir organizasyonun hızlı bir şekilde yazılım ve servis üretmesini ve operasyon performansını arttırmayı hedefler. Buradan da anlaşılabileceği üzere DevOps sadece teknik bir yaklaşım değil, bir organizasyon kültürü yaklaşımıdır. Bir başka deyişle bizim ortak çalışma kültürü (buna Agile kültür de denebilir) olarak bildiğimiz kavramın farklı bir isimle pazardaki yerini almış hali diyebiliriz.
DevOps kültürünün bir organizasyon tarafından benimsenmesi için bazı durumların kurum kültüründe oluşması gerekmektedir. Bu durumları şöyle sıralayabiliriz:
- Agile yazılım geliştirme süreçlerinin ve metodolojilerinin kullanılması
- İş birimlerinden, canlı ortam yaygınlaştırma isteklerinde artış sağlanması
- Sanallaştırma ve bulut altyapıların ulaşılabilir durumda olması
- Veri merkezi otomasyon ve konfigürasyon araçlarının kullanımında artış sağlanması
- Test Otomasyonu ve Sürekli Entegrasyon yaklaşımlarına odaklanılması
Bu durumlara baktığımızda DevOps denildiğinde, sadece Docker, Puppet, Chef, Jenkins, Bamboo vb. gibi araçların içerisinde bulunduğu operasyon yaklaşımlarının yanında, Scrum/Kanban/XP, TDD, Continuous Integration, BDD gibi yaklaşımlardan da bahsedildiğini düşünmeliyiz. Hatta DevOps’un temelinin atılması ve sağlamlaştırılması için organizasyonel yaklaşımların öncelikli olarak hayata geçirilmesinin de önemli olduğunu belirtmekte fayda görüyorum.
Bu yaklaşımın daha doğru anlaşılmasını sağlamak adına çalıştığım kurumda DevOps Smart adında bir hizmet grubu oluşturduk. Bu çalışmanın ilk adımı olarak DevOps konusunda dünyanın önde gelen isimlerinin başında gelen Dave Farley‘i Türkiye’de ağırlayacağız. Dave Farley, son dönemlerin popüler yaklaşımlarından birisi olan Reactive Manifesto’nun ve Continuous Delivery kitabının yazarları arasında bulunuyor. Kendisi ile birlikte yapacağımız çalışma kapsamında Continuous Delivery: Theory, Technology and Practice isimli eğitimi gerçekleştireceğiz. DevOps konusuna ilgi duyan ve yapacağımız bu çalışmaları takip etmek isteyen arkadaşlar detayları burada bulabilir.