Menü

İletişime geçin
Logo
Basın

Mikroservisler

Bağımlılıklar sizi yavaşlatmadan ayrıştırın.

Bağımsız geliştirme yardımcı olabilir, ancak çok sayıda dağıtık servis bunu zorlaştırabilir de. Anlamlı iş sınırlarını inceler ve iletişim, veri sorumluluğu, dağıtım ve işletim dahil olmak üzere uygun bir mimariyi hayata geçiririz.

Bir geliştirme ortamının birden fazla çalışma penceresi, temsili görsel
Hizmet ayrımı ve arayüzlerle domain modeli · OTOKO® tarafından planlama ve uygulama

OTOKO®'ya verdiğiniz görev

Sizin için üstlendiklerimiz.

İş birimi ve geliştirme ekibiyle birlikte kavramları, kuralları ve değişiklikleri inceleriz. Düzenli olarak birlikte uyarlanması gereken işlevler dikkatsizce ayrılmamalıdır. Modüler bir monolit, dağıtık işletimi devreye almadan net sınırlar oluşturabilir. Mikroservisler bağımsız ekiplerin, yük profillerinin veya dağıtım döngülerinin gerekçelendirilebilir bir fayda sağladığı yerlerde bir seçenek haline gelir. Karar, yalnızca bir eğilime göre bir mimari seçmek yerine, işletim sonuçlarıyla birlikte belgelenir.

Olası hizmet kapsamı

  • İş birimiyle birlikte Event Storming ve Bounded Context'lerle domain ayrımı
  • Helm, GitOps dağıtımı ve her ekip için ad alanlarıyla Kubernetes üzerinde platform
  • REST, gRPC veya mesajlar üzerinden hizmet iletişimi; şifreleme ve yönlendirme için Service Mesh ile
  • Dağıtık işlemler için Saga deseni ve Outbox ile her hizmet için ayrı veri tutma
  • Kayıt tutma, yapılandırma, gizli bilgiler ve hata toleransı için işletim kuralları

Somut kapsamı, sizin katkınızı ve kabul kriterlerini başlamadan önce belirleriz.

Anlaşılır teknik anlatım

Görevi şöyle hayata geçiriyoruz.

01

Dağıtık yapı, işlemleri (transaction) ve hataları değiştirir

Birden fazla servise yayılan bir işlemde ortak bir veritabanı işlemi (transaction) kendiliğinden bulunmaz. Durum geçişlerini, geçici tutarsızlığı ve telafi edici işlemleri biz planlarız. Bir outbox yöntemi, veri değişikliğini ve yayınlanacak olayı tutarlı şekilde birbirine bağlamaya yardımcı olabilir. Yeniden denemeler iş düzeyinde idempotentlik, yani yeniden işlemede tanımlı bir sonuç gerektirir. Zaman sınırları ve bağımlılıklar, yavaş bir servisin tüm zinciri kilitlememesi için sınırlandırılır. İlgili ekiplerin bu kuralları anlayabilmesi ve test edebilmesi gerekir.

02

Daha fazla bölünmeden önce işletilebilirliği sağlamak

Yeni bir servis sorumluluk, izleme, yapılandırma ve güvenli bir dağıtım süreci gerektirir. Seçilmiş kısmi arızaları test eder ve yalnızca tek tek konteynerleri değil, uçtan uca işlemleri gözlemleriz. Devir mimari kararları, arayüz sözleşmelerini ve runbook'ları kapsar. Mevcut darboğazlar, ekip yapısı ve sürüm bağımlılıkları, ilk değerlendirme için en önemli temellerdir.

OTOKO®'nun Köln ofisindeki toplantı odası

Doğrulanabilir bir sonuç

Bununla çalışmaya devam edersiniz.

  1. Hizmet ayrımı ve arayüzlerle domain modeli
  2. Kod olarak dağıtım zinciriyle platform
  3. Her hizmet için kurallarla işletim kılavuzu

Devir, uygulamayı ve dokümantasyonu bir araya getirir. Üzerinde anlaşılan vakaları birlikte kontrol eder ve kalan görevleri kayıt altına alırız.

Projeniz ayrıntılarıyla

Hizmet sınırlarını, ürününüze fayda sağladıkları yerde çizmek.

