DevOps nedir?
DevOps, ülkemizde henüz yeni
duyulmaya/uygulanmaya başlayan bir kavram olmakla birlikte, ortaya çıkış tarihi
olarak 2009 yılında Belçika’da başlayan “Devops Days” (DevOps Günleri)
etkinlikleri kabul edilebilir. Ancak DevOps’u, birden bire ortaya çıkıp
hayatımıza giren bir kavram olarak değerlendirmek doğru olmaz. DevOps
düşüncesinin temelinde Çevik Sistem Yönetimi (Agile System Administration),
Kurumsal Sistem Yönetimi (Enterprise Systems Management) ve Çevik Altyapı (Agile
Infrastructure) gibi önemli yaklaşımlar bulunmaktadır.
Peki nedir DevOps? En basit
şekilde açıklamamak gerekirse; DevOps
= Development + Operations; yani yani
yazılım geliştirme ve IT operasyon birimlerinin; yazılım hizmet döngüsünün her
aşamasında (analiz ve tasarımdan, kodun üretime taşınması ve üretim ortamı
desteğine kadar) birlikte çalışmasıdır.
DevOps, yazılım geliştiriciler ve
operasyoncuların bir arada çalışması olarak tarif edilse de, genel anlamda
kalite kontrol ekibinden, sistem güvenlik
uzmanlarına kadar uzanan geniş bir kitleyi içine alır.
DevOps’u anlamamız konusunda
yukarıdaki tanımlar yardımcı olsa da, DevOps konusunda genel bir kafa
karışıklığı olduğunu da söylenebilir.
Bunun bir nedeni olarak da, henüz DevOps’u ve alt süreçlerini detaylı olarak
tarif edebilecek bir süreç seti veya bir kurumun bu konudaki yetkinliğini
ölçebilecek bir olgunluk modeli olmamasını
gösterebiliriz. Ancak DevOps konusuna olan ilginin yoğunluğu, çok yakın zamanda
bu alanda yeni modeller, ürünler ve süreçlerle karşılaşacağımızın önemli bir
göstergesi...
DevOps, Gartner’ın raporlarına
göre önümüzdeki dönem IT dünyasındaki en öncelikli konuların başında gelecek. Ülkemizde de bazı büyük firmaların bu konularda eğitimler aldığını,
altyapısal çalışmalar yaptığını ve süreçlerini gözden geçirdiğini biliyoruz.
DevOps konusuna yatırım yapmak ve
bu sayede hem kalite, hem de verimlilik artışı planlayanlar için en önemli
başvuru kaynaklarından birisi Cameron Haight tarafından hazırlanan, Temel
DevOps Şablon ve Pratikleri çalışmasıdır. Haight, Teknoloji, Kültür, Süreç ve
İnsan boyutları ışığında “Infastructure As Code”’dan “Automated Testing”’e;
MVP’den (Minimum Viable Product/Process) “Continuous Monitoring”’e kadar birçok
pratiği modeline dahil etmiştir.
DevOps, Agile (Çevik) yazılımda
da olduğu gibi insanları ve süreçleri, araçlardan yeğ tutmaktadır. Diğer bir
ifadeyle belirli araçları kullanmak DevOps yapmak anlamına gelmez. Hoş zaten
DevOps aracı diye birşey de bahsetmek mümkün değildir. Ancak farklı araçlar
(Versiyon Kontrol Aracı, Performans İzleme Aracı, Yazılım Dağıtım Aracı gibi)
biraraya gelerek bir DevOps araç seti olarak kullanılabilir. Burada önemli olan
araçlar değil, insanlar, prensibler ve süreçlerdir. Önemli olan hem
iş birimlerini hem müşterileri memnun eden
kaliteli yazılım sistemleri ve bu sistemlerin oluştururken de verimli ve
etkin çalışabilen, yaptığı işten keyif alan yazılım geliştirme ve operasyon
uzmanlarıdır.
Son olarak da bu çalışmada gözden
kaçmaması gereken bir nokta da DevOps için Türkçe karşılığının belirtilmemiş
olmasıdır. DevOps kolay ifade edilen kısaltma bir terim olduğu için, Türkçe bir
karşılığının belirlenmesi ve yaygınlaşması çok kolay olur mu bilinmez. DevOps’u
karşılamak için “Geliştirme Operasyon(u)”, “Yazılım Operasyon(u)” ifadeleri
veya belki de kısa olarak “YazOp”, “GelOp” terimleri kullanılabilir.
Dr. Ersin Ünsal
Mirsis Bilgi Teknolojileri
Proje Yöneticisi