[Blog Post] DevOps Nedir?


Hayırlı günler arkadaşlar,

Uzun zamandır word’de yazılı olarak duruyordu, blog’a geçirmek iş yoğunluğu nedeniyle epey vakit aldı.

Bu yazıda özellikle son zamanlarda yaygın olarak duyulmaya başladığımız ve bir çok kurumun da dikkatini çeken bir kavram olan DevOps ile ilgili temel kavramları ve ne olduğunu anlatmaya çalışacağım. Öncelikli olarak en temel anlamıyla DevOps bir teknoloji veya IBM’e göre DevOps, iş(business), geliştirme(development) ve BT operasyonları arasındaki yakın işlebirliğini teşvik eden bir yaklaşımdır. Amazon’a göre ise DevOps, uygulamaları ve hizmetleri hızlı bir şekilde sunma kabiliyetini artıran kurumsal felsefelerin, uygulamaların ve araçların birleşimidir. Diğer yandan DevOps, sürekli teslimatı (continuous delivery), sürekli deployment’ı ve uygulamaların devamlı gözlenmesini (continous monitoring) sağlayan kurumsal bir kapasite/yeterliliktir.

DevOps, geliştirmeyi, operasyonu ve hatta testi çevikliği geliştirmek için bir araya getirir. Amazon ve IBM kaynakları özellikle DevOps öncesinde geliştirme ve operasyon ekiplerinin birbirlerinden soyutlandığını belirtmişlerdir. Bu soyutlanma için “siloed” kelimesini kullandıklarını gözlemledim.

Anahtar Özellikler

  • Geliştiriciler, test ve operasyon uzmanları paylaşılan DevOps araçlarını kullanarak işbirliği içerisinde çalışırlar,
  • Yazılımın sürekli teslimatını ve geliştirme, entegrasyon ve staging ortamlarının başından sonuna kadar sürekli gözlemlenmesini kolaylaştırır.
  • Araçlar release yönetimini, altyapı süreçlerini, otomasyonları, sanallaştırmayı ve gözlemlemeyi kolaylaştırır.
  • Geliştiriciler ve operasyon uzmanları arasındaki bağlantıyı yakınlaştırarak hedef ve kaynak yerleşim hatalarını düzeltir.
  • İyileştirmelere ve hatalara hızlı tepki vermeyi iyileştirmek için geliştirme süreçlerine müşteri geribildirimi birleştirir.

Yararları

a) Hız

DevOps modeli geliştiricilerin ve operasyon ekiplerinin, yüksek hızda hareket kabiliyeti ile birlikte; müşterilere daha hızlı çözümler üretebilmesine, değişken pazarlara daha iyi uyum sağlayabilmesine, iş süreçlerindeki verimi daha fazla artırmasına olanak sağlar.

b) Hızlı Teslimat

Release’lerin sıklığını ve hızını artırarak ürününüzün iyileştirme sürecini hızlandırabilirsiniz. Yeni özellikleri dağıtıma çıkarma ve hataları çözümleme sürelerinin artması sağlanır. Devamlı entegrasyon ve devamlı teslimat sayesinde yazıım dağılım süreçleri build’den deploy’a otomatikleştirilir.

c) Güvenilirlik

Uygulama güncellemelerinin kalitesini ve alt yapı değişikliklerini garantiye alarak  güvenilir şekilde teslimat yapabilirsiniz. Devamlı entegrasyon ve devamlı teslimat gibi süreçler kullanarak her değişikliğin güvenli ve işlevsel olduğunu test edebilirsiniz. Gözlemleme ve anlık loglama süreçleri ile gerçek zamanlı performans hakkında haberdar olabilirsiniz.

d) Ölçek

Otomasyon ve süreklilik, karmaşıklığı ve sistem değişikliklerini etkili şekilde yönetebilmenize yardımcı olur.

e) İyileştirilmiş İşbirliği

Bir DevOps kültürel modeli altında daha etkili ekipler kurabilirsiniz. Bu durum sahiplik ve sorumluluk gibi değerleri öne çıkarmanızı sağlar. Geliştirme ve operasyon ekipleri yakın işbirliği içerisinde olarak sorumlulukları paylaşabilir, birbirlerinin iş süreçlerini birleştirebilirsiniz. Dolayısıyla verimsiziliği azalabilir zaman tasarrufu sağlayabilirsiniz (örneğin; operasyon ve geliştirici ekipleri arasında devirteslim süreçlerini azalabilir).

f) Güvenlik

Kontrol sağlayarak ve uyumluluğu koruyarak hızlı şekilde hareket edebilirsiniz. DevOps modeline  güvenlikten herhangi bir fedakarlık yapmadan uyum sağlayabilirsiniz.

Neden DevOps?

a) Devamlı test

Geliştirmeler sonucunda ortaya çıkan yeniliklerin/farklılıkların stabil ve güvenilir olduğunu sağlanır.

b) Devamlı teslimat

Yazılım teslimat süreçlerini otomatikleştirecek ve boşa giden eforları azaltacak yenilikler yapılmasına olanak sağlar.

c) Devamlı gözlemleme

Mevcut süreçlerin performans ve durumları sürekli olarak gözlemlenmesini sağlar.

Ne Değildir? 

Özellikle DevOps, Developer ve Operation kavramlarının birleşimi değildir.

Bir proje türü veya projelendirilebilecek bir kavram değildir. Yeni bir proje yaşam döngüsüne alınmaz.

Yeni teknolojiler alınması demek değildir (diye ifade edilse de özellikle IBM ve Amazon’un sitelerinde DevOps kavramlarını açıklarken her bir kavrama denk gelebilecek bir teknoloji tavsiyeleri olduğunu görebilirsiniz.)

Son Söz

DevOps modeli/yaklaşımı özellikle tüm süreçlerin bir pipeline içerisinde olmasını tavsiye ediyor. Öğrenilmesi gereken bir kültür ve yaklaşım olarak düşünebiliriz. Örneğin;

Kaynaklar

 

Advertisements

, , , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s