IT dünyasının kaçınılmaz devrimi: Otomasyon
Bir system admin’in görevi ve yaşadığı sorunlar nelerdir?
Özetle sistemi kurmak, monitör etmek, yönetmek, stabil ve kesintisiz çalışmasını sağlamak şeklinde sıralayabiliriz.
Peki sistemi kurmak ve yönetmek, aynı komutları tekrar tekrar çalıştırmak ve aynı hataları tekrar tekrar görmekten mi ibarettir? Bir sunucuyu production’a almak için 50 satır komutu her seferinde tek tek çalıştırmak için 2-3 saat harcamak mantıklı mı?
Süreçleri bu şekilde yönettiğimizi varsayalım. Her seferinde 50 satır komutu eksiksiz yazdığımızdan nasıl emin olacağız? Veya yapılan configin değişmeyeceğini garanti edebilir miyiz? Hatalar eğer 1-2 sunucu yönetiyorsak belki hemen fark edilebilir, fakat 20 veya daha da fazla, mesela 200 adetse?
200 adet sunucuya SSH ile bağlanıp tek tek aynı configi kontrol etmek bir sysadmin’in yaklaşık 3-4 saatini alır. Bu çalışanın vaktini ve kaynağını boşa tüketmek değil de nedir? Personel, 3-4 saat boyunca sisteme katkı sağlayarak bir projeyi ilerletebilir veya müşteri talepleriyle ilgilenip firmasına daha fazla katkıda bulunabilir. Sözün özü, bu kontrolleri ısrarla tek tek yapıp vakit kaybının yanı sıra hata yapmaya devam mı edilmeli yoksa yeni ve inovatif bir çözüm mü aranmalı?
Çözüm aslında çok açık, Otomasyon!
Otomasyon hayatımızın her alanında yer almaktadır. İnsan kontrolü ile yapılan işlerde hata oranı otomasyon sistemlerine göre çok daha yüksektir. Göz ile kontrol ettiğimiz veya el ile yaptığımız işleri artık makineler üstlenmeli, kontrolleri yapmalı ve hepsinden önemlisi bunu raporlamalıdır.
Basit bir örnek vermek gerekirse evimizdeki kombiyi bile artık app ile takip edebiliyor eve gitmeden açılmasını sağlayabiliyor veya açık unuttuysak kapatabiliyoruz. Her şeyin bu kadar otomatize olduğu bir dünyada bizim de operasyonlarımızda farklı ve yeni çözümlere yönelmemiz gerektiği açıktır.
Medianova olarak otomasyon çözümleri içerisinde birkaç tanesini test etmiş hatta yıllarca kullanmış bir firma olarak şu anda RedHat’in otomasyon çözümü olan Ansible ile çalışmaktayız. Herhangi bir sistem uzmanının rahatça kullanabileceği bir çözüm olan Ansible ile kendimizi rutinleşmiş işlerden kurtarıp kalan zamanda Medianova’yı daha ileri taşımanın yollarına odaklanabiliyoruz.
Otomasyonun kazancı nedir?
Otomasyon, sadece çalışanlar otursun, kahvesini içsin diye ortaya çıkmış bir kavram gibi düşünülmemelidir. Daha üretken zihinler için kahve içmeye vaktimizin kalması güzel bir artı olarak eklenebilir tabi.
Çalışmalarımızdan önce Medianova’da bir sunucuyu production’a almak yaklaşık olarak 3 saat sürmekteydi. Bu 3 saat; işletim sistemi kurulduktan sonra gerekli firewall tanımlarının yapılması, kernel güncellemelerinin sağlanması, servis ayarlarının yapılması, kernel performans tuningleri ve applicationların kurulmasıyla birlikte yaklaşık olarak 50+ satır komutun yazılıp kontrol edilmesi demekti. Harcanan zamanın yanı sıra unutulan bir performans ayarı veya uygulama configi, müşterinin kötü bir deneyim yaşamasına sebebiyet verebilir. Bu durum hem firmanın itibarı sarsılacaktır hem de müşterinin iş süreci açısından olumsuzluklar doğacaktır.
Biz, Medianova olarak; tüm configlerimizi, uygulamalarımızı, servislerimizi otomasyon ile yönetiyor, minimum müdahele ile sistemimizi yönetip monitör ediyoruz. Buradan kazandığımız tüm zamanı daha gelişmiş otomasyon çözümlerine ve hizmet kalitesine harcıyoruz. Sistemi güncellemekten korkmuyoruz. Yeniliğe açık ve agile oluşumuzun ana sebeplerinden bir tanesi de otomasyonda başarılı oluşumuzdur. Yeni bir özelliği gerekli development testlerinden sonra yalnızca 20 dakika içerisinde productiona alabiliyoruz.
Ayrıca biz kurulum için yalnızca Ansible kullanmıyoruz. Slack entegrasyonu vasıtasıyla gözle kontrol ettiğimiz rutin raporları otomatik olarak alıyoruz. Yaptığımız güncellemeleri notification olarak Slack üzerinden iletip herkesin aynı anda bilgilenmesini sağlıyoruz. Hatta hangi versiyon ile bu değişikliği sağladığımızı da takip edebiliyoruz. Olası bir problem halinde, Github üzerinde koruduğumuz kodlarımızı bir problem yaşatmadan geri alabiliyoruz.
Tüm sistemin yönetimi ve sync kalmasını Ansible ile sağlıyoruz. Ansible’a otomatik olarak sistemi belirli periyodlarla kontrol ettiriyor ve değişikliklerin tespit edilip düzeltilmesini sağlıyoruz.
Ansible’in modüllerinin yanı sıra kendi bash scriptlerimiz ile bir çok performans ayarlarımızı, raporlamalarımızı, kontrollerimizi yapabiliyor ve hataya yer vermiyoruz. Firewall, Kullanıcı hesapları, ntp, snmp, fail2ban, hostname ve bunlar gibi bir çok servisi ve configlerini yönetiyoruz. Uygulama versiyonlarının update’lerini kontrollü bir şekilde yapabiliyor ve sonuçlarını slack ile raporlatabiliyoruz.
Kısacası yapabileceklerinizin bir sınırı yok ve anlattıklarımız yaptıklarımızın sadece küçük bir kısmı.
Otomasyon ile yukarıda bahsettiğim sorunlara siz de bir son verebilirsiniz. Tüm bu ayarlarınızı 1 kere yapacaksınız ve bir daha düşünmek zorunda kalmayacaksınız. Config’de yapacağınız değişikliği, 200 sunucuda tek tek elle değiştirmek yerine, 1 template üzerinde değiştirebilir ve 3 saatlik işi 5 dakikalık bir işe dönüştürebilirsiniz. Sunucu kurmak 3 saatinizi alırken işletim sistemi kurulduktan sonra 20 dakika içerisinde productiona alabileceksiniz.
Medianova olarak vakit bizim için her şeyden önemli. Amacımız, otomasyonu hep el üstünde tutup, insan hatasına olabildiğince az yer vermek. Bir kontrol sağlanacaksa tüm cihazlarımızda kontrolü sağlatıp hatalı kolayca tespit edebiliyor, günlük raporlar çıkarıp inceleyebiliyor ve sunucu kurulumu gibi basit işlere bir sistem uzmanımızı 3 saat hapsetmiyoruz. Her zaman gelişmeye/geliştirmeye odaklanıyor ve hizmet kalitemizin artması için çalışmalar sağlıyoruz.
Hala elle kontrol/kurulum/değişim/yönetim yapıyorsanız tekrar düşünmenizi tavsiye ederim. Zaman agile olma zamanı!
.