Dönüşüm: Neden DevOps konuşuyoruz?

Burç Akbaş
KoçSistem
Published in
8 min readAug 17, 2019

--

TL;DR

Teknolojiyi yakından takip edenler son dönemde ‘DevOps’ terimine denk gelmiştir. Tanımı üzerinden çok zaman kaybetmeden, bugünlerde neden DevOps konuştuğumuzu dijital dönüşüm perspektifi üzerinden anlatmaya çalışacağım.

Ne — Neden — Nasıl ?

Teknoloji geliştiren veya dijital varlıklar kullanan bir organizasyonun liderliği yaptığınızı düşünün. Dünya standartlarında rekabetçi olabilmeniz için çağın gerekliliklerine ayak uydurmalısınız.

Bu noktada bir karar vermeniz gerekiyor. Sizi motive edecek, organizasyonun kendini geliştirmesi için sürekli kontrol edeceği bir hedef ortaya koymalısınız.

Karar verdiniz; ‘Değişeceksiniz!’

Peki ne yapmalı, nereden başlamalı?

Basitçe ne istediğimizi üç maddede belirlemeye çalışalım;

  • Silolaşmayan, birlikte düşünen ve hareket eden bir organizasyon
  • Ölçülebilir, akıllı (otomasyon) ve şeffaf altyapılar
  • İnovasyon ve verim öncelikli organizasyon

Takımlar ve departmanlar içinde yetkinlikleri mümkün olduğu kadar eşit dağıtıp, dijital varlıklar ile verimin ölçülüp stratejilerin belirlendiği, inovasyon odaklı bir organizasyon hayaliniz var diyelim.

Şimdi bu isteklerimizi nedenler ile dolduralım, güçlendirelim. Neden silolaşmayan, şeffaf ve inovasyon odaklı bir organizasyon istiyoruz?

İnsanları etkileyecek süreçler geliştiriyorsanız, hedefinizi nedenleri ile birlikte net olarak belirlemek önemlidir.

Günümüzde teknoloji her alanda kendini gösteriyor. Günlük hayatımızı kolaylaştıran bir çok ürün ve servis kullanıyoruz.

Çağın gerekliliklerine ayak uydurabilmek için kaliteli ürünler üretip, aynı zamanda sıklıkla ürünlerimizi güncellememiz, yeni özellikler eklememiz gerekmekte. Aşağıdaki gibi üç başlık halinde özetlersek;

  • Time to Market (Markete ne kadar hızlı çıktığınız artık çok önemli. Uzun süren yazılım projeleri verimli değil.)
  • Top Quality (Son kullanıcı kaliteli ürün istiyor. Rekabet çok yüksek.)
  • Cost Effective (Süreç ve hata düzeltmeye çok fazla kaynak harcamak inovasyona ve markete çıkışa engel oluyor.)

‘Eğer ilk çıktığınız versiyondan utanmıyorsanız, çok geç kalmışsınız demektir.’ — Reid Hoffman

Deployment Strategies başlıklı yazımda bu konuya teknik ve iş etkileri üzerinden yaklaşıp, nedenleri ile açıklamaya çalıştım.

Değişeceğiz! dedik. Peki nasıl? Bunun için herkese uyan tek bir yöntem mevcut değil. Çeşitli modeller ve örnekler olsa da iki başlık öne çıkıyor: Çevik (Agile) Dönüşüm ve Dijital Dönüşüm (DevOps).

Çevik (Agile) Dönüşüm

Daha hızlı geliştirme yapıp, markete erken çıkmak için öncelikle iş yapış şekillerinizi gözden geçirmelisiniz.

Ürüne yeni bir özellik ekleneceği zaman hangi aşamalardan geçiyor? Veya yeni bir proje başlarken hangi adımları izliyor? Kullanıcılardan gelen hata veya istekler nasıl yönetiliyor? Raporlanıyor? Ürün teslimat süresi ne kadar?

Son yıllarda proje yapış yöntemleri değişmeye başladı. Waterfall’dan Agile’a bir geçiş var.