Bir uygulamanın hangi bölümlerinin bağımsız olarak değiştirilip işletilmesi gerektiğini inceleriz. Mikroservisler olası mimari kararlardan biridir; belirleyici olan iş sınırları, ekip sorumluluğu ve yönetilebilir işletim süreçleridir.

Teknik ayrıştırmadan önce sorumluluğu ve veri sahipliğini netleştirmek

Bir hizmetin anlaşılır bir iş görevi olmalıdır. Bileşenler ayrıştırılmadan önce süreçleri, veri sahipliğini ve değişiklik bağımlılıklarını inceleriz. Birden fazla hizmet aynı tabloları paylaşıyor ve her zaman birlikte yayınlanmak zorundaysa, genellikle istenen fayda olmadan yalnızca dağıtık bir bağımlılık ortaya çıkar.

Eşzamanlı sorguları, eşzamansız süreç adımlarından ayırırız. Birden çok hizmeti kapsayan iş süreçleri için ara durumlar ve telafi işlemleri açıkça modellenir. Örneğin iptal edilen bir rezervasyon, tüm veritabanlarında rastgele bir teknik geri alma değil, iş düzeyinde bir eylemdir.

Dağıtık hataları görünür ve ele alınabilir hale getirmek

Birden fazla hizmetle birlikte ek ağ yolları ve olası kısmi arızalar ortaya çıkar. Zaman aşımlarını, sınırlamaları ve yeniden denemeleri, yavaş bir hizmetin tüm uygulamayı bloke etmeyeceği şekilde planlarız. Otomatik yeniden deneme, bir eylemin istemeden birden çok kez gerçekleştirilmemesini gerektirir.

Devreye alma, ölçülebilir faydası olan sınırlı bir alanda gerçekleştirilir. Günlükler, izler, dağıtım ve nöbet için ortak standartlar, her hizmetin kendi işletim kurallarını icat etmesini önler. Beklenen fayda eforu haklı çıkarmıyorsa, açıkça yapılandırılmış modüler bir uygulama daha uygun çözüm olarak kalabilir.

Örnek proje senaryosu

Hizmetin günlük işlere katkısı.

Örnek: Belge oluşturma, yük zirvelerinde bir iş uygulamasını yavaşlatır. Bu sürecin iş ve teknik bağımlılıklarını inceler, gerekirse tam olarak bu süreci ayırırız. Sonuç, net tanımlı bir görev durumu üzerinden sunulurken çekirdek süreç kontrollü şekilde çalışmaya devam eder.

Bu örnek olası bir süreci açıklar ve bir müşteri referansı değildir.

İlk adımdan önce

Mikroservisler hakkında sorularınız.

Bunun için Kubernetes kullanmamız gerekir mi?

Hayır. İşletim modeli, servislerin sayısına, ölçeklendirmesine ve gereksinimlerine göre belirlenir. Kubernetes uygun olabilir, ancak iş bazında ayrılmış uygulamalar için bir ön koşul değildir.

Bu, geliştirmeyi her zaman hızlandırır mı?

Hayır. Dağıtık sistemler ek koordinasyon ve işletim yükü getirir. Faydayı gerçek bağımlılıklarınıza ve darboğazlarınıza göre değerlendiririz.

Projeniz

Hangi görevi çözmek istiyorsunuz?

Mevcut durumunuzu ve istediğiniz sonucu tanımlayın. Seçilen hizmet, iletişim talebinize aktarılır.

Bu hizmeti talep edin

İş Ortaklarımız

  • Microsoft
  • Microsoft Azure
  • Amazon AWS
  • Google Cloud
  • Thales Group
  • Arrow ECS
  • Vodafone
  • IBM
  • Veeam
  • Atlassian
  • JetBrains
  • NinjaOne
  • OPSWAT
  • Utimaco
  • Eviden

Erişilebilirlik

Görünümü ihtiyaçlarınıza göre ayarlayın.

Bu sayfa için henüz basit dil sürümü mevcut değil.

Ayarlar şu anda yalnızca bu ziyaret için geçerlidir. Ayarların kalıcı olarak kaydedilmesine Çerez ayarları bölümünden izin verebilirsiniz.