DevOps sektörde oldukça ilgi çeken ve odaklanılan konulardan biri. Peki DevOps tam olarak ne anlam ifade etmekte? DevOps dönüşümü dendiğinde ne anlamalıyız? Bu yazımızda kısaca bu konulara değinmek ve ortak bir tanım oluşturmaya katkı sağlamak istedik.
DevOps, kelime olarak “Development” ve “Operation” sözcüklerinin bir araya gelmesi ile oluşmuştur. İlk kullanımı 2007 yılındaki bir konferansa uzanmakla beraber, terminoloji üzerindeki tartışmalar o zamandan beri devam etmektedir. Kimine göre DevOps kültürel bir dönüşümü ifade ederken, diğerlerine göre süreçlerin uçtan uca otomasyonu anlamına gelmektedir.
Aslına bakılırsa, bu durum DevOps kavramına nereden baktığınızla doğrudan ilişkilidir. DevOps hem otomasyon, hem yönetim yaklaşımı, hem kültür, hem de iş birliği olarak nitelendirilebilir. Ancak kesin olan, DevOps’un bir araç veya yazılım olmadığıdır.
Organizasyonel Sorunlar
Yazılım geliştirme ekipleri işlerinin tanımı gereği kendilerinden istenilen ürün veya özellikleri mümkün olduğunca hızlı ve eksiksiz bir şekilde teslim etmeye çalışırken, operasyon ekipleri canlı ortamdaki uygulamalarının sorunsuz ve güvenli bir şekilde hizmet vermeye devam edebilmesini amaçlamaktadır. Görev tanımları ve hedeflerindeki bu farklılık, ister istemez aralarında çatışma yaşanmasına, doğal bir gerilim oluşmasına, ya da en azından iletişim eksikliğine sebep olmaktadır.
Bu durum, şirket içerisinde silolaşmanın olmasına, süreçlerin ayrışmasına, geri bildirim sürecinin sekteye uğramasına, suçlama kültürünün oluşmasına kadar birçok soruna sebebiyet vermektedir.
DevOps kavramı, geliştirme ekipleri ile uygulamaları üretim ortamında çalışır halde tutmakla görevli operasyon ekiplerinin birbirleri ile çekişme halinde değil, uyum içerisinde çalışması gerektiğini ortaya koymaktadır. Bunu gerçekleştirmek içinse, bir dizi kültür ve mühendislik pratiğini uygulayarak, aynı hedef ve bakış açısı ile çalışmaları beklenmektedir.
Developers want to maximize the change vs Operators want to optimize for stability
Çevik dönüşümde talep sahibi iş birimleri ile bu talepleri yazılıma dönüştürmekten sorumlu geliştirme ekiplerinin aynı düzlemde çalışarak üretken olması hedeflenmekteydi. DevOps ile bu iş birliği bir adım daha ileri götürülerek sürecin uçtan uca sorunsuz ilerletilmesi imkanı oluşmuştur. Yani, kodlama aşaması bittikten sonra ürünün sorumluluğunu farklı bir ekibe devretmeyerek, paylaşma veya bu sorumlulukla devam etmeye dönüşmüştür.
Agile, DevOps ve CI/CD Kavramları
- Çevik dönüşüm süreçlere odaklanarak değişen talepleri yönetebilmeyi amaçlar.
- CI/CD farklı araçlardan faydalanılması ile yazılım teslim süreçlerinin otomasyonuna odaklanır.
- DevOps ise kültürel dönüşümü hedefleyerek ortak sorumluluk bilincini oluşturmaya çalışır.
DevOps Yaklaşımının Organizasyonel Faydaları
DevOps dönüşümünün ekip ve organizasyonlara kazandırdığı birçok fayda bulunmaktadır. Bunların en önemlileri;
- Yazılımların daha hızlı canlıya alınması
- Sürekli entegrasyon ve müşteriye teslimat
- Yüksek kalite ve düşük hata oranları
- Strese dirençli bir yapı
- Organizasyonel duvarların yıkılması
- Maliyet düşüşü
Ek olarak; Google State of DevOps Report’da yayınlanan bir araştırmaya göre, DevOps dönüşümünü en iyi sağlayan firmalar ile bu konuda en geride olan firmalar arasında fark sayısal olarak ifade edilmiştir. Kolaylıkla anlaşılacağı gibi oluşan fark yadsınamaz biçimde önemli ve büyük olarak göze çarpmaktadır.