Mikro Servis Mimarisi ve Günümüz Modern Uygulamalarına Sağladığı Çözümler

Mikro servisler, iyi dizayn edilmiş ara birimler ve işlemlerle tek işlevli modüller oluşturmaya odaklanan yazılım sistemleri geliştirmenin yenilikçi bir yöntemidir.

Organizasyonlar daha çevik olmaya, DevOps’a ve sürekli testlere doğru ilerledikçe, trend son yıllarda daha da popüler hale geldi.

Mikro servislerin Agile ve DevOps ekipleri için pek çok avantajı var. Netflix, Amazon, Twitter ve diğer teknoloji yıldızlarının tümü monolitik yapılardan mikro servis mimarisine evrildi.

Mikro servislerin aksine, monolitik bir uygulama tek, otonom bir birim olarak oluşturulmuştur. Bu, tüm sistemi etkilediği için uygulamadaki değişiklikleri yavaşlatır. Küçük bir kod bölümünde yapılan bir değişiklik, tamamen yeni bir yazılım sürümü oluşturmayı ve dağıtmayı gerektirebilir. Bir uygulamanın belirli işlevlerini ölçeklemek, aynı zamanda tüm uygulamayı ölçeklendirmeniz gerektiği anlamına gelir.

Mikro servisler, monolitik sistemlerin zorluklarını olabildiğince modüler olarak çözer.

En basit şekliyle, her biri kendi sürecinde çalışan ve bağımsız olarak dağıtılabilen küçük servis paketi olarak bir uygulama oluşturmaya yardımcı olurlar. Bu servisler farklı programlama dillerinde yazılabilir ve farklı veri depolama teknikleri kullanabilir. Bu, ölçeklenebilir ve esnek sistemlerin geliştirilmesine neden olurken, dinamik bir yenilenmeye ihtiyaç duyar.

Mikro servisler genellikle API’ler aracılığıyla birbirine bağlanır ve RESTful ve web servis ekosisteminde büyüyen aynı araçların ve çözümlerin çoğundan yararlanabilir.

Mikro servis mimarisinin faydaları

  1. Maliyetlerin Azalması: Mikro Servis Mimarisi tasarım, implementasyon ve operasyonel bakım hizmetlerini azaltmaktadır.
  2. Daha kolay Devreye alma: Diğer servisler etkilenmeden parçalar halinde devreye alabilme.
  3. Daha Anlaşılır: Fonksiyon/metot izole edildiğinden daha kolay ve az kod okuması sağlanır.
  4. Yeniden Kullanılabilirlik: İşletme genelinde ödeme(payment) veya oturum açma sistemleri(login) gibi küçük servisleri paylaşın.
  5. Daha hızlı Problem Çözümü: Test aşamasında veya canlı ortamda fark edilen problemler mikro servis mimarisi le daha kolay izole edilebilir.
  6. Minimize Edilmiş Değişim Riski: Teknoloji veya programlama dilinden bağımsız hızlıca değiklik yapabilme imkanı.
  7. Canlıya geçiş hızında artış: Mikro servis mimarisi tasarımdan canlıya geçişe kadar olan süreyi hızlandırmaktadır.
  8. Dayanıklılık: Mikro servis mimarisinin sağladığı dağıtık yapı ve ölçeklenebilirlik sistem üzerinde oluşan yüklere karşı dayanıklılığını artırmaktadır.
  9. İzlenebilirlik: Mikro servis mimarisi ile servisler ve altyapı üzerinde daha kolay ve şeffaf izlenebilirlik sağlamaktadır.

Mikro servis mimarisinin temel aldığı ilkeler

  • Basit ve Kolay Yönlendirme — Simple Routing
  • İş Odaklı Tasarım — Built For Business
  • Esneklik — Flexibility
  • Dayanıklılık — Resiliency
  • Ölçeklenebilirlik — Scalability
  • Kullanılabilirlik — Availability
  • Bağımsız— Independent
  • Dağıtık yönetişim — Decentralized governance
  • Hata İzalasyonu — Failure isolation
  • Otonom ve minimum konfigurasyon — Auto-Provisioning
  • Sürekli Teslimat — CI/CD DevOps

Yukarıda bahsedilen ilklere göre bir tasarım, çözüm kümesi oluşturmak ve canlıya geçirilirken bir çok zorlukla ve sorunlarla karşılaşılabilir. Bu sorunlar aslında genelde yaşanılan problemlerdir ve doğru seçilmiş — uygulanmış tasarım desenleri ile ortadan kaldırılabilir. Mikro servis mimarisinde tasarım desenlerini 5 kategoride değerlendirebiliriz.

Bir sonraki bölümde Decompositon desenlerinden bahsetmeye çalışacağım.

Bir sonraki bölüm: Decompositon desenleri hakkındaki yazım için tıklayın.