DevOps ihtiyaç mı? Lüks mü?
DevOps nedir?
Devops tanımlarına baktığımızda aynı merkezin çevresinde dönen açıklamaları görürüz. Her görüşün doğru olması da Devops’un geniş bir kavram olmasından kaynaklanmaktadır.
Bizde bir tanım yapacak olursak, Devops bilgi teknolojileri ürünlerine(daha çok yazılım) etki eden gruplar arasındaki pozitif iletişim kültürü diyebiliriz. Bu tanımla çevik (agile) yaklaşımının bir parçası olduğu ortaya çıkıyor.
Pozitif iletişim dediğimiz ise, geliştirme(development), operasyon(sistem altyapı), kalite kontrol(QA) ve analist(BA) takımları arasındaki hedef-durum açısından bilgi paylaşımı ve anlaşmasını en yüksek seviyede tutmaktır.
Müşteri odaklı proje geliştirenlerden çokça duymuşuzdur “bu müşterileri memnun etmek zor” yada “Ne yaparsan yap müşteriyi memnun edemezsin”…
Müşterilerden de benzer cümleler “Biz bunu istemedikki” yada “Hızlıca şu değişikliğide yapıverseniz.” v.s.
Peki buradaki hata nedir?
Gerçekten müşteri mutlu olmaz mı? Tabiki mutlu olur ama mutlu etmesini bileceksin. Müşterinin istediği kendi taleplerinin karşılanması. Hemen hemen her müşteri taleplerinin tamamını en baştan anlatamaz, anlatabilse bile karşıdaki onun anlattığını tam manası ile anlayamaz. Hadi müşteri anlattı proje sahibide anladı, yine bir sorun var proje bittiğinde müşteri talebi aynı kaldımı? Yani zamana endeksli olarak teknoloji değişti, ihtiyaçlar değişti, yönetmelikler değişti v.s.
İşte asıl problem bu, monolitik yaklaşım?
Halen biz monolitik düşünce ile hareket edersek başarılı olma şansımız (şanslı isek) %2-3. Diyelim ki proje bitiminde başarılı olduk, 5-6 ay sonra müşterimiz bir değişiklik istedi ne yapacağız?
İşte tam burada çevik(agile) yaklaşım devreye giriyor;
Proje planında müşteri ile mutabakata varıldıktan sonra, müşteriye hızlıca bir prototip çıkarın ve müşteri bunu kullansın ondan alınan geri bildirimlerle yola devam edin yaklaşımı, başarı oranını ve müşteri mutluluğunu yakalayabilmek için göz ardı edilemeyecek bir yaklaşım.
Bu durum sürekli dağıtım, sürekli entegrasyon, sürekli versiyon çıkışı, sürekli test, sürekli analiz v.s gibi işlerin çoğalmasına sebep oldu.
İşte tam bu durumda artık DevOps ihtiyaç.
Devops kültürü oluşmamış şirketlerde;
- Kod kalitesi düşüktür,
- Aynı proje üzerinde çalışmak zordur,
- Test/ürün ortamlarında sürpriz problemlerle karşılaşmak normaldir,
- Personel yönetimi ve takibi yapılamaz,
- Doğru maliyet kestirilemez,
- Microservis mimari’den söz edilemez,
- Herhangi bir geliştirmenin ürün olarak sunulması kabus olur,
- Zaman maliyeti en az yüzde 60 daha fazladır,
- örnekler daha fazla olabilir.
Peki şirkette devops kültürünün olmaması durumunda gözlemlenenler:
- Kod kalitesi insanların iyi niyetine kalmıştır,
- Geliştirici(developer) benim işim kod yazmak, dağıtım(deployment) benim işim değil,
- Hangi versiyon nerede çalışıyor? sorusunun cevabı sessizliktir,
- Sistemci dağıtım süreçleri karmaşıklaşıyor, test olarak kurduğumuz uygulama prod olmuş. Sistemde değişiklikler yapmam gerekiyor ama kesinti olmamasını istiyorlar,
- Kalite kontrol/İş(Ürün) ekibi, küçük bir geliştirme istedik bu kadar zormu? İstediğimiz gayet basit şeyler v.s. bu ürün neden bu kadar gecikti,
problemlerin sayısı artırılabilir…
DevOps kültürünün şirkete faydaları:
- Birimler(geliştirme, sistem, ürün v.s) arası rekabeti ortadan kaldırır, yardımlaşma kültürü oluşturur,
- Hedefe zaman faktörünü gözeterek ulaşmayı sağlar,
- Çalışan motivasyon ve performansını üst seviyede tutar,
- Maliyeti en az yarıya düşürür,
- Başarılı projeler,
- Mutlu müşteri,
Teknik faydaları:
- Kaynak kodu tekilleştirdik ve versiyonlamayı sağladık,
- Temiz bir kod yazmayı (clean code),
- Testlerle projenin nasıl davrandığını gözlemlemeyi sağladık,
- Hangi sürüm hangi ortamda çalışıyor,
- Sürümler arası performans metriklerini artık biliyoruz,
İşin felsefesinden çıkıp biraz daha teknik süreçler açısından bakarsak, aşağıdaki aşamaları bir döngü içinde gerçekleştirme kültürüdür devops.
- Proje planı,
- Kaynak kod deposu(versiyon),
- Kod kalite analizi,
- Test,
- Sürekli entegrasyon(Continuous integration),
- Sürekli teslimat(Continuous deployment),
- Her zaman her yerde sürekli izleme(monitör),
- Sürekli geri bildirim,
Artık Start-up şirketler’in hemen hemen hepsinde devops kültürü oluşmadığı zaman tutunmaları bir hayli güç olmaktadır. Başarısız start-up’lara bakıldığında müşteri tarafında kısa zamanda bir ışık yakamadıklarından dolayı başarısız olduklarını görürüz.