24 Şubat 2014 safkan

DevOps: Kime Lazım, Neden Lazım?

DevOps, “development” ve “operations” kelimelerinin bir araya getirilmesinden oluşmuş bir kelime. Yani, “geliştirme” ve “operasyon”. Burada “geliştirme” dediğimiz zaman, yazılım geliştirilmesinden bahsediyoruz. Operasyon derken de, bu yazılımın çalıştırılması ve kullanımından bahsediyoruz…

Geliştirme, yazılımcılar tarafından yapılır. Yazılımcılar genellikle, kendi “güvenli alan”larından, yani kod yazma alanından dışarıya çıkmak istemezler. Kod hangi makinada çalışacak, oralara nasıl kopyalanacak, çalışma sırasında ne problemler çıkacak gibi sorunlara ilgi göstermek istemezler. Gösterirlerse de, bundan çok hoşlanmazlar.

İşin operasyon tarafına bakarsak, burada da “klasik” anlamıyla, kullanıcılar (ki genel olarak teknik olmayan insanlardan oluşurlar) ve sistem yöneticileri vardır. Sistem yöneticileri, yazılımları kurup kaldırırlar, sistemleri genel olarak çalışır halde tutarlar. Ancak yaptıkları bundan öteye gitmez.

Bir problem çıktığında nasıl çözümleneceği, belli başlı problemlerle nasıl baş edileceği de çok net değildir. Yazılımcı “ben yazacağımı yazdım”, sistemci de “ben bana geleni çalıştırdım” fikrindedir…

İşte DevOps, bu arada oluşan boşluğun cevabıdır. İçinde hem geliştirmenin operasyonunu, hem de operasyonun geliştirmesini içerir. Kısaca özetlemek gerekirse, DevOps şunları yapar:

Geliştirme Operasyonu

  • Kaynak kontrol sisteminin kurulması ve yönetilmesi.
  • Gereken geliştirme ve test ortamlarının hazırlanması ve yönetilmesi.
  • Sürekli entegrasyon (CI) sisteminin kurulması ve yönetilmesi.
    • Otomatik derleme
    • Test otomasyonu

Operasyon Geliştirmesi

  • Sürekli entegrasyon (CI) ile üretim sistemlerine kod yayılması.
  • Sistemlerin izlenmesi, çalışan yazılıma uygun izleme yöntemlerinin geliştirilmesi.
  • Yazılımın eldeki sistemlerle çalışabilmesi için gereken geliştirmelerin yapılması.
  • Hata takip sisteminin kurulması, işletilmesi.

DevOps, bu işlevleriyle, yazılım ile operasyon arasındaki köprüyü kurar. Yazılımcı, kodunu yazdığında, yazılım tek tuş ile derlenir ve geliştirme sunucusunda çalışır hale gelir. Üzerindeki testler otomatik olarak çalışır. Derleme veya testlerde problem varsa, anında ortaya çıkar ve rapor edilir.

Yazılım, istenen periyodlarda, test oramına aktarılır ve kullanıcılar tarafından testlerinin yapılması sağlanır. Sonraki adımda, üretim sistemlerine yayılır.

Üretimde son versiyondan ötürü hata çıkarsa, otomasyon sayesinde DevOps tek hareketle yapılanın geri alınmasını sağlayabilir.

Sistem izleme sayesinde, sistem logları ve kaynak kullanımları takip edilir. Kaynak sorunları için önceden tedbir alınır. Loglarda çıkan hatalar ya yerinde müdahaleyle çözülür, ya da yazılımcılara rapor edilir.

Hata takip sistemiyle, kullanıcılardan gelen hatalar toplanır. Gereken incelemeden sonra, yazılım ekibine rapor edilir.

DevOps, esas olarak üretim sistemlerinin sahibi konumundadır ve sistemin çalışmasına uçtan uca hakimdir. DevOps içinde, aynı bedende toplanmasa da (toplanması tercih sebebidir) hem yazılımcı hem de sistem yöneticisi bilgi ve yeteneklerinin mevcut olması şarttır.

Eğer bir şirket içinde, yazılımı hem yazıyor, hem de kendi sistemleriniz üzerinde kullanıyorsanız, DevOps size lazımdır…

 

 

 

Comments (4)

  1. Türkiye’de bu kavram tutmaz.Çünkü inşaatçılar bizden çok para kazandıkları için şehsen sedece kod yazıp bunu sys adminlere veren yazılımcı ne duydum ne işittim. Türkiye’de yazılımıda aynı kişiler yazıyor production sunucuların yapılandırması ve kurumları da aynı kişiler yapıyor.

    Türkiye’de daha ‘Back-End’ ve “Front-End” ayrımı yapılamamışken, “DevOps” sadece fantaziden öteye geçemez.

  2. ferit

    ‘ Sistem yöneticileri, yazılımları kurup kaldırırlar, sistemleri genel olarak çalışır halde tutarlar. Ancak yaptıkları bundan öteye gitmez.’
    Az kalsın Linux Sistem Yöneticisi olmayı düşünüyordum, bu cümleyi okuyunca vazgeçtim. Ben de sistem yöneticileri önemli bi iş yapıyor sanıyordum.

Yorum bırakın