Mikro Hizmetlerin Faydaları Nelerdir ve İşletmeniz İçin Ödeme Yapacaklar mı?
Yayınlanan: 2022-01-12Bir yazılım uygulamasını bir dizi küçük hizmet olarak tasarlamaya yönelik bir yaklaşım olan mikro hizmetler kavramı, en az 2015'ten beri kullanılmaktadır. Bileşenlerin bağımsız konuşlandırılabilirliği ve ölçeklenebilirliği gibi faydalar sağlayan mikro hizmetler, günümüzde çok revaçta. Bunun nedeni, bu mikro hizmet avantajlarının inanılmaz derecede daha hızlı yazılım geliştirme hızlarına dönüşmesidir. Tüketicilerin tercihlerini ve davranışlarını hızlı bir şekilde değiştirmesiyle, mikro hizmetleri benimseyenler ayak uydurabiliyor. Hayat şimdi harika, derler. Yakın tarihli bir IMB anketine katılan şirketlerin %56 kadarı, önümüzdeki 24 ay içinde bir mikro hizmet yaklaşımını benimsemeyi planlıyor.
Mevcut kullanıcıların neredeyse %80'i, işletmelerinin mikro hizmetlere yatırımlarını artıracağını söylüyor. Mikro hizmet avantajları Netflix, Amazon, eBay, Twitter ve diğer birçok teknoloji devini monolitik mimariden mikro hizmet mimarisine geçmeye teşvik etti. Ancak şirketiniz mikro hizmetleri kullanmalı mı? Bu, bağlama ve mikro hizmetlerin artılarının uygulamanızın eksilerinden daha ağır basıp basmadığına bağlıdır. Bu blog, mikro hizmetlere karşı monolitik yaklaşıma ve bir mikro hizmet mimarisi kullanmanın beş temel avantajına genel bir bakış sunar. Ayrıca, ITRex'in bazı mikro hizmet deneyimlerini paylaşır ve işletmelerin mikro hizmetleri ne zaman kullanması (kullanmaması) gerektiğine ilişkin ipuçları sunar. Dalın.
Monolitik mimari ile mikro hizmet tanımı ve karşılaştırması
Mikro hizmet mimarisi nedir? Bir mikro hizmet stili, tek bir iş akışı etrafında tasarlanan ve birlikte çalışan küçük bileşenler veya hizmetler paketi olarak bulutta yerel yazılım uygulamaları geliştirmeye yönelik bir yaklaşımdır. Temel olarak, mikro hizmetler, geliştirme ve BT operasyon ekiplerinin daha hızlı teslim etmek için otomasyon araçlarını kullanarak birlikte yakın işbirliği içinde olduğu bir kültür olan DevOps'a temel bir geçişin parçasıdır.
Mikro hizmetler:
- otonom olarak geliştirilir,
- kendi veri tabanlarını kullanır ve farklı dillerde yazılabilir,
- HTTP, mesaj aracıları veya olay akışı gibi hafif protokollerle API'ler aracılığıyla iletişim kurun ve
- belirli bir iş işlevselliğini gerçekleştirmek.
Örneğin, mikro hizmet tabanlı bir e-ticaret uygulamasının ürün resimleri, kullanıcı profili yönetimi, arama, envanter doğrulama, ödeme işleme ve nakliyeden sorumlu bağımsız hizmetleri olabilir. Ön uç (web sitesinin müşteriye bakan tarafı), arka uçtan (işe bakan taraf) ayrılmıştır, böylece bunları ayrı ayrı özelleştirmek ve yönetmek mümkün olur. Bir Amazon örneğini ele alırsanız, bir mikro hizmet mimarisi korkutucu olmasa da bunaltıcı görünebilir.
Bununla birlikte, bir mikro hizmet mimarisi kullanmadan Amazon, dünyanın en değerli şirketlerinden biri haline gelemezdi (Aralık 2021 itibariyle 1,694 trilyon dolarlık bir piyasa değeri ile değerlendi). Mikro hizmetlerin avantajlarından yararlanma kararı, 2000'lerin başında, Amazon'un yavaş geliştirme ve kodlama sorunları nedeniyle müşteri tabanı büyüme hızında ölçeklenemediğini anladığı zaman alındı.
Netflix, 2000'li yılların sonlarında, büyük bir veritabanı bozulması nedeniyle müşterilere DVD'leri birkaç gün boyunca postalayamamasının ardından bulut tabanlı bir mikro hizmet mimarisinin avantajlarıyla uyandı. Netflix mühendisleri, uygulamalarını 700'den fazla mikro hizmete böldükten sonra, bugün günde binlerce kez kod dağıtabiliyor ve şirketin dünya çapında 200 milyondan fazla üyeye günde yaklaşık 250 milyon saat içerik akışı sağlamasına olanak tanıyor. Bu teknoloji yıldızları ve diğer birçok şirket, bulut öncesi günlerde hangi mimariyi kullanıyordu? Monolit kullandılar.
Monolitik mimari nedir?
Monolitik bir uygulama, istemci tarafı kullanıcı arabirimi, sunucu tarafı işlemleri ve bir veritabanı dahil olmak üzere tüm bileşenleri birleştiren tek bir birim olarak oluşturulmuştur. Tipik olarak, monolitik bir mimari:
- tüm işlevsellik için tek bir kod tabanına sahiptir,
- sıkıca bağlanmış ve
- merkezi verileri kullanır.
Monolitik bir yaklaşım kullanılarak geliştirilen bir e-ticaret uygulaması, tek bir birim olarak dağıtılan sıkı bir şekilde bağlanmış ön uç ve arka uç hizmetlerinden oluşacaktır; bu, herhangi bir özelleştirmenin kod tabanında ve ön uç platformunda değişiklik gerektireceği anlamına gelir (aşağıdaki şemaya bakın). karşılaştırmak).
Monolitik uygulamalar ölü olmaktan uzaktır. Aslında, hala iyi bir seçim olabilirler çünkü inşa etmeleri genellikle daha kolay ve daha ucuzdur (en azından ilk günlerinde). Ancak, dezavantajları ile birlikte gelirler. İster yükseltme ister ölçeklendirme amaçlı olsun, bir parçadaki değişiklik, genellikle tüm sistemin yeniden kurulmasını ve yeniden dağıtılmasını gerektirir.
Aynı şekilde, tüm sistem yanlış davranan bir parça tarafından çökertilebilir, bu da monolitlerin kırılgan olduğu anlamına gelir. Monolitlerin büyüdükçe bakımı da zordur ve üçüncü taraf araçlarla entegrasyon da hiç hoş değildir. İşletmelerin hayatta kalmak ve gelişmek için değişikliklere hızla tepki vermesi gereken günümüzün yıkıcı pazar ortamında bu dezavantajları göz ardı etmek zordur. Bu nedenle DevOps ekipleri tarafından oluşturulan mikro hizmetlerin faydaları hakkında vızıltı.
Mikro hizmetlerin 5 temel faydası
1. Bağımsız dağıtım
Bu, mikro hizmetlerin belki de en önemli avantajıdır, en azından mikro hizmetlerin ilk öncülerinden Sam Newman'a göre. Performansı artırmak veya ortaya çıkan kullanıcı ihtiyaçlarına yanıt olarak yeni bir özellik eklemek için bir uygulamada değişiklik yapmak, bağımsız mikro hizmetlerle çocuk oyuncağıdır. Her hizmet, tüm sisteme dokunmadan değiştirilebilir ve yükseltilebilir. Aşırı istekler nedeniyle bir özellik çok fazla yük altındaysa, birbirlerinden bağımsız olarak da ölçeklenebilirler. Örneğin, diğer hizmetler tarafından kaynak tüketimini artırmadan daha fazla ödeme alıyorsanız, yalnızca ödeme işleme hizmetinizi ölçeklendirebilirsiniz. Bu şekilde süreç daha az altyapı gerektirir ve maliyet tasarrufu sağlar.
2. Daha düşük patlama yarıçapı arızası
Bir mikro hizmet mimarisinin gevşek bağlantısı, mikro hizmetlerin başka bir avantajını da sağlar - daha iyi esneklik. Hizmetler arasındaki net sınırlar, mikro boyutlarıyla birleştiğinde yeni sürümlerin etkisini sınırlar ve hata izolasyonu sağlar. Bir hizmetteki arıza, ilgisiz işlevselliği ortadan kaldırmaz, sistemin geri kalanı bozulmadan kalır ve kullanıcılara hizmet sağlamaya devam eder.
3. Veri izolasyonu
Bu, doğru yapıldığında mikro hizmetlerin sağladığı üçüncü bir avantajdır. Bileşen başına veri egemenliği, mikro hizmetlerin temel bir özelliğidir. Bir mikro hizmet mimarisi, özellikle kuruluşun sağlık verileri düzenlemelerine veya GDPR'ye uyması gerekiyorsa kritik olan verilere dokunan hizmetleri net bir şekilde tanımlamayı mümkün kılar.
4. Doğru teknolojinin kullanımı
Monolitik uygulamalar tek bir kod tabanına sahip olduğundan, her işlevsellik için bir teknik yaklaşımı özelleştirmek zordur ve genellikle bir uzlaşma aranır. Buna karşılık mikro hizmetler, varsayılan olarak iş yetenekleri etrafında tasarlanır ve ekiplerin belirli bir işlevsellik için mevcut en iyi teknolojiyi seçmesine ve bundan en iyi şekilde yararlanmasına olanak tanır. Bunun nedeni, mikro hizmetlerin farklı bileşenler için farklı teknolojiler veya programlama dilleri kullanabilmesidir. Mikro hizmetler ayrıca en son teknolojiyi benimsemeyi veya gerektiğinde üçüncü taraf araçlarla entegre olmayı da basitleştirir. Satıcı kilitlemesinin olmaması, doğal olarak gevşek bağlı mimarisinden kaynaklanan başka bir mikro hizmet avantajıdır.
5. Verimlilik
Mikro hizmetler yaklaşımı, şirketlerin çevik bir şekilde çalışabilen bir hizmet veya bir dizi hizmet etrafında küçük, çapraz işlevli ekipler kurmasını sağlar. Bu model, bir ekibin işe başlamadan önce dağıtım veya test gibi görevlerini tamamlamasını beklemesi gerektiğinde el değiştirmeleri en aza indirir. Başka bir takıma bağımlı olmadan, geliştirme hızı hızlanır. 1.200 BT yöneticisi ve geliştiricisinden oluşan IMB anketine göre, benimseyenler mikro hizmetleri kullanmanın birçok avantajını bildiriyor. Hissettikleri en önemli mikro hizmet avantajları şunlardır: %30 — Daha yüksek müşteri memnuniyeti %29 — Şirket/müşteri verilerinin daha iyi güvenliği %29 — Daha hızlı pazara sunma süresi %28 — Geliştirilmiş uygulama performansı %27 — Kaynakları büyütmek veya büyütmek için daha fazla esneklik %26 düşüş — Artan çalışan verimliliği Mikro hizmetlerle ilgili herhangi bir zorluk var mı? Popüler bir alıntıya göre, mikro hizmetler bedava bir öğle yemeği değildir. Okumaya devam etmek.

Mikro hizmetlerin kötü yanı
1. Karmaşıklık
Mikro hizmetlerin doğal karmaşıklığı, hizmetlerin sayısıyla birlikte artar. Bu karmaşıklık çok yönlüdür ve aşağıdakilere atfedilir:
- Teknolojik ve operasyonel seviyelerde yukarıdan aşağıya kontrol imkansızdır
- Test etmek zordur ve asla çok fazla test otomasyonu olmayacak
- Ara iletişimleri uygulamak zordur, bu nedenle yetenekli geliştiricilere ihtiyaç vardır
- Günlüğe kaydedilen veri miktarı çok büyük, bu da tutarsızlığa neden olabilir
- Yeni sürümlerde uyumluluk sorunları ortaya çıkabilir
- Doğru miktarda kaynak sağlamada zorluklar var
2. Maliyetler
Mikro hizmetler, şirketlere para kazanmak için daha fazla seçenek sunar, ancak tasarruf etmez. Karmaşık bir mikro hizmet ortamı oluşturabilen geliştiricileri işe almanın maliyetinin yanı sıra, bulut ve API faturaları da vardır. İyi haber şu ki, mikro hizmetler isteğe bağlı kaynakları kullandıkça öde temelinde kullandığından, devam eden maliyetler önemli ölçüde optimize edilebilir.
3. Güvenlik riskleri
IBM anketine katılanların yarısı, mikro hizmetleri benimseme yolculuklarında karşılaştıkları en büyük zorluklar arasında güvenliği belirtti. Her mikro hizmetin, çeşitli altyapı seviyeleri aracılığıyla başkalarıyla iletişim kurmak için kendi giriş noktaları kümesi olduğundan, uygulamaların saldırılara daha fazla maruz kalmasına neden olduğundan, güvenliğin en baştan oluşturulması gerekir. Ayrıca, ölçeklendirme altyapısı, uygulama bileşenlerinin kontrolünü ve görünürlüğünü kaybetme riskini artırır.
Mikro hizmetleri ne zaman kullanmalı (kullanmamalı)
Ve son olarak, son sorumuz: mikro hizmet mimarisi ne zaman zahmete değer? Bulutta yerel uygulamalar için doğal bir uyum olarak mikro hizmetlerin arkasındaki vızıltıların tümü garantili olsa da, varsayılan tarzınız olmamalıdır. Literatür bunu basitçe ifade eder: bir monolit ile başlayın ve ölçeklenebilirlik veya kaynak tüketimi sorunlarıyla veya mikro hizmetler yolunu izlemeyi haklı çıkaran herhangi bir şeyle karşılaştığınızda onu bölün.
Mikro hizmetleri KULLANMAMAYACAĞINIZ ana ipuçlarımız şunlardır:
1. Eğer bir startup iseniz, mikro hizmetler kötü bir fikirdir. Monolitik bir uygulamayla başlamak ve iki pizza ekibi için çok zor hale geldiğinde onu daha küçük bileşenlere bölmek daha akıllıca olacaktır. İstediğiniz şey, müşteri değeri henüz doğrulanmamış bir ürün için karmaşık bir mimari oluşturmaya çok fazla zaman, emek ve para yatırmak yerine ucuz deneyler yapmaktır. Monolitler, müşterilerinize neyin değer katacağını hızlı bir şekilde öğrenmek için MVP'leri test etmenin (ve elden çıkarmanın) mükemmel bir yoludur. Bir başka saygın mikro hizmet gurusu Martin Fowler'ın dediği gibi: i) Neredeyse tüm başarılı mikro hizmet hikayeleri, çok büyük ve parçalanmış bir monolit ile başladı. ii) Sıfırdan bir mikro hizmet sistemi olarak oluşturulmuş bir sistem duyduğum hemen hemen tüm durumlarda, ciddi bir sorunla sonuçlandı. Not: Ürün etki alanı belirsizse, başlarken de mikro hizmetleri kullanmamalısınız. Karmaşık mimari kararlara atlamak için henüz çok erken olabilir ve iletişim kurma yaklaşımınız ve projeniz olgunlaştığında sınırların dışına çıkma ihtimaliniz yüksek olabilir.
2. Mikro hizmetler, karmaşık olmayan ve nispeten küçük bir ekip tarafından sürdürülebilen bir çözüm için mükemmel bir seçim değildir. Şirketinizin etkinlik planlama aracı için karmaşık bir mikro hizmet mimarisini kullanıma sunmak, geliştiricilerinizi gerçekten eğlendirebilir, ancak tüm bu zahmete değecek mi? Mikro hizmetler ilk sırada bir sorunu çözmek için tasarlanmıştır: karmaşıklık. Martin Fowler'ın belirttiği gibi, "tek parça olarak yönetilemeyecek kadar karmaşık bir sisteminiz yoksa mikro hizmetleri düşünmeyin bile."
3. Uygulamanız onları haklı çıkarmak için çok küçükse, mikro hizmetlere gitmeyin. Envanter yönetimi veya satın alma sistemlerinizin olması gerektiği gibi mükemmel bir şekilde yapıyorsa mikro hizmetlere dönüştürülmesi gerekiyor mu? Bir kez daha, mikro hizmetleri kullanma fikri, karmaşık bir uygulamayı bir dizi daha küçük hizmete bölmektir. Zaten küçük ve basit olan bir kodun ayrıştırılması, yalnızca karmaşıklık ekleme etkisine sahip olacaktır - şimdi tüm birimi eski moda bir şekilde dağıtmak yerine, tüm dağıtım, birlikte çalışabilirlik ve hata ayıklama sorunlarını çok sayıda yapıyla yönlendirmeniz gerekiyor.
Tamam o zaman, ama faydalarından yararlanmak için mikro hizmetleri ne zaman kullanmalı?
Mikro hizmetler, yukarıdaki ifadelerden herhangi biri yanlış olduğunda anlamlıdır. Başka bir deyişle:
- Ürününüz evcilleştirilmesi gereken karmaşık bir şeye dönüştüğünde veya değişikliklere ayak uydurmak ve monolitik mimari darboğazları nedeniyle uygulanması imkansız olan önemli özellikler eklemek istediğinizde.
- Sıfırdan tanımlanmış bir kapsam ile büyük ve karmaşık bir ürün oluştururken. Bir şirket, net bir dizi özelliğe sahip büyük ölçekli bir çözüm oluşturmak için düzinelerce geliştiriciyi organize etmek istediğinde, her biri tek bir bileşenden sorumlu olan küçük, çapraz işlevli ekipler kurmayı düşünmelidir. Bu şekilde her ekip, API yönetimini, veri boru hatlarını, şemaları ve diğer yetenekleri yöneten özel kişilerle bağımsız olarak çalışabilir.
ITRex portföyünden adil, gerçek hayattan bir örnek, müşterinin bir Hizmet Olarak Güvenlik platformuna dönüştürmek istediği kurum içi bir siber güvenlik aracı olabilir. Monolitik bir mimari, bir SaaS çözümünün artan sayıda müşteriye hizmet etmek için ihtiyaç duyduğu ölçeklenebilirliği veya gelişme ve bilgisayar korsanlarının önünde kalma esnekliği sağlayamadığından, mikro hizmetler bu proje için doğal bir uyumdu.
Bir başka açıklayıcı proje, küresel bir perakendeci için yapay zeka destekli büyük veri platformuydu. Müşterimiz, sıfırdan oluşturulmuş bir buluttan bağımsız çözüm istedi. Platformun tonlarca veriyi işleyebileceği ve gelecekte eklenecek yeni veri kaynaklarını karşılamak için ölçeklenebilir olarak tasarlanması gerektiği başından beri belliydi. Ayrıca birden fazla harici hizmetle iletişim kurma ihtiyacını da hesaba katmak zorunda kaldık. Dolayısıyla bu projede mikro hizmetlerin faydalarını gerçekleştirmek de doğal bir stratejiydi. Mikro hizmet mimarisi, mikro hizmetleri ve API'leri düzenlemek için Kubernetes'i kullanarak bu karmaşık sistemi sorunsuz bir şekilde kullanıma sunmamızı sağladı.
Ayrıca 3D kameralarla donatılmış yapay zeka destekli bir fitness aynası ve kullanıcının ekipmanına bağlı IoT sensörleriyle birlikte gelen bir ML modeli vardı. Bir yönetici paneli, bir Android uygulaması ve bir kural yönetim sistemi dahil olmak üzere ana bileşenleri, projenin farklı aşamalarında, her biri farklı bir kod ve mimari kullanan farklı ekipler tarafından oluşturulmuştur. Hepsinin üstesinden gelmenin karmaşıklığı bunaltıcı hale geldiğinde, merkezi yönetim için tek bir arka uç oluşturmamız gerektiğini anladık. Bunları mikro hizmetlere dönüştürdük, kodlarını yeniden tasarladık ve yeni veritabanları oluşturduk. Yinelenen kod veya işlevlerden kaçınmak gibi bir mikro hizmet yaklaşımı kullanmanın başka faydaları da vardı.
Bu nedenle, deneyimlerimize göre, büyüyen veri hacimlerini yönetmeniz, birlikte çalışma karmaşıklıklarını yönetmeniz veya sisteminizin işle birlikte gelişecek kadar esnek olmasını sağlamanız gerektiğinde mikro hizmetleri kullanmak tercih edilir.
son not
Şirketler pazarda avantaj elde etmek için mikro hizmet avantajlarını fark ettikçe mikro hizmet devrimi gelişiyor. Mikro hizmetlerin faydaları, kuruluşların yeni normal haline gelen aksaklıklar karşısında çevik ve çevik olmalarını sağlar. Daha iyi yazılımları daha hızlı dağıtabilmek, onları "sırada ne var"dan sonra gelen her şeye hazır hale getirir. Davayı takip etmeden önce, şirketiniz için hangi mikro hizmet avantajlarının sunulabileceğini ve bu zorluğun haklı olup olmayacağını bilmeniz önemlidir. Bunun dışında mikro hizmetler harikalar yaratabilir.
Şirketinizin mikro hizmetlerin avantajlarına düşmesi gerekiyorsa hala kafanız mı karıştı? ITRex danışmanları ile iletişime geçin. Anlamanıza yardımcı olacağız.
İlk olarak https://itrexgroup.com adresinde 10 Ocak 2022'de yayınlandı.
