Mono CTO'su Burak Aydın Girişimler için mikroservis kullanımını anlattı

Webrazzi Developer 2020'de konuşan Burak Aydın, mikroservise geçiş öncesinde ihtiyaçları, dikkat edilmesi gereken mikroservis özelliklerini, mikroservis dezavantajlarını ve Microservis mimarisinin nasıl basitleştirilebileceğini anlattı.
Mono CTO'su Burak Aydın Girişimler için mikroservis kullanımını anlattı

Online ve ücretsiz olarak 4 binden fazla geliştiricinin katılımıyla gerçekleşen Webrazzi Developer 2020 konferansımızda Mono CTO'su Burak Aydın girişimlerin mikroservis mimarisini kullanmaya başlamak için atacağı adımları ele aldı. 

Girişimler için Mikroservis başlıklı konuşmasının başında Netflix ve Uber gibi teknoloji devlerinin kullanmasıyla Mikroservis mimarisinin popülerleştiğini belirten Aydın, Mono'nun mikroservis mimarisine geçiş sürecini paylaştı. 

Bu noktada Mono'nun yaklaşık 10'u geliştirici olmak üzere 35 kişilik ekibiyle 50'den fazla uygulama geliştirdiğini belirtelim. iOS ve Android uygulama platformlarında 600 milyondan fazla indirme alan Mono uygulamaları, 40'dan fazla dil desteği küresel pazarı hedefliyor. 

Mikroservise geçiş öncesinde ihtiyaçlar neler? 

Mikroservisler ise tam da bu noktada devreye giriyor. Startup'ta önemli hız, süreklilik ve kalitenin önemli olduğunu vurgulayan Aydın, geliştirdikleri uygulamalarda ortak bileşen- ödeme servisi, bildirim servisi, loglama, kampanya ve reklam yönetimi gibi ortak bileşenlere sahip olduklarını belirtti. Bunun yanı sıra hızlı ve sürekli olarak çok sayıda uygulama geliştirmenin beraberinde ani bir iş yükü getirdiğini de sözlerine ekledi.

Aydın, ortak bileşenlere sahip olmanın ani iş yükünü yönetebilmek adına karşılarına iki seçenek sunduğunu açıkladı. Bunlardan ilki kütüphane geliştirmek diğeri ise mikroservis kullanmak olarak öne çıktı. 

Aydın'ın aktardığına göre; kütüphane geliştirme seçeneği, takip etmek ve güncellemek açısındam uzun vadede iş yükü getirirken, mikroservis mimarisi ani iş yükünün önüne geçmekte önemli bir rol oynuyordu. Bu noktada Mikroservis mimarisi kullanmayı tercih eden ekip, katılımcılarla dikkat edilmesi gereken mikroservis özellikleri ve dezavantajlarını da paylaştı. 

Dikkat edilmesi gereken mikroservis özellikleri 

Mikroservis mimarisinin gevşek bağlı olması gerektiğini söyleyen Aydın, servislerin birbirinden bağımsız geliştirilebilmesi gerektiğini belirtti. Kısaca iki farklı servisin birbirinin güncellemesine bağlı olamaması gerektiğini vurguladı. Aynı şekilde servislerin aynı veri tabanını kullanılmaması gerektiğini dile getiren Aydın, her servisin  kendi veri katmanını kullanmasının önemine dikkat çekti. 

Aynı şekilde Mikroservis mimarisinin kolay ölçeklenebilir ve dağıtık yapıda olması gerektiğine de değindi. İzolasyon özelliğinin de önemimi vurgulayan Aydın, bir serviste bir sıkıntı olduğu takdirde diğer serviste durma olmaması gerektiğini söyledi.

Son olarak mikro sevis mimarisinde çok fazla uygulama geliştirileceği için mimarinin yeniden kullanılabilmesi gerektiğini de vurguladı. Aydın, bu özelliğin uzun vadede iş yükünü %25 civarında düşürebileceğini ekledi. 

Mikroservis dezavantajları 

Aydın mikro servis mimarisinin dezavantajlarından da bahsetti. Kompleks mimarisinin küçük bir ekiple geliştirilmesinin zor olduğunu belirten Aydın, Devops tarafında deneyimin önemli olduğunu açıkladı. Kubernets gibi sistemler kullansanız da bunları çok iyi bilmeniz gerektiğine de dikkat çekti. Bunun yanı sıra mikro servis kullanmanın maliyetinin yüksek olduğunu hatırlattı. 

Microservisi nasıl basitleştirebiliriz? 

"Netflix'in mikroservise geçişi 10 yıl sürdü." diyerek mikroservis süreçlerinin zaman aldığını belirten Aydın, mikroservisi basitleştirmek üzere neler yapılabileceğini de örneklendirdi. Konteynırları çoklama konusuna değinen Aydın, "önce projeleri basitleştirdik" dedi.

Bütün projeler için mikroservise ihtiyaç olmadığını tespit eden ekip, konteynerlerı ayırmak yerine kendi instansları ile ilerlemeyi tercih etti. Aydın bunun yanı sıra Redis'i birden fazla amaçla kullandıklarını da ifade etti. 

Burak Aydın, sözlerinin sonlandırırken, projelerin monolitik yapıda 10 yıl devam edebilecekse mikro servis mimarisi kullanmaya gerek olmadığını söyledi. Mikro servis mimarisi için ekipte en az 5 geliştiriciye ve daha da önemlisi deneyime ihtiyaç duyulduğunun da altını çizdi. Ayrıca teknik gereksinim duyulduğunda mikro servise geçişin ertelenmesinin ölçeklendirme problemiyle sonuçlanabileceğini de belirtti.