DevOps Nedir ? ~ Kod Mutfağı

SIRIUS information technology Ar-Ge Danışmanlık Blog Sitesine Hoşgeldiniz !

13 Nisan 2016 Çarşamba

DevOps Nedir ?

Son zamanlarda popüleritesi gittikçe artan bir terim duyuyoruz: DevOps.  DevOps kelimesi Development ve Operations kelimelerinin birleşmesiyle ortaya çıkan bir yaklaşımdır. İlk olarak Agile( Çevik ) 2008 konferansında dile getirildi. Sonrasında bu alanda geliştirilen etkinlikler yaygınlaşmaya başladı. DevOps; otomasyona , iletişime , ortak çalışmaya  ve entegrasyona vurgu yapan bir yazılım geliştirme metodu olarak tanımlanıyor. DevOps, yazılım geliştirme, kalite ( QA ) ve IT Operasyon birimlerinin birbiriyle dayanışma içerisinde olmaları gerektiğini söyler.


Böylece bir organizasyonun hızlı bir şekilde yazılım ve servis üretmesini , operasyon performansını arttırmayı hedefler.Buradan da anlaşılacağı gibi DevOps sadece teknik bir yaklaşım değil, bir organizasyon kültürü yaklaşımıdır.Yani bir felsefedir.






DevOps Tanımlarından Bazıları Söyledir: 


  • DevOps, IT bölümleri içerisinde farklı disiplinlerin ( developers & operations ), sağlam bir güven ilişkisi ve etkili iletişim üzerinden beraber çalışmasıdır. 
  • DevOps, bir felsefe bir kültürel yaklaşımdır.
  • DevOps, yazılımcılar(dev) ve sistem yöneticilerinin( ops ); tasarım, geliştirme, test ve yüklemeden oluşan yazılım yaşam döngüsünde ve daha sonrasındaki destek aşamasında da ortaklaşa çalışmaları için gerekli faaliyetlerin bütününü temsil eder.
  • DevOps, yazılımcıların( dev ) kendi sistemlerinin çalışması için kullandığı tekniklerin, sistem yöneticileri( ops ) tarafındanda kullanılmasıdır. Bu araçlar, kaynak kodu kontrolünden ( source code control ) teste, oradan Agile geliştirme süreçlerine ( Agile Development Processes ) kadar uzanır.
DevOps Ve Agile:

DevOps ile Agile yaklaşımın güçlü bağları vardır. Agile yazılım geliştirme müşteri ile ürün yöneticileri, geliştiriciler, bazen de kalite kontrolcüler arasındaki işbirliğini zenginleştirmeyi hedefler ve daha yüksek kaliteli, daha sık ve sorunsuz ürün çıktısı sağlar. Müşteri için yaratılan değerde aynı şekilde yüksek olur. DevOps yazılım geliştiricilerin çıktısı olan ürünün diğer sistemlerle etkileşiminin de müşteriye sunulan değerin temel bir parçası olduğunu söyler ve böylece ürün geliştiriciler, sistemler etkileşimini de hesaba katmalıdır, der. Yani; DevOps basit anlatımla Agile prensipleri daha da genişleterek sadece üretilen kodu değil hizmetin tamamını göz önünde bulundurur diyebiliriz.

DevOps Ve ITIL:

ITIL Nedir ? (Information Technologies Infrastructure Library- Bilgi Teknolojisi Altyapı Kütüphanesi) kelimesinin baş harflerinden oluşmuş bir kısaltmadır. Bilgi Teknolojisi Altyapı Kütüphanesi olarak adlandırılır. ITIL servis yönetim metodolojisi, BT servislerini eksiksiz ve en iyi kalitede yönetmek için geliştirilmiştir. ITIL servis yönetimini en iyi şekilde sürdürmek için kullanıcılarına rehberlik etmektedir.
ITIL'ın başlıca amaçları:
  1. Maliyetleri düşürmek,
  2. Erişebilirliği arttırmak,
  3. Kapasiteyi ayarlamak,
  4. İş gücünü arttırmak,
  5. Kaynakları verimli kullanmayı sağlamak,
  6. Ölçeklenebilirliği arttırmak
ITIL; hizmet yaşam döngüsüne yağunlaşmakta, doğumundan ölümüne kadar tüm hizmet adımlarını içeren bir ITSM kılavuzu oluşturmaktadır. ITIL fazlarında kendi altyapı süreçlerinizi tasarlarken, DevOps fonksiyonlarını da ITSM uygulamaları ile tanımlayabiliriz. Bir DevOps yaklaşımı ITIL süreçlerinden bağımsız olarak konumlandırılamaz. Şirketler hizmetleri, müşterileri, tedarikçileri arasındaki bağı kuvvetlendirmek için ITIL süreçlerini başarı bir şekilde yönetmelidirler. 


DevOps'un Faydaları:

DevOps uygulamalarını yürüten şirketler çok daha verimli çalışırlar. DevOps yaklaşımı ile çalışmayanlara göre 30 kata kadar daha fazla dağıtım (deployment) yapabilirler.
DevOps ile gelen en büyük değişim, eskiden ayrık çalışan ve farklı becerilere sahip takım üyelerinin; geliştiriciler, veritabanı yöneticileri, sistem yöneticileri, sistem analistleri.. vb.; bir araya gelip bir takım oluşturması olmuştur. Farklı rollerdeki bu işbirliğinin birçok avantajı vardır.

Teknik Faydaları:
  • Sürekli teslim,
  • Düzeltilecek sorunların daha az karmaşık olması,
  • Sorunların daha hızlı çözülmesi
İşletmeye Olan Faydaları:
  • Ürün özelliklerinin daha hızlı olması
  • Daha istikrarlı,stabil çalışan sistemler,
  • Sorun gidermekten daha çok,iyileştirme için zaman ayrılması
DevOps Araçları:

Veritabanı:
  • MySql:           
  • MongoDB:     
  • PostgreSQL
Konfigürasyon Yönetimi:
  • Chef
Uygulama Dağıtımı:
  • Capistrano
  • Go
  • Juju
İzleme:
  • New Relic
  • Sensu
Kaynak Kodu Versiyon Kontrolü:
  • git
  • apache subversion
  • github
  • bitbucket
Yapılandırma Ve Test:
  • Gradle
  • Jenkins
  • Maven
  • Grunt
  • sbt
Zengin Kaynak Yönetimi:
  • Nexus
  • Archiva
  • Nuget
Sürekli Entegrasyon:
  • Jenkins
  • Bamboo
  • Travis
  • TeamCity
Middleware:
  • Tomcat
  • Jetty
  • Geronimo
Bulut:
  • Amazon Web Services
  • Azure
  • Jelastic