Fakat her iki metodunda başarılı olduğu durumlar var. Örneğin Waterfall, değişmeyen gereksinimleriniz, iyi tanıdığınız kullanıcılarınız ve belirli çalışma ortamlarınız için verimli ve başarılı bir model. Diğer yandan Agile biraz daha deneysel çalışma yöntemi ile küçük parçalar halinde sürekli teslimat üzerine odaklanır.

İş yapış şekillerini değiştireceksiniz. Agile metodolojilerden size uygun olanı bulmanız gerekiyor. Bu organizasyonunuzun kültürü, lokasyonu veya sektörü ile ilgili olarak farklılık gösterebilir.

Temel olarak aşağıdaki metodolojilerden biri tercih edilir. Agile Frameworks / Methodologies:

* Scrum, Extreme Programming & LeanKanban

Agile frameworks or methodologies

Sıklıkla karşılaştığımız başkasından kopyalama yöntemleri de yine dikkat edilmesi gereken bir konu. Başkasında başarılı olan bir metot sizde başarılı olmayabilir. KYC terimi, sizin için organizasyon olarak karşılık bulmakta.

Belirli bir süre sonra ana çerçeveden çıkmadan kendi yöntemlerinizi oluşturuyor olmanız gerekli.

Çevik dönüşüm başlangıcında profesyonel ekiplerden bir süre boyunca aktif koçluk almak, çalışanlarınızın doğru alışkanlıkları edinmesine yardımcı olacaktır.

İki günlük aktivitelerde kartondan pizza veya makarnadan kule yaparak dönüşüm gerçekleşmez.

Çevik dönüşüm özelinde tecrübelerimi ve gözlemlerimi başka bir yazıda dile getireceğim.

Dijital (DevOps) Dönüşüm

DevOps, isminden anlaşılacağı üzere Geliştirici (Developer) ve Altyapı Sorumlusu (Operator)’nun daha kolay çalışması için süreçleri (firewall tanımı, yeni sunucu talebi gibi..) dijital hale getirmeyi amaçlayan bir pratik, prensip.

Ben dijital dönüşümü DevOps’a adresliyorum. Altyapı dönüşümü organizasyonunuz için önemli gereksinimlerden birisini oluşturuyor.

DevOps Steps

Continuous Integration terimi ile de destekleyeceğimiz; sürekli teslimat halinde olan bir hat üzerinden kalite ve ölçümlerin yapıldığı bir yöntem.

Wikipedia: DevOps is a set of software development practices that combine software development and information-technology operations to shorten the systems-development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives

Müşterilerinize kaliteli, hızlı ve güvenli ürünler sunmak istiyorsanız altyapılarınızı insan kontrolünden çıkarmalı, şeffaf ve otomatik süreçler ile tasarlamalısınız.

DevOps kavramı, temelde bir fikirden doğmuştur ve ‘DevOps Culture’ denilen bir kültürü temsil eder. Agile metodolojiler ile kültür noktasında birleşirler. Temas ettikleri alan kültürdür.

Dönüşüm: Çevik vs Dijital ?

Peki hangisini seçmeli? Çevik mi? Dijital dönüşüm mü?

Dönüşüm yolu

Dönüşümü bir yolculuğa benzetirsek, ilk durağımız genellikle iş yapış şekillerimizi değiştirdiği için Çevik (Agile) Dönüşüm, sonrasında ise altyapılarımızı değiştirdiğimiz Dijital Dönüşüm (DevOps) olarak karşımıza çıkmakta.

Her iki yöntemi de bu yolda uğrayacağımız duraklar olarak düşünmeliyiz. Birlikte ele alındığında daha sağlıklı sonuçlar verecektir.

Dijital Dönüşüm olmadan Çevik Dönüşüm veya tam tersi olarak dönüşüm gerçekleştirilebilir. Örneğin önce Çevik Dönüşüme başladınız diyelim. Scrum yaparsınız, belirli aralıklarla Sprint’ler koşarsınız. Her sprint sonunda söz verdiğiniz işleri teslim edersiniz.

Fakat bunları eski altyapılarla da yani dijital dönüşüm olmadan da gerçekleştirebilirsiniz. Bu şekilde çalışmak istiyorsanız, çok yetenekli mühendislere (çalışanlara) ihtiyacınız var. İnsan hatasına açık bir sistemde olduğunuzu unutmayın.

Bu nedenle karşımıza Dijital Dönüşüm ihtiyacı çıkar. DevOps prensipleriyle altyapılarınızı yenilersiniz. Böylelikle hızlı teslim ettiğiniz ürünleri, içiniz rahat bir şekilde canlı ortamlara çıkabilirsiniz.

DevOps süreçlerinin detaylarına başka bir yazıda değineceğim. Örneğin Test Otomasyonu gibi bir konu var; dışarıdan basit görünse de içine girdikçe kapsamının ne kadar geniş ve etkili olduğunu görüyorsunuz.

Ne zaman DevOps konuşmaya başladık?

Çevik (Agile) ve Dijital Dönüşümün popülaritesini Google’ın arama trendlerinde karşılaştırdığımızda yukarıda anlattığım gibi benzer sonucu görüyoruz.

https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0c3tq11,%2Fm%2F02zhbn — 04.2019

Agile yöntemler varken, 2010–2011 arasında DevOps kavramı hayatımıza girmeye başlıyor ve görüldüğü gibi Agile’ın da popülaritesini artırıyor.

Neden DevOps konuşuyoruz?

Kısaca toparlarsak teknolojinin gelişmesi ile erişilen müşteri sayısı arttı, profil değişti ve rekabet çok yükseldi. Artık eskisi gibi test edilmeyen, kesinti oluşturan, tam çalışmayan ürünler piyasadan hızlıca siliniyor.

2000'lerin başından itibaren yazılım ve IT altyapıları yeni dalga teknolojiler ile deyim yerindeyse dövülüyor. Kimi şirketler yok oldu, kimileri dönüşümü başarıyla tamamladı kimi ise halen dönüşümü yaşamakta.

Bu yeni dalga, tüm altyapıları değiştiriyor. Değişmeyenleri ezip geçiyor. Organizasyonlar düştükleri yerden kalkmak için değişmeye hazırlanıyor ve eski hatalarından dersler çıkarıyorlar.

‘Why do we fall Bruce?’

Christopher Nolan’ın hikaye anlatıcılığına bayılırım. Dikkatli izleyiciler fark edecektir; Nolan’ın Batman üçlemesinde sıkça vurguladığı, Bruce Wayne’in çocukluk döneminden yetişkin haline kadar ‘Başarısızlık ve tekrardan ayağa kalkmak’ felsefesi üzerine belirli sahneler vardır.

Batman Begins’de Bruce çocukken bir kuyuya düşer ve uzun süre orada kalır. Babası onu kurtarmaya geldiğinde. Bruce’a sorar ‘Why do we fall Bruce?’

Neden düşeriz? Neden başarısız oluruz?

The Dark Knight Rises’da Bruce Wayne, Bane tarafından beli kırıldıktan sonra, aslında bir hapishane olan çukura terk edilir. Burada korkularıyla yüzleşen ve kendine olan güvenini tekrar kazanan Bruce Wayne, ipsiz çukur duvarından tırmanarak dışarı çıkabilir.

‘So we can learn to pick ourselves up’

‘Tekrardan ayağa kalkmayı öğrenmek, hatalarımızdan ders çıkarabilmek için.’

Şu an dünya, geçmişte yaşadığı hatalardan aldığı derslerle yeni döneme hazırlanıyor. Çukura düşen organizasyonlar, tekrardan ayağa kalkmak için duvara tırmanmaya başladı.

Benzer düşünce yapısı Çevik metodolojilerde de bulunur. Kaizen denilen metodoloji hatalardan ders çıkarıp, sürekli gelişmeyi felsefe olarak benimsemiştir.

İş dünyasında geri bildirim ve değişim olmazsa olmazdır. Hangi sektör olursa olsun, sürekli geri bildirim alıp kendinizi geliştirmeniz gerekmekte.

‘Why do we talk DevOps?’

Son dönemde DevOps konuşmamızın sebebi, değişim rüzgarlarının dijital dönüşüm hedefi üzerinden esmesi. Değişemeyenler geri kalacaklarının farkındalar.

Peki DevOps ile neler sağlanabilir? Etki alanı nedir?

  • Çeviklik için gerekli altyapıyı sağlar
  • Hızlı teslimat yapmak için gerekli araçları oluşturur
  • Akıllı süreçlerle kaliteyi sürekli kontrol eder
  • Operasyon ile arada köprü görevi görür

Bulut’un Gücü — CloudReady

DevOps’un bu kadar popüler olmasının bir nedeni de Bulut teknolojilerinin gelişmesi ve yaygınlaşması. Bulut standartları işi öyle bir yere getirdi ki artık rekabet edebilmek için ya ürününüzü Buluta taşımak zorunda kalıyorsunuz veya çeşitli platformları satın alıp, On-Premise Cloud üzerinde uygulamalarınızı çalıştırıyorsunuz.

Günümüzde CloudFoundry, Kubernetes, OpenShift gibi platformlar hali hazırda DevOps prensipleri ile birlikte geliyorlar ve sizi zaten belirli bir yönteme zorunlu kılıyorlar.

Cloud teknolojilerin yazılım dünyasına etkilerini başka bir yazıda detaylarıyla birlikte ele alacağım.

İstatistiklerle DevOps

DORA’nın 2018'de yaptığı araştırmaya göre elite grup şirketlerden DevOps yapan ve yapmayanlar arasında 46 kat daha hızlı teslimat, 2500 kat daha hızlı LeadTime (Code commit to production), 7 kat daha düşük değişiklik hata oranı ortaya çıkıyor.

http://services.google.com/fh/files/misc/state-of-devops-2018.pdf

Tüm bu veriler neden DevOps konuştuğumuzu ortaya koyuyor. Günümüz rekabetçi ortamında altyapılarınızı yenileyip, süreçlerinizi ve varlıklarınızı dijital hale getirmelisiniz.

İşin kültür tarafını da unutmamak gerekiyor. Agile ve DevOps kültürünü organizasyon içinde yaymak, iyi bir şekilde anlatmak önemli. Hatta yönetim seviyesinde destek almak daha da önemli. Önce yönetimin size inanması ve desteklemesi, değişimin etkilerini hızladırıp artıracaktır.

DevOps’un Etkileri

Agile ve DevOps ikilisi öyle bir etki yarattı ki yazılım süreçleri dışında kalabilecek Güvenlik (DevSecOps) ve Network (NetOps, DevNet) süreçleri, benzer kavramlar üretmeye başladı.

Cisco gibi bir devi düşünün ki sertifikasyon programlarına DevNet isimli bir program ekledi.

Yine Cisco’nun kendi Youtube kanalında paylaştığı ‘DevOps Comes to Networking’ videosunu izlemenizi tavsiye ederim. İlginizi çektiyse buradan ve buradan devam edebilirsiniz.

Yine NetOps üzerine bir blog yazısı işin nereye gideceğinin ipuçlarını veriyor. Benzer şekilde RedHat gibi kuruluşlar da IT altyapılarının yazılım ile nasıl değişeceğinin farkında ve gelecek için çözümler, platformlar oluşturmaya başladılar.

Bunların farkında olup, geminizi doğru limana doğru yönlendirmek de sizin göreviniz ey geleceğin CTO’ları :)

Altyapıların dijitalleştiği bu yıllarda, ‘Everything as Code’ mottosu ile yola çıkan KoçSistem — Rönesans takımına da buradan selam. Unutmadan bir selam da ACM’den Barış, Mehmet ve Alper’e ;)

Saygılarımla

/cheers

--

--

Burç Akbaş
KoçSistem

A geek, curious, guitar player, motorcycle rider and a tennis lover who likes to code - Design, Art, Technology & Music