Girişiminizin Gerçekten Mikro Hizmetlere İhtiyacı Var mı?
Teknoloji endüstrisinde olmak imkansız görünüyor ve en azından son birkaç yılda “mikro hizmetler” terimini duymamıştım. Google, Amazon ve Airbnb gibi şirketlerin tümü, bu yazılım sağlama yöntemini uygulamaları oluşturmanın ve ölçeklendirmenin muhtemelen en iyi ve en verimli yolu olarak lanse ettiler.
Kalabalık pazarlarda rekabetçi kalmanın yollarını düşünürken, girişimler genellikle teknoloji devlerinin ne yaptığına bakar ve farklılaştırıcı olarak bir mikro hizmet mimarisini benimsemeyi görebilir. Bu pozisyondaysanız, dikkatli bir şekilde ilerlemek isteyebilirsiniz. Teknoloji devlerinin teşvik ettiği mikro hizmetlerin faydaları doğru olsa da, bunların yeni başlayanlara ve hızlı büyüyen küçük işletmelere dönüşmesi gerekmez.
Mikro hizmet mimarisi nedir?
Startup’ınızın neden mikro hizmetlere hazır olmadığına dair nedenlere geçmeden önce, neden bahsettiğimizi netleştirelim. Blogumuzda daha detaylı bir açıklama yazdık ama işte basit bir versiyon. Mikro hizmetler, birden çok ve bağımsız olarak çalışan “hizmet” kullanılarak oluşturulmuş bir uygulamayı ifade eder. Bu hizmetler birbirleriyle API aracılığıyla iletişim kurar. Bu, sadece bir büyük, karmaşık uygulamanın olduğu daha geleneksel “monolith” mimari girişimlerinin kullandıklarıyla çelişir.
Şirketler neden mikro hizmet mimarisini sever?
Büyük “tek parça” uygulamalarla uğraşmak zorunda kalmamak, mikro hizmet mimarisinin bariz bir avantajı gibi görünüyor. Ek olarak, mikro hizmetlerin birkaç özel faydası şunlardır:
- Hızlandırılmış ölçeklenebilirlik ve hız – Mikro hizmetleri, çevik metodolojinin mimari bileşeni olarak düşünebilirsiniz. Bireysel hizmetler, diğer hizmetlerden tamamen bağımsız olarak oluşturulabilir, test edilebilir ve dağıtılabilir, bu da daha verimli kaynak kullanımına olanak tanır. Agile ile birleştirilmiş mikro hizmetler, ekiplerin gerçek zamanlı olarak pazar gereksinimlerine yanıt veren uygulama yetenekleri oluşturmasına da olanak tanır.
- Güvenlik – Veri güvenliği konusunda farkındalığın arttığı çağımızda bu çok önemlidir. Her mikro hizmet yalnızca kendi özel iş işleviyle ilgili verileri içerir. Bu, bir ihlal durumunda verilerin eksiksiz ifşa olma olasılığını en aza indirir.
- Esneklik – Bir mikro hizmet düzgün çalışmıyorsa, uygulamayı çalıştırmak yine de mümkün olabilir. Bu, küçük bir sorunla başa çıkmak için tüm bir uygulamayı çevrimdışına alma olasılığını azaltır.
- Yeniden Kullanım – Yeni bir özellik oluştururken mutlaka sıfırdan başlamanız gerekmez. Neyin işe yarayıp neyin yaramadığı bilgisiyle yerleşik bir temelden değişiklik yapmak çok daha kolaydır.
Mikro hizmetlerin dezavantajları
Mikro hizmetlerle başarı yakaladıkları söylenen şirketler arasında Google, Amazon ve Netflix gibi sözde teknoloji devleri veya Uber ve Airbnb gibi nispeten yeni şirketler yer alıyor. Bu kuruluşların hiçbirinin yeni başlayanlar olmadığını (Airbnb hariç tümü halka açık olarak işlem görmektedir) ve hepsinin milyarlarca dolarlık gelirleri olduğunu unutmamak önemlidir. Ayrıca ilk gün mikro hizmet mimarisini kullanmıyorlardı.
Bir şirketin ilk aşamalarında bir mikro hizmet mimarisi kullanmanın bazı dezavantajları vardır. Başlangıç veya küçük işletmenizin mikro hizmetler mimarisine hazır olup olmadığını belirlerken göz önünde bulundurmanız gereken beş nokta şunlardır:
- Uygulamalarınızın karmaşıklığı
Bir noktada Google sadece basit bir arama motoruydu, Amazon bir çevrimiçi kitap satıcısı ve Netflix bir DVD kiralama hizmetiydi. Bu kuruluşların temel monolitik mimariyi bırakması ölçeklendirmeye karar verene kadar değildi. Mikro hizmet mimarisi, basit uygulamalara karmaşıklık eklemek değil, karmaşık uygulamaları basitleştirmek içindir. Uygulamalarınız basit monolitler olarak verimli bir şekilde çalışıyorsa, yaptığınız şeyi gerçekten değiştirmenize gerek yoktur.
- Teknik ekibinizin büyüklüğü
Uygulamaları birden çok hizmete bölmek, hepsini yönetmek için yeterince büyük bir kadroya sahip olmanızı gerektirecektir. Ayrıca, bireysel hizmetlerin aynı programlama dilinde yazılması gerekmediğini de unutmayın (bazı insanlar bunu bir avantaj olarak görse de), bu nedenle birden çok kodlama dilinde de yetkin olan büyük bir mühendislik ekibine ihtiyacınız olacak.
- Teknik ekip üyelerinin iletişim becerileri
Düşündüğünüzün aksine, mikro hizmetleri başarıyla uygulamak, tüm mühendislik ekipleri arasında aktif iletişim gerektirir. Monolit uygulamalarla çoğu mühendis, kod tabanıyla aynı düzeyde aşinalığa sahiptir ve kod tabanının çoğu parçası üzerinde çalışmak için çekilebilir. Bu, daha dağıtılmış bir mimari için mutlaka doğru değildir. Bazı mühendislerin kendi özel hizmetleriyle ilgili olmayan sorunlar üzerinde çalışmaya istekli veya hatta mümkün olmayabilir. İletişimdeki bu tür bir kesinti, erken aşamadaki bir şirketin ihtiyaç duyduğu şey değildir.
- Daha fazla araç ve platformu yönetmek için kaynaklar ve bütçe
Bir mikro hizmet mimarisi uygulamak için birden çok yazılım uygulamasına ve araca ihtiyacınız olacak. En azından Docker gibi bir konteyner aracına ve Kubernetes gibi bir düzenleme platformuna ihtiyacınız olacak. Ayrıca muhtemelen yönetim, izleme ve test araçlarına ihtiyacınız olacak. Bu büyük bir finansal yatırım olacak, bu yüzden bu değişikliği yapmanın gerçekten çabaya değeceğinden emin olmalısınız.
- Eski uygulamalarınızın durumu
Eski kod tabanlarını tamamen hurdaya çıkarmaya karar vermeden önce, kaynaklar açısından gerçekten mantıklı olduğundan emin olun. Eski bir veritabanı ile iletişim kuruyorsa, bunu değiştirecek kaynaklarınız var mı? Veya birkaç yıl içinde aşamalı olarak aşamalı olarak kaldırmak için bir planınız varsa, belki de şimdilik onu yalnız bırakmak en iyisidir.
Bazı son düşünceler
Bunların hiçbiri, başlangıç ortamında mikro hizmetlerin kullanımının her zaman kötü bir fikir olduğunu söylemek değildir. Soru, mikro hizmetlerin if yerine ne zaman kullanılacağıdır. Bunun cevabı, şirketinizin büyümesinin neresinde olduğuna bağlıdır. Hala ürün pazarına uygunluk arıyorsanız veya müşteri tabanınızı oluşturmaya çalışıyorsanız, muhtemelen mimarinizde önemli değişiklikler yapmanın zamanı değildir.
Ancak, uygulamalarınızı değiştirmenin karmaşık hale geldiği bir noktaya ölçekleme yapıyorsanız, bir mikro hizmet mimarisine geçmek, gerçekten dikkate almak isteyeceğiniz bir şey olabilir.