Microservice Mimarilerine Giriş

Monolith Application Nedir?

  • Birkaç ayda bir yeni release veya versiyon çıkarılan,
  • Çok çeşitli modül ve işlevselliğe sahip olan,
  • 50 den fazla ekiple çalışan,
  • Hata ayıklama problemlerinin büyük bir zorlukta olduğu,
  • Yeni bir teknoloji veya yeni bir sürüme yükseltmenin zor olduğu bir projede çalışmışsınızdır.

Bu ve buna benzer durumlar monolith bir projenin tipik özellikleridir.

Monolith Uygulama;

  • Büyük boyutta uygulama
  • Uzun süreli döngüler
  • Büyük takımlar gibi etkenlerle karakterize edilir.

Tipik zorlukları şunlardır:

  • Ölçeklenebilirlik zorlukları
  • Yeni tknlojiye geçme sorunları
  • Otomasyon test zorlukları
  • Cihaz patlamasına uyarlama

Microservices

Microservice mimarileri , Monolith mimarileri ile ölçeklenebilirlik ve yenilikçi zorluklara bir çözüm olarak gelişti.

Microservice Mimarisi Temel Yapısı

Monolith bir proje aşağıdaki gibi görünürdü, tek bir uygulama , büyük bir veritabanı:

Screenshot_1

Aşağıda, Microservices Mimarisi kullanılarak uygulama  geliştirildiğinde aynı uygulamanın nasıl göründüğünü göstermektedir.

Screenshot_2

 

Microservice Mimarileri, mesajlarla etkileşim içinde olan çok sayıda küçük, iyi tasarlanmış, bileşenler içerir.

Screenshot_3

Microservislerin Avantajları

  • Yeni teknolji uayarlamaları daha kolay hale geliyor.
  • Yeni versiyon ve release çıkarma işlemleri kolaylaşıyor.
  • Bulutla ölçeklendirmeyi kolay hale getiriyor.

Mikroservisler kolay gibi görünse de bazı zorlukları bulunmaktadır. Bazı zorlukları inceleyelim:

  • Hızlı Kurulum gerekli: Her bir mikro hizmeti ayarlamak için bir ay harcayamazsınız. Hızlı bir şekilde mikro hizmetler oluşturabilmelisiniz.
  • Otomasyon: Tek parça yerine birkaç küçük parça olduğundan, her şeyi otomatikleştirmeniz gerekir – Yapılar, Dağıtım, İzleme vb.
  • Görünürlük: Dağıtım ve bakımını yapmak için birkaç küçük bileşene sahipsiniz. Belki 100 veya belki 1000 bileşen. Sorunları otomatik olarak izleyebilmeli ve tanımlayabilmelisiniz. Tüm bileşenlerin etrafında mükemmel görünürlük gerekir.
  • Sınırlı Bağlam: Bir mikro hizmetin sınırlarını belirlemek kolay bir iş değildir. Domain Drive Design’dan Sınırlı Bağlamlar iyi bir başlangıç ​​noktasıdır. Etki alanını anlamanız belirli bir süre içinde gelişir. Mikro hizmet sınırlarının gelişmesini sağlamalısınız.
  • Yapılandırma Yönetimi: Ortamlarda yüzlerce bileşen için yapılandırmaları korumanız gerekir. Bir Yapılandırma Yönetimi çözümüne ihtiyacınız olacak
  • Dinamik Ölçek Yukarı ve Ölçek Aşağı: Mikro hizmetlerin avantajları, yalnızca uygulamalarınız bulutta kolayca yukarı ve aşağı ölçeklenebiliyorsa gerçekleşecektir.
  • Kart Paketi: Çağrı zincirinin altındaki bir mikro servis başarısız olursa, diğer tüm mikro servisler üzerinde etki yaratabilir. Mikro hizmetler Tasarım tarafından hataya dayanıklı olmalıdır.
  • Hata ayıklama: Soruşturma gerektiren bir sorun olduğunda, farklı bileşenlerde birden çok hizmete bakmanız gerekebilir. Merkezileştirilmiş Günlük Kaydı ve Gösterge Tablosu, sorunların hata ayıklamasını kolaylaştırmak için çok önemlidir.
  • Tutarlılık: Aynı sorunu çözen çok çeşitli araçlara sahip olamazsınız. İnovasyonu teşvik etmek önemli olmakla birlikte, ayrıca mikro hizmetleri uygulamak / yaymak / izlemek için kullanılan diller, platformlar, teknoloji ve araçlar etrafında merkezi olmayan bir yönetişime sahip olmak da önemlidir.

Mikro Hizmet Mimarileri ile Karşılaşılan Sorunlara Çözümler

Spring Boot

Bize aşağıdaki özellikleri sağlar:

  • gömülü sunucular (kaplarla kolay dağıtım)
  • metrikler (izleme)
  • sağlık kontrolü (izleme)
  • harici yapılandırma

Spring Cloud

Spring Cloud, bulutlara mikro hizmetlerinizi etkinleştiren çözümler sunar. Netflix (Netflix OSS) tarafından sağlanan bazı Cloud çözümlerinden yararlanır ve geliştirir.

Önemli Spring Cloud Modulleri:

Dinamik olarak ölçek yukarı ve aşağı şekilde değiştirme duurmlarını birlikte kullanabilme:

  • Naming Server (Eureka)
  • Ribbon (Client Side Load Balancing)
  • Feign (Easier REST Clients)

Görünürlük ve izleme:

  • Zipkin Distributed Tracing
  • Netflix API Gateway

Yapılandırma Yönetimi:

  • Spring Cloud Config Server

Hata Toleransı:

  • Hystrix
Erman Ağ Geliştirici on 24 Şubat 2019 yazdı
Yorum Ekle
  • 0 Yanıt(lar)
  • Yanıtınız

    Cevabınızı göndererek Gizlilik Politikası ve Hizmet Şartlarını kabul ediyorsunuz.