Sunucusuz Mikro Hizmetlere Karşı – İşletmeler Hangi Mimariyi Seçmeli?
Yayınlanan: 2022-05-31Her işletme için teknoloji kullanımı, organizasyonu rakiplerinden farklı kılan temel unsurlardan biridir. Bu nedenle, kuruluşların yeni teknolojilere dayalı olarak yükseltme yapmaları zorunlu hale geliyor.
Bununla birlikte, kuruluşun gelecekteki teknoloji esnekliği ile mevcut teknoloji yatırımlarının getirisi arasındaki dengeyi bulmasını sağlamak da aynı derecede önemlidir. Kapsamlı hazırlık ve yükseltme sürecinde yer alan bütünlüklerin bilgisi, bu dikkate alınırken tartılmalıdır.
Teknoloji hızlı bir şekilde ilerliyor ve dolayısıyla kolayca ölçeklenebilen ve sürekli teslimatla daha iyi performans gösterecek kadar çevik uygulamalara duyulan ihtiyaç da artıyor. Bu tür gelişen gereksinimler, mikro hizmetler ve sunucusuz bilgi işlem gibi teknolojilerin ortaya çıkmasına neden oldu.
Burada, merak uyandıran bir soruyu gündeme getiren iki mimariden bahsediliyor: Sunucusuz ve mikro hizmetler gibi iş ihtiyaçlarımıza hangi mimari uyuyor. Bazen biri diğerinden daha uygundur. Her iki teknoloji de farklı yaklaşımlar benimserken, güvenlik her iki mimari için de öncelik olmaya devam ediyor.
İkisi arasındaki farkı anlamak için sunucusuz mimarinin ve mikro hizmet mimarisinin ne olduğunu anlamak önemlidir.
Mikroservis nedir?
Mikro hizmet, uygulamayı daha küçük uygulamalara veya hizmetlere ayırmanın mimari modelidir , dolayısıyla adıdır. Bu, tek bir varlığın tüm işlevselliği içerdiği monolitik mimarinin tam tersidir.
Daha iyi anlamak için bir e-ticaret uygulaması örneğini ele alalım. Kullanıcı ürünü/ürünleri arar, sepete ekler ve siparişini verir. Bağımsız olarak çalışan ve Uygulama Programlama Arayüzü (API) aracılığıyla bir araya getirilen birden çok hizmet vardır . Ürün, alışveriş sepeti ve ödeme ağ geçidi aracılığıyla ödeme gibi hizmetler mikro hizmetlerdir.
Mikro hizmetlerin uygulanabileceği birçok yol vardır. Bağımsız olarak çalışması için her mikro hizmet temel öğeleri içerir - kendi veritabanı, kitaplıkları ve şablonları. Temel olarak, kullanıcının yeni uygulamalar oluşturma avantajını elde ettiği ve çeşitli uygulamaları bağımsız olarak çalıştırabildiği SOA (Hizmet Odaklı Mimari) kurallarına uyar .
DevOps, uygulamanın tüm işlevlerini, uygulamanın işlevselliğini korurken bağımsız olarak çalışan daha küçük uygulamalara/hizmetlere böler. Bu mikro hizmet uygulamaları, dağıtılmadan önce işlevleri için ayrı ayrı geliştirilir ve test edilir.
Böyle bir mimari çerçeve avantajlıdır, çünkü bir mikro hizmet bozulsa veya bakıma girse bile, diğer hizmetleri ve dolayısıyla genel işlevselliği etkilemeden onu düzeltmek daha kolaydır.
Mikro Hizmet Türleri
- Durum Bilgisiz Mikro Hizmetler
Bu tür bir mikro hizmet, mevcut verileri saklamaz. Her kullanım anında yeni bir arayüz oluşturulur ve veriler hiçbir zaman korunmadığı için her seferinde verilerin eklenmesi gerekir.
- Durum Bilgili Mikro Hizmetler
Bu tür mikro hizmet, veritabanında her zaman kullanıcının verimli bir şekilde kodlamasını kolaylaştıran bir kayıt tutar. Bu tür bilgiler, RDBMS, noSQL veritabanı vb. gibi veri deposunda harici olarak saklanmalıdır.
[Ayrıca Okuyun: Mikro Servisler ve Monolitik Mimari: Yeni Başlayanlar İçin Hangisi Doğru? ]
Sunucusuz Mimari nedir?
Sunucusuz mimari , uygulamanın kısmen veya tamamen bulut bilişim gibi üçüncü taraf bir sunucuda barındırıldığı yerdir . Bununla birlikte, terim, sunucu olmadığı konusunda yanıltıcıdır. Bunun yerine, kuruluşların fiziksel donanımı kendi yerlerinde harcama veya bakımını yapma konusunda endişelenmeleri gerekmediği anlamına gelir. Fiziksel altyapı, ağ, depolama vb. güvenilir bir üçüncü taraf tarafından yönetilir.
Özetle, geliştiricilerin yalnızca kodlamaya odaklanması gerekir. Güvenlik yamalarından yük dengelemeye, kapasite yönetimine, ölçeklendirmeye, günlüğe kaydetmeye ve izlemeye kadar her şey hizmet sağlayıcı tarafından halledilir. Popüler üçüncü taraf platformlardan bazıları AWS Lamba sunucusuz mimarisi, Microsoft Azure mimarisi ve Google Cloud'u içerir.
Sunucusuz mimari iki farklı perspektifte çalışır –
- Hizmet Olarak İşlev (FaaS)
Bu hizmet, kullanıcının bir avuç kaynak kullanımıyla ölçeklenebilir ve verimli olacak modüler bir mimari oluşturmasını sağlar. FaaS'ın en iyi örneği Cloudflare Workers'dır.
- Hizmet Olarak Arka Uç (BaaS)
Bu hizmet temel olarak cep telefonları ve web için uygulamalar oluşturmak için kullanılır. Üçüncü taraf hizmetlerin kullanımı, kullanıcıların uygulamanın ön ucuna odaklanmasını sağlar. BaaS'ın en iyi örneği AWS Lambda'dır.
Anlama kolaylığı için, sunucusuz altyapının ve mikro hizmet altyapısının ne olduğunu öğrenmek için aşağıdaki tabloya bakın.
MİKROHİZMETLER | SUNUCUSIZ |
---|---|
Küçük bağımsız işlevsel uygulamalar geliştirildi | Kodu herhangi bir yerde yürütmek için bir ortam sunar |
Bu SOA (Servis Odaklı Mimari) | Bu bir bulut bilişim modelidir |
Mikro hizmet, bulut tabanlı bir ortamda teknolojiye sahiptir | Sunucusuz işlevler, mikro hizmetleri barındırmanın tek yoludur |
Bir uygulama oluşturmak için bir tekniktir | Sunucusuz mimaride uygulamaları çalıştırabilirsiniz. |
olgun mimari | Daha az olgun |
Birden fazla çözüm yönetilebilir | Günlükleri izlemek ve yönetmek zor |
Birincil fark şudur: mikro hizmetler bir uygulama tasarlama tekniğidir, sunucusuz ise uygulamayı kısmen veya tamamen çalıştıran mimaridir. Mikro hizmetler sunucusuz mimaride barındırılabilir.
İdeal olarak, kuruluş otomatik ölçeklendirmeye ve daha düşük çalıştırma zamanı maliyetlerine ihtiyaç duyduğunda sunucusuz işlevleri tercih etmeli ve kuruluş, esneklik ararken ve modern mimariye geçmek istediğinde mikro hizmet mimarisini tercih etmelidir.
Sunucusuz ve Mikro Hizmetler için Gerekli Roller ve Kaynaklar
Yukarıda bahsedildiği gibi, mikro hizmetler, bireysel olarak çalışırken daha büyük bir uygulama oluşturmak için entegre olan daha küçük uygulamalardır. Bu mimariyle bir uygulama oluşturmak için, tüm mikro hizmetlerin oluşturulması gerektiğini ve API'ler aracılığıyla birbirleriyle nasıl etkileşime gireceklerini bilmek için planlama aşaması eksiksiz olmalıdır. Deneyimli bir yazılım mimarı bu rolü verimli bir şekilde yönetebilir.
Uygulamaları geliştirmek için, mikro hizmet mimarisini net bir şekilde anlayan bir geliştirici ve test ekibine sahip olmanız gerekir. Mikro hizmetler dile özgü değildir ve herhangi bir yazılım dilinde oluşturulabilir. Bununla birlikte, en sık kullanılan teknolojiler JS/TypeScript, Java, .NET ve Python'dur . Küçük, çapraz işlevli geliştirici ekipleri birlikte daha iyi çalışır.
Geliştirme sürecinde mikro hizmetlerin maliyetinin daha yüksek olduğu ancak uzun vadede daha ucuz olduğu fark edilmiştir. Mikro hizmetlerden biri kapalı olsa bile uygulama normal şekilde çalışmaya devam ettiği için bakım maliyetleri de daha düşüktür. Daha küçük uygulamalar yalnızca hataları gidermek için daha az zaman almaz, aynı zamanda bakımı daha kolay ve daha ucuzdur.
Sunucusuz uygulama mimarisini uygulamak için AWS Lambda, Microsoft Azure Functions, Google Cloud Functions ve Cloudflare Workers gibi iyi bir servis sağlayıcı bulmanız gerekir. Ayrıca, tüm işlevleri ve tetikleyicilerini yazmak için FaaS ve BaaS arasında seçim yapmanız gerekir.
Geliştirme ekibinin, seçtiğiniz hizmet sağlayıcıyla çalışma konusunda güçlü bir geçmişe sahip olması gerekir. Geliştirici, JavaScript veya Python becerileri konusunda tamamen usta olmalıdır .
Bir uygulamayı veya bir bölümünü uzaktaki bir sunucuda barındırmak nispeten daha ucuzdur, dolayısıyla geliştirme maliyeti de daha düşüktür. Ayrıca, uygulama hemen başlatılabilir.
Sunucusuz ve Mikro Hizmetleri Birleştirme
Kuruluş, yukarıda belirtildiği gibi ihtiyaçlarına göre sunucusuz ve mikro hizmetler arasında seçim yapabilir. Bununla birlikte, geliştirme ekibi, üçüncü tarafların altyapısında depolanabilen bir dizi olaya dayalı işlev olarak mikro hizmetleri gerçekten geliştirebilir.
Geliştirme ekibi, aşağıda belirtilen yaklaşımı izleyerek boşluğu kapatabilir ve mikro hizmet mimarisi ile sunucusuz mimariyi birleştirebilir.
- Bir mikro hizmetin sunucusuz olması için olayla tetiklenmesi gerekir. Mikro hizmetler, bir işlev olarak çalışabilmeleri için belirli koşullara ve kullanıcı eylemlerine yanıt vermelidir.
- Logic Apps (Microsoft) veya Step Functions ( Amazon) kullanımıyla, mikro hizmetlere tetikleyiciler atanabilir ve çeşitli işlevler bir hizmette birleştirilebilir. Bu, onları bir araya getirme fizibilitesini arttırır.
- Sunucusuz işlev geliştirme, büyük ölçüde bulut depolama ve bilgi işleme bağlıdır. Bu nedenle sunucusuz mimariden belirli ilkeleri uygulayabilmeniz için bulut altyapısına geçmek önemlidir.
Gerçek Dünya Örnekleri
Yukarıdaki farklılıklara ve mimari yaklaşımlara dayanarak, şimdi işletmeniz için doğru mimariyi seçmenize daha fazla yardımcı olabilecek her iki mimarinin gerçek dünyadaki bazı örneklerini inceleyelim .
Mikro hizmet mimarisi gerçek dünyadan örnekler
1. Netflix – Netflix, sunucu bakımı, güvenilirliği ve program önerileri için algoritmalar için kullanılan mikro hizmetleri bulut bilişim veya sunucusuz mikro hizmetleri benimseyen ilk kuruluşlardan biridir.
2. Amazon – Üstel büyümeyle birlikte birden fazla hizmet sunuldu. Ancak, başlangıçta şirket pahalı olan monolitik mimariyi takip ediyordu. Şirket daha sonra uygulamayı mikro hizmetler olarak yeniden oluşturdu.
3. Uber – Tüm iş süreçleri, yolcu yönetimi, faturalandırma, bildirimler ve daha pek çok mikro hizmet mimarisi aracılığıyla yönetilir.
Sunucusuz mimari gerçek dünyadan örnekler
1. Nordstorm – Alışveriş sitesi, sunucusuz mimariye dayalı kendi çerçevesini oluşturdu. Web siteleri, olay tabanlı bir uygulama oluşturmak ve daha fazla özellik eklemek için sunucusuz kullandı.
2. Codepen – Ön uç geliştiriciler ve tasarımcılar için, gerisini sunucusuz olarak tek kişilik bir DevOps ekibi tarafından çalıştırılan bir web sitesi oluşturmaya yardımcı olan bir sosyal geliştirme platformudur.
3. Figma – Sunucusuz mimarinin yardımıyla kullanıcılar tek bir tasarım üzerinde işbirliği yapabilirken geliştiriciler dosya yönetimi yerine projelerine odaklanabilir.
Appinventiv, Sunucusuz ve Mikro Hizmetler arasında doğru kararların alınmasına nasıl yardımcı olabilir?
Appinventiv olarak dijital dönüşüm hizmetlerindeki uzmanlığımızla, boyutu ne olursa olsun üstlendiğimiz her projede mükemmellik için çalışıyoruz. Kuruluşların öngörülen zaman çizelgeleri ve maliyetler dahilinde iş hedeflerine ulaşmalarına yardımcı oluyoruz.
Örneğin, ABD merkezli en büyük telekom şirketlerinden biri için müşteri odaklı bir veri analizi platformunu başarıyla oluşturduk. İş Zekasından yararlanarak , şirketin her departmanına gerçek zamanlı olarak %100 veri kullanılabilirliği sağlayabiliriz.
Sınıfının en iyisi bulut bilişim hizmetlerimizle ürününüz için faydalı olacak doğru mimariyi seçmenize veya her ikisini de iş ihtiyaçlarınıza en uygun en verimli entegrasyon çözümüyle uyumlu hale getirmenize yardımcı olabiliriz.
İş hedeflerinize ulaşmanıza yardımcı olmak için sizinle nasıl ortak olabileceğimizi öğrenmek için uzmanlarımızla konuşun .
Önemli Çıkarımlar
Sunucusuz ve Mikro Hizmetler, her iki teknoloji de farklı yaklaşımlar izleyerek yapısal olarak benzerdir. Monolitik mimariye kıyasla, hem sunucusuz hem de mikro hizmetler ölçeklenebilirliğe, esnekliğe, maliyet etkinliğine ve yeni özellikler ekleme kolaylığına öncelik verir. Mikro hizmetlerin odak noktası, her hizmet kendi içinde bir uygulama olarak çalıştığı için uzun vadeli ölçeklenebilirliktir.
Şirketin ürün kapsamına ve önceliklerine göre iki yaklaşım arasında seçim yapılabilir. Sürekli ölçeklendirme gerektiren büyük bir platform oluşturmayı planlıyorsanız, mikro hizmetler size uzun vadeli çözümler için sunucusuz mikro hizmetler sağlayacaktır. Uygun maliyetli ve hızlı bir başlatma arıyorsanız sunucusuz mimari iyi bir seçimdir.
SSS
S. Sunucusuz ve mikro hizmetler birlikte çalışabilir mi?
A. Mimarilerden birini seçmek gerekli değildir. Bazı uygulamalar, iki mimari bir araya getirildiğinde en iyisini sunar. Mikro hizmetler ve sunucusuz, belirli güçlü ve zayıf yönleriyle birbirini bütünleştirir ve tamamlar. Mikro hizmetler, sunucusuz uygulama mimarisinin bir parçası olarak dağıtılabilir.
S. Mikro hizmet mimarisini ne zaman kullanmamalısınız?
A. Mikro hizmet mimarisi şu durumlarda kullanılmamalıdır:
- Tanımlanan alan belirsiz veya belirsiz
- Geliştirilmiş verimlilik garanti edilmez
- Uygulama boyutu çok küçük
S. Mikro hizmet mimarisini ne zaman kullanmalısınız?
C. Mikro hizmetler, ön maliyetleri karşılayabilecek büyük uygulamaların geliştirilmesi gerektiğinde kullanışlıdır. Küçük ve hafif uygulamalar monolitik mimari olarak korunabilir.
- Büyütmesi veya küçültmesi gereken uygulamalar
- Yeni işlevler eklemek düzenli bir gerekliliktir
- Büyük veri uygulamalarında
- Eski uygulamaları yeniden yazma
- Birden fazla yazılımdan bazı bileşenlerin yeniden kullanılması gerekiyor