Data Vinci 19 : Devops

Tahmini Okuma Süresi: 6 dakika

“Kendin pişir, kendin ye” sözünün IT tarafında vücut bulmuş halidir “DevOps“. Development ve Operation kelimelerinin birleştirilmesinden ortaya çıkmış güncel bir trenddir. Bundan bahsetmeyeni dövüyorlar. “Continuous Delivery” kavramının olduğu yerde illa ki “DevOps” kelimesi de yer alır.

 Devops ile ilgili olan konuşmalarda, sunumlarda, yazılarda sıkça “DevOps“un bir kültür olduğuna dair vurgular yapılır. Ne demek bu kültür? Devops yaklaşımı olan şirketlerde okuma-yazma oranı mı yüksektir? Nedir yani olay? Aslında “kültür” kelimesinin vurgulanma sebebi bir başka “kültür” olan “Agile” ile olan bağıdır. Yani birimlerin birbirleriyle olan operasyonlarının ortak bir felsefe ile çalışabilmesidir. Agile kültürüne baktığımızda da rollerin sivri uçlarının törpülendiği görülür. Agile kültüründe “shipment” kavramının sıklıkla tekrarlandığı, yani bir ürünün yeni sürümlerinin sürekli meydana çıktığı ve işleyen bir sistem içerisinde de sürekli entegrasyon ihtiyacı oluştuğu görülür. Agile varsa da havalı şeyler vardır bunu da aklınıza kenarına yazın.

Yani kod yaz, testi yap, sürümü geç. En basit ve fakirce ifade edilişi bu şekilde. Bu operasyon silsilesine de işte “DevOps” adını vermişler abilerimiz.Operation kelimesindeki yer almayan “s” yi nasıl iliştirdiler orası da ayrı bir başarı hikayesinin konusu olur. Sanırım okunabilirlik açısında böyle bir kısaltma seçmişler.

Bu kadar kültür geçen yerde fularlı bir bölge olduğuna da şüphe yok. O yüzden fakir bedenlerimizde ekolar yaratabilir “DevOps“.

DevOps felsefesinin yerine getirebilmesi için işin “Dev” kısmında kod yaygınlaştırma kısmının otomatize edilmiş olması. Yani sürüm geçilecek olan kodun sürekliliği kişiler tarafından değil bir sistem tarafından yapılıyor olması gerekir.(CI) Aynı şekilde sürekli geçişe hazır bir sistemde ortaya çıkabilecek hataların en aza inebilmesi için de testlerin de elle değil otomatize bir şekilde yapılıyor olması gerekir. (TDD). Operasyon tarafında ise sürekli entegrasyon yapabilecek bir ortama sahip olunması, izleme ve hata takip sistemlerinin işletilmesi gerekir.

Tüm bu aşamaların tamamlandığı ve işletildiği kurumlarda bir “DevOps” kültüründen bahsetmek mümkün olacaktır. Aksi halde Ankara Çinçin…

Devops-toolchain.png

Görsel Kaynak: https://en.wikipedia.org/wiki/DevOps    via vpn!   kıps;)

DevOps toolchain’e baktığımızda iki çemberin çeşitli sektörlere bölündüğünü görürüz. Tool(araç) tabanlı bir yaşam döngüsü ise mesela şu şekilde oluşabilir.

devops-toolchain-better-1024x507.png

Görsel Kaynak: https://www.tricentis.com/blog/2017/03/22/why-testers-cant-test-how-to-boost-your-test-automation-superpowers-webinar-recap/

DevOps‘da tooling(araçlar) kavramı diğer bilgisayar teknolojilerindeki çeşitliliği hiç aratmıyor. Bu konuda fakir ruhumuzu besleyebileceğimiz onlarca araç mevcut. Neler var göz atmak isteyenler için hazırlanmış güzel bir periyodik tablo var.

DevOps periyodik tablosu göz atmanızı tavsiye ederim.

Devops kapsamında duyacağımız muhtemel operasyon çeşitleri ise şu şekilde listelenebilir.

  • SCM (Source Control Management)
  • CI (Continious Integration)
  • Deployment
  • Cloud / IaaS / SaaS
  • BI / Monitoring
  • Database Management
  • Repository Management
  • Config / Provisioning
  • Release Management
  • Logging
  • Build
  • Testing
  • Containerization
  • Collaboration
  • Security

Bunların bazıları daha genel bir konsepti işaret etse de , DevOps içerisinde değerlendirilebilmektedir.

DevOps, aslında öğrenilebilecek bir şey de değil, zira kültür dediğimiz şeyler öğrenilmez oluşur. Burada öğrenilebilecek bir şey varsa o da araçlar ve süreçlerdir. Onun dışında her ortamda DevOps, DevOps, abi DevOps, DevOps yapıyoruz, DevOps yapmalıyız gibi sürekli DevOps bombardımanı yapmak da insanlarda şu gibi bir durum oluşturabilir.

  • Konu hakkında oluşturulmuş bir sitede esprili yaklaşımlar yapılmış : Devops Tumblr
  • Devops hakkında araştırma yapmak ve kapsamında neler var göz atmak isteyenler fakir ruhunu beslemek isteyenler, şu linke göz atabilirler: DevOps bookmarks

TL;DR

DevOps, konusuna ucundan değinip tanımların yapıldığı bu yazı herhangi bir teknik derinlik içermemektedir. Derin okumalar için tavsiye edemem. Ancak sıkça duyduğumuz, ağızlara pelesenk olmaya başlamış bu kavramın ne olduğuna dair bir fikir oluşturabileceğini düşünüyorum. Konu tahmin edebileceğiniz gibi birçok alt daldan ve alandan oluşuyor. Tüm bu alanların içerisinde uygulanan onlarca yöntem olduğunu göz önüne alırsak, yüzlerce de araç ismi duymak çok büyük bir şok olmasa gerek. Varoşlarda production geçişi ftp ile sunucuya dosya yollamak şeklinde olabilirken, bütünleşik sistemlerde iş o kadar basit olamamaktadır. Burada sürecin iyi tasarlanması ve geçiş noktalarında sistemlerin kusursuza yakın işlemesi, büyük miktarda paraların döndüğü sektörlerde kritik bir öneme sahiptir. Amazon.com sizin ise 2 saat kapattım diyemiyorsunuz, derseniz de Seattle’ın arka sokaklarındaki garajınıza geri dönmeniz işten bile değil.

Bu yazıda bahsedebileceklerim bu kadar, faydalı olması dileklerimle…

keep_calm

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir