Buluttan Buluta — Artiwise Dijital Dönüşüm Hikayesi

Artiwise yapay zeka konusunda ürünler geliştirmeyi odağına almış bir kuruluş olarak ürünlerini sunmak için ihtiyaç duyacağı alanlardaki teknolojilerde de yenilikçilik konusunda oldukça cesur ve girişimci bir şirkettir. Bu amaçla kurulduğu günden beri farklı dönüşümler geçirerek geldiği konumda bir çok muadili firma tarafından bile halen kullanılamayan teknolojilerde öncü bir rol üstlenmiştir.

Artiwise kurulduğu ilk dönemlerde yenilik ve Ar-Ge konusuna o kadar odaklanmıştı ki, sistemlerin deploy ediliş biçimi, sistem yönetimi konusundaki zorluklar gibi konularda büyük eforlar harcansa da göze alınabiliyordu. Ancak zaman içinde verilen hizmetin kritikliği, sistemlerdeki büyümeler ve genişleyen ekip yapısı, daha efektif bir sistem yönetimini zorunluluk haline getirmişti.

İlk Bulut Çalışması

İçinde bulunduğumuz klasik altyapı mimarisinin değişimi için çıkış yolu olarak bulut altyapısına geçmemiz gerektiğinin farkındaydık. Bu süreçte nasıl bir yol izleyeceğimiz konusunda yaptığımız araştırmalar sonunda uygulamaların Docker (Container) yapısı ile çalışmasının çok daha efektif olacağını görerek Docker konusundaki ilk araştırma ve deneme sürecimizi başlattık. İlk aşamada sistem bileşenlerimizi temsil eden projelerimizin dockerfile’larını yazarak, imajlarının hazırlanmasını sağladık. İlk geçişimizi ve bütünsel sistem testlerimizi mevcut bulunan test ortamımız üzerinde gerçekleştirdik ki aynı zamanda bu bizim için Docker imajlarının kullanıldığı bütün sistemin ilk yaygınlaştırma çalışmasıydı. İlk manuel tetiklenen yaygınlaştırma çalışmamızın akabinde bizi bir sonraki seviyeye taşıyacak olan ve operasyonel verimliliğimizi de arttıracak olan otomatik yaygınlaştırm çalışmasına odaklandık. Şirketimizde kullanılan kod deposu (code repository) olan Gitlab üzerinde otomatik yaygınlaştırma için sunulan yetenekleri kullanabileceğimiz farkettik. Kısa süreli bir öğrenme ve deneme sürecinden sonra da Gitlab üzerindeki CI/CD (Continuous integration and Continuous delivery) seçenekleri ile otomatik yaygınlaştırmayı başardık. Böylece geliştirme ve ürün yönetimi ekiplerinin koordinasyonunda, DevOps ekibinden herhangi bir desteğe ihtiyaç duyulmaksızın, yeni çıkan paketlerimi test ortamında otomatik olarak yaygınlaştırılır hale gemişti. Bu sayede DevOps ekibimizin üzerinden büyük bir yük kalkmış oldu. Tabi herşey bitmedi. Beraberinde yeni süreçlerin de önü açılmış oldu bu geçişle.

Docker imajlarını mevcut uygulama sunucularımız üzerinde çalıştırabilmek için Docker Swarm kullanarak ilk Prod geçişini 2019 yılında gerçekleştirdik. Artık deploymentlar ve versiyon kontrolleri daha rahat takip edilir hale gelmişti. Geçişlerde yaşanabilecek hata ihtimali de büyük oranda düşmüş oldu. Bu gelişme bile şirket içinde önemli bir fark oluşturmuştu.

Docker Swarm’ın proje olarak kullanım yaygınlığının ve olgunluğunun düşüklüğü, Storage ve Cronjob tarafındaki kaabiliyetlerinin sınırlı olması sebebiyle yönümüzü Kubernetes’e çevirdik. Uygulama imajlarını yapmış olduğumuzdan Kubernetes ortamına geçişin daha kolay olacağının farkındaydık. Local ortamlarda yaptığımız testler sonrasında o dönemde sunucu hizmeti aldığımız AWS üzerinde Kubernetes servisi (Amazon EKS) kullanmaya başladık. Birkaç node ve sınırlı kaynak ile test ortamının deployment süreçlerini hayata geçirdik. 2020 yılı ilk yarısında Prod ortam geçişi ile Kubernetes hayatımızın ayrılmaz bir parçası haline geldi. Artık Docker Swarm tarafında yaşadığımız sorunları aşmış yeni bir uygulama platformuna geçiş yapmıştık. Tüm bunları yaparken veritabanı katmanı hala klasik mimaride çalışmaya devam ediyordu. O tarafın geçişini nasıl yapacağımızı açıkçası henüz tam olarak bilemiyorduk. Tekil çalışan servisler oluşturduğu risklerden kurtulup, birbirinin yedeği olabilecek replikasyon yapısı ile çalışan sistemlere ihtiyacımız mevcuttu. Kubernetes’te bunun nasıl kurulacağı konusunda araştırmalara başladık. Bu noktada yapılacak çalışma öncesi daha farklı radikal bir yol izlemeye karar verdik.

Bulutlar Arası Yolculuk

Amazon tarafındaki artan maliyetler sebepli yaşadığımız kaynak yetersizliği sorunları ve KVKK uyum süreçlerinin tam uyumluluk sağlayabilmek adına, 2021 yılı başında kendi sunucu altyapımızı oluşturduk. Bu sayede işlem gücümüzü her anlamda 5 kat arttırdık. Kendi sunucularımızda Kubernetes ortamlarının çalışır hale getirmek ise pek de kolay olmadı. Amazon’dan aldığımız hizmette görmediğimiz sunucu yönetimi, sanallaştırma ve yedeklilik gibi süreçler buz dağının görünmeyen yüzü olarak karşımıza çıktı.

Sanallaştırma ve sunucu yönetimi konusu özelinde yaptığımız çalışmalar sonrası en uygun çözüm olarak Proxmox’u kullanmaya karar verdik. Yüksek Cpu ve Memory gücüne sahip sunucularımızda Prod, Test, Dev ortamları ile birlikte farklı ortamları sanal suncular şeklinde oluşturduk. Kubernetes ortamlarının kurulumu, yedekliliği vb. sorunları da çözdükten sonra data katmanında yine yeni tanıştığımız Ceph altyapısı üzerine araştırmalar yapmaya başladık. Kubernetes ortamlarını Ceph data katmanı ile çalışır hale getirdikten sonra; Amazon da değişimini yapamadığımız veritabanı katmanını da klasik mimariden kurtarıp, Kubernetes üzerinde nasıl çalştıracağımız konusunda yeni bir araştırma çalışmasına daha başladık. Tüm bu araştırma çalışmalarının sonunda veritabanı katmanında kullandığımız Apache SolrMongodbPostgresqlRedisApache KafkaElastic Search gibi yazılımların çoklu yapıda kurulumlarını sağladıktan sonra Prod ortamı geçişiyle birlikte artık tüm ortamları Kubernetes üzerinde çalışmasını sağlamış olduk. Artık kendi bulut ortamımımızda çok daha rahat çalışmaya başladık.

Sonuç

2019–2021 yılları arasındaki Artiwise’ın dijital dönüşüm hikayesi kısaca böyle gerçekleşti ve gelişerek devam ediyor. Önümüzde daha çok yol var farkındayız. Merdivenin basamakları şeklinde adım adım ilerliyoruz. Attığımız her adım sonrası yepyeni ve farklı konular karşımıza çıkıyor. Ekip arkadaşlarımla birlikte bu süreçte yaptığımız çalışmaları çok değerli buluyorum. Umarım bu yazımızda anlattığımız konular sizler için de ilham verici olur. Teknik konular için de yeni blog yazıları hazırlamakta kararlıyız. Sonuçta bilgi paylaştıkça çoğalır…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>