Tradesoft Blog

Tradesoft’ta DevOps uygulamaları

Finans, Fintech

Yazar – Atıl Kaya

Tradesoft Yazılım Geliştirme Müdürü

Tradesoft’ta DevOps uygulamaları

 

DevOps’un en genel tanımıyla başlayalım. DevOps Development ve Operations sözlüklerinden oluşan bir kavram. DevOps için yazılım üretenlerle (developer, architect vs.) yazılım operasyonu yapanların (system admin, dba, release manager vs.) bir arada çalıştığı, etkileşim halinde olup birbirini beslediği bir kültür demek mümkün. Bu biraz kuru olduysa, aynı zamanda büyük bir otomasyon süreci olduğunu da söyleyebiliriz. Operasyon ekiplerinin işlerinin yazılım desteğiyle otomatize edilmesi de DevOps’la doğrudan ilintili. Bu kültür / otomasyon / etkileşimin yazılım süreçlerine faydasıysa, daha kolay bakım yapılabilen, müşteriyle daha hızlı ve daha problemsiz buluşturulabilen yazılım ve hizmetler ortaya çıkarması.

 

Bu terim, Wikipedia’ya göre ilk defa 2008’de ortaya atılmış, ancak gördüğüm kadarıyla Google aramalarına 2012’den beri konu olmaya başlamış. 2012’den günümüze de populerliliği sürekli artmış. Aşağıda search trend’i paylaşıyorum.

 

 

 

 

 

Ülkemizin en büyük banka IT firmalarından birinin çok yakın zamanda DevOps’la ilgilenen ve içinde farklı disiplinlerden (dba, developer, system admin vs) profosyonelin oldugu bir DevOps ekibi kurduğunu biliyorum. Hatta oldukça parlak üniversitelerden yeni mezun olmuş bilgisayar mühendisi gençlerin klasik yazılım geliştirme ekipleri yerine, yeni kurulan DevOps ekiplerini tercih edip, kariyer planlamalarını buna göre şekillendirdiğine de çok yakından tanıklık ettim. Bunda bu sene ülkemizde bolca yapılmış olan çeşitli DevOps etkinliklerinin de önemi vardır herhalde. Dolayısıyla DevOps kavramının yazılım dünyasında ileride çok daha popüler olacak bir kavram olduğunu düşünüyorum.

 

 

Bense ilk defa 2014’te internette bir blog yazısında bu kavramla tanıştım. Şirket içinde zaten bu tarz uygulamalar yaptığımızı hatta ayrı bir devops ekibi olmayan, böyle çalışma iddiası da olmayan bir şirket için yeni bir trend’i oldukça iyi bir noktadan yakaladığımızı da farkettim.

 

 

Geliştirdiğimiz Finansal Backoffice ürünü birden çok sunucu üstünde koşabilen, sunucular arasında yük dağılımı yapabilen bir ürün. Sunucular üstündeki muhasebe uygulamalarında değişiklik yapılması gerektiğinde, değiştirilen dll’in tüm sunucularda güncellenmesi gerekiyor. 2010 yılında işe başladığımda bu işlem şirketimizdeki bir sistem uzmanı tarafından tamamen manuel yapılmaktaydı. Daha sonra sistem uzmanı arkadaşımız bu süreci otomatize etmek adına, yazılım ekibinden destek alarak basit bir .bat dosyası yazarak bu kopyalamayı bir scriptle yapmaya başladı. Son noktadaysa bu işlem tamamen uygulamanın içine bir tuşla eklenmiş otomatik çalışır hale gelmişti. Yıllardır da bu şekilde çalışıyor. 2010’da bir sistem uzmanı ihtiyacı duyan süreç, şu anda müşterilerimiz tarafından bizden bağımsız rahatça yapılabiliyor. Sistem uzmanı arkadaşımız da sadece sorun olursa konuyla ilgileniyor.

 

 

İşe başladığım yıldan beri, çalışma ekosistemimize giren, düzenli gecelik alınan build’lar, her build’dan sonra alınan build’in kendi test ortamlarımıza otomatik deploy olması, deployment sonrası kritik fonksiyonlar için otomatik testlerin koşulması ve en önemlisi, bu operasyonları sistem uzmanının sadece gelen mail bildirimleriyle takip / müdahale edebiliyor olması, bir sorun olması halinde yazılım ekipleriyle ortak çalışabiliyor olması gibi uygulamalar; artan müşterilerimize rağmen uygulamaya IT desteğinden çok yazılım desteği yapmamızı mümkün kılıyor. Bu da verimliliği artırıyor. Ayrıca bu süreçlerin tamamında hem üretim, hem sistem, hem de test ekiplerinin olması kaliteyi ve şirket içindeki paylaşımı da artırıyor.

 

 

Tabii ki bu konuda daha gidilebilecek çok yol var. Örneğin uygulamayı build etme, deploy etme, test etmeyi bir yere kadar otomatize ettik ancak bunlardan sonraki aşama olan monitoring için de sistem uzmanlarının işini rahatlatacak, diğer ürünlerimizle entegre olabilen çözümler konusunda bazı düzenlemeler yapılabilir. Ancak en başta da belirttiğim gibi aslında DevOps bir kültür, bu kültüre sahip olma iddiasında olmasak da sistem tarafının ihtiyaçlarını hızlıca yazılım süreçlerinden geçmiş otomasyonlara dönüştürme, bunu yaparken herkes için en optimum çözümü bulabilme gibi konularda iyi bir refleks gösterdiğimiz de ortada.

 

Leave a Reply