Hizmet ağı nedir?

Hizmet ağı, uygulamalardaki hizmetler arasında kurulan tüm iletişimi yöneten bir yazılım katmanıdır. Bu katman, container'lı mikro hizmetlerden oluşur. Uygulamalar ölçeklendikçe ve mikro hizmet sayısı arttıkça, hizmetlerin performansını izlemek zorlaşır. Hizmetler arasındaki bağlantıları yönetmek için bir hizmet ağı; izleme, günlük kaydı, takip ve trafik denetimi gibi yeni özellikler sağlar. Her bir hizmetin kodundan bağımsız olması, ağ sınırlarına bağlı kalmadan ve birden fazla hizmet yönetim sistemiyle çalışmasına olanak tanır.

Neden bir hizmet ağına ihtiyacınız var?

Modern uygulama mimarisinde, uygulamaları küçük, bağımsız olarak dağıtılabilir mikro hizmetlerden oluşan bir koleksiyon halinde oluşturabilirsiniz. Farklı ekipler bireysel mikro hizmetler oluşturabilir ve kodlama dillerini ve araçlarını seçebilir. Bununla birlikte, uygulama kodunun doğru çalışması için mikro hizmetlerin iletişim kurması gerekir.

Uygulama performansı, hizmetler arasındaki iletişimin hızına ve dayanıklılığına bağlıdır. Geliştiriciler, uygulamayı hizmetler arasında izlemeli ve optimize etmelidir ancak sistemin dağıtılmış yapısı nedeniyle görünürlük elde etmek zordur. Uygulamalar ölçeklendikçe, iletişimleri yönetmek daha da karmaşık hale gelir.

Hizmet ağı benimsemeye yönelik olarak iki ana tetikleyici unsur bulunur. Bunu bir sonraki bölümde detaylandıracağız.

Mikro hizmetler hakkında bilgi edinin »

Hizmet düzeyi gözlemlenebilirlik

Dağıtılan iş yükleri ve hizmetler arttıkça, geliştiriciler her şeyin birlikte nasıl çalıştığını anlamakta zorlanırlar. Örneğin, hizmet ekipleri aşağı ve yukarı akış bağımlılıklarının ne olduğunu bilmek ister. Hizmetlerin ve iş yüklerinin uygulama katmanında nasıl iletişim kurduğuna dair daha fazla görünürlük isterler.

Hizmet düzeyi denetim

Yöneticiler hangi hizmetlerin birbirleriyle konuştuğunu ve hangi eylemleri gerçekleştirdiklerini kontrol etmek isterler. Mikro hizmet mimarisi dahilindeki hizmetlerin davranışı, politikaları ve etkileşimleri üzerinde ayrıntılı denetim ve yönetişime sahip olmak isterler. Güvenlik politikalarının uygulanması, mevzuata uygunluk için çok önemlidir.

Hizmet ağının avantajları nelerdir?

Hizmet ağı, dağıtılmış bir uygulamada hizmetler arası iletişimin inceliklerini ele alan, merkezi, tahsis edilmiş bir altyapı katmanı sağlar. Buna ek olarak, çeşitli hizmet ağı avantajları sunarız.

Hizmet keşfi

Otomatik hizmet keşfi sağlayan hizmet ağları, hizmet uç noktalarını yönetmenin getirdiği operasyonel yükü azaltır. Bunlar, ağ içindeki tüm hizmetleri dinamik olarak keşfetmek ve takip etmek için bir hizmet kayıt defteri kullanır. Hizmetler, konumları veya altyapıları ne olursa olsun birbirlerini sorunsuz bir şekilde bulabilir ve iletişim kurabilir. Gerektiğinde yeni hizmetleri dağıtarak hızlı bir şekilde ölçeklendirebilirsiniz.

Yük dengeleme

Hizmet ağları, istekleri birden çok hizmet bulut sunucusuna akıllıca dağıtmak için gidiş-dönüş, en az bağlantı veya ağırlıklı yük dengeleme gibi çeşitli algoritmalar kullanır. Yük dengeleme, kaynak kullanımını iyileştirmenin yanı sıra, yüksek erişilebilirlik ve ölçeklenebilirlik sağlar. Performansı optimize edebilir ve ağ iletişimi darboğazlarını önleyebilirsiniz.

Trafik yönetimi

Hizmet ağları, istek yönlendirme ve trafik davranışı üzerinde hassas kontrol sağlayan gelişmiş trafik yönetimi özellikleri sunar. Aşağıda birkaç örnek bulabilirsiniz.

Trafik bölme

Gelen trafiği farklı hizmet sürümleri veya yapılandırmaları arasında bölebilirsiniz. Ağ, trafiğin birazını güncellenmiş sürüme yönlendirerek değişikliklerin kontrollü ve kademeli olarak kullanıma sunulmasına imkan tanır. Böylece sorunsuz bir geçiş sağlanır ve değişikliklerin etkisi en aza indirilir.

İstek yansıtma

Birincil istek akışını etkilemeden, bir test veya izleme hizmetine giden trafiği analiz için çoğaltabilirsiniz. İstekleri yansıttığınızda, üretim trafiğini etkilemeden, hizmetin belirli istekleri nasıl ele aldığına dair öngörüler elde edersiniz.

Kanarya dağıtımları

Kullanıcıların çoğunluğu mevcut kararlı sürümü kullanmaya devam ederken, kullanıcıların veya trafiğin küçük bir alt kümesini yeni bir hizmet sürümüne yönlendirebilirsiniz. Maruziyeti sınırlayarak, yeni sürümün davranışı ve performansı üzerinde gerçek dünya ortamında deney yapabilirsiniz.

Güvenlik

Hizmet ağları; karşılıklı TLS (mTLS) şifreleme, kimlik doğrulama ve yetkilendirme gibi güvenli iletişim özellikleri sağlar. Karşılıklı TLS, hizmetler arası iletişimde kimlik doğrulamasını mümkün kılar. Trafiği şifreleyerek veri gizliliğini ve bütünlüğünü sağlamaya yardımcı olur. Hangi hizmetlerin belirli uç noktalara erişebileceğini veya belirli eylemleri gerçekleştirebileceğini denetlemek için yetkilendirme politikaları da uygulayabilirsiniz.

İzleme

Hizmet ağları; hizmetlerinizin sağlığı, performansı ve davranışları hakkında öngörü kazanmak için kapsamlı izleme ve gözlemlenebilirlik özellikleri sunar. İzleme özellikleri, sorun gidermeyi ve performans optimizasyonunu da destekler. Kullanabileceğiniz izleme özelliklerinden bazıları şunlardır:

  • Genel sistem performansını analiz etmek için gecikme süresi, hata oranları ve kaynak kullanımı gibi ölçümleri toplama
  • Birden çok hizmette isteklerin tam yolunu ve zamanlamasını görmek için dağıtılmış izleme gerçekleştirme
  • Denetim, hata ayıklama ve uygunluk amaçları için hizmet olaylarını yakalayarak günlüklere kaydetme

Bir hizmet ağı nasıl çalışır?

Hizmet ağı, hizmetten hizmete iletişimi yöneten mantığı hizmetlerden tek tek kaldırır ve iletişimi kendi altyapı katmanına soyutlar. Bu sistem, hizmetler arasındaki iletişimi yönlendirmek ve izlemek için birkaç ağ proxy'si kullanır.

Proxy, kuruluşunuzun ağı ile mikro hizmet arasında bir aracı ağ geçidi işlevi görür. Hizmete gelen ve hizmetten giden tüm trafik, proxy sunucusu üzerinden yönlendirilir. Ayrı olarak çalıştıklarından ancak mantıksal olarak her bir hizmetin yanında yer aldıklarından, tekil proxy'lere kimi zaman yan proxy adı verilir. Birlikte ele alındığında, proxy'ler hizmet ağ katmanını oluşturur. 

 

Hizmet ağı mimarisinde iki ana bileşen vardır: denetim düzlemi ve veri düzlemi.

Veri düzlemi

Veri düzlemi, bir hizmet ağının veri işleme bileşenidir. Tüm yan proxy'leri ve işlevlerini içerir. Bir hizmet başka bir hizmetle iletişim kurmak istediğinde, yan proxy şu işlemleri gerçekleştirir:

  1. Yan proxy, isteği durdurur
  2. İsteği ayrı bir ağ bağlantısına yerleştirir
  3. Kaynak ile hedef proxy'ler arasında güvenli ve şifreli bir kanal kurar

Yan proxy'ler, hizmetler arasında düşük düzeyde mesajlaşmayı yönetir. Ayrıca, dayanıklılığı artırmak ve hizmet bozulmasını önlemek için devre kesme ve yeniden deneme talep etme gibi özellikleri de uygular. Yük dengeleme, hizmet keşfi ve trafik yönlendirme gibi hizmet ağı işlevleri, veri düzleminde uygulanır.

Denetim düzlemi

Denetim düzlemi, hizmet ağının merkezi yönetim ve yapılandırma katmanı olarak işlev görür.

Denetim düzlemi ile yöneticiler ağ içindeki hizmetleri tanımlayabilir ve yapılandırabilir. Örneğin, hizmet uç noktaları, yönlendirme kuralları, yük dengeleme politikaları ve güvenlik ayarları gibi parametreleri belirleyebilir. Yapılandırma tanımlandıktan sonra, denetim düzlemi gerekli bilgileri hizmet ağının veri düzlemine dağıtır.

Proxy'ler, gelen isteklerin nasıl ele alınacağına karar vermek için yapılandırma bilgilerini kullanır. Ayrıca yapılandırma değişikliklerin alabilir ve davranışlarını dinamik olarak uyarlayabilirler. Hizmet ağı yapılandırmasında, hizmeti yeniden başlatmadan veya kesinti olmadan gerçek zamanlı değişiklikler yapabilirsiniz.

Hizmet ağı uygulamaları denetim düzleminde genellikle aşağıdaki özellikleri içerir:

  • Ağ içindeki tüm hizmetleri takip eden hizmet kayıt defteri
  • Yeni hizmetlerin otomatik olarak keşfedilmesi ve etkin olmayan hizmetlerin kaldırılması
  • Ölçümler, günlükler ve dağıtılmış izleme bilgileri gibi telemetri verilerinin toplanması ve bir araya getirilmesi

 

Istio nedir?

Istio, öncelikli olarak Kubernetes ile çalışmak üzere tasarlanmış açık kaynaklı bir hizmet ağı projesidir. Kubernetes, geniş ölçekte container'lı uygulamalar dağıtmak ve yönetmek için kullanılan açık kaynaklı bir container düzenleme platformudur.

Istio'nun denetim düzlemi bileşenleri, Kubernetes iş yükleri olarak çalışır. Istio, yan proxy tasarımının temeli olarak bir IP adresini paylaşan sıkıca bağlanmış bir container kümesi olan bir Kubernetes podunu kullanır.

Istio'nun katman 7 proxy'si, ana hizmetle aynı ağ bağlamında başka bir container olarak çalışır. Bu konumdan, Pod'dan geçen tüm ağ trafiğini kesebilir, inceleyebilir ve yönlendirebilir. Yine de, birincil container'ın herhangi bir değişikliğe ve hatta bunun gerçekleştiğine dair bilgiye ihtiyacı yoktur.

Kubernetes hakkında bilgi edinin »

Açık kaynaklı hizmet ağı uygulamalarının zorlukları nelerdir?

Istio, Linkerd ve Consul gibi açık kaynaklı platformlarla ilişkili bazı yaygın hizmet ağı zorluklarını burada bulabilirsiniz.

Karmaşıklık

Hizmet ağları; ek altyapı bileşenleri, yapılandırma gereksinimleri ve dağıtımla ilgili sorunlar içerir. Geliştiricilerin ve operatörlerin belirli bir hizmet ağı uygulamasını kullanma konusunda uzmanlık kazanmalarını gerektiren dik bir öğrenme eğrisine sahiptir. Ekipleri eğitmek zaman ve kaynak gerektirir. Bir kuruluş, ekiplerin hizmet ağı mimarisinin inceliklerini anlamak ve etkili bir şekilde yapılandırmak için gerekli bilgiye sahip olduğundan emin olmalıdır.

Operasyonel iş yükleri

Hizmet ağları, veri düzlemi proxy'lerini ve denetim düzlemi bileşenlerini dağıtmak, yönetmek ve izlemek için ek yükler getirir. Örneğin, şunları yapmanız gerekir:

  • Hizmet ağı altyapısının yüksek oranda erişilebilir ve ölçeklenebilir olmasını sağlama
  • Proxy'lerinizin durumunu ve performansını izleme
  • Yükseltmeleri ve uyumluluk sorunlarını ele alma

Genel sistem üzerindeki herhangi bir performans etkisini en aza indirmek için hizmet ağını dikkatli bir şekilde tasarlamak ve yapılandırmak çok önemlidir.

Entegrasyon zorlukları

Bir hizmet ağının, gerekli işlevlerini yerine getirmek için mevcut altyapıyla sorunsuz bir şekilde entegre olması gerekir. Bu; container düzenleme platformlarını, ağ çözümlerini ve teknoloji yığınındaki diğer araçları içerir.

Karmaşık ve farklı ortamlarda diğer bileşenlerle uyumluluk ve sorunsuz entegrasyon sağlamak zor olabilir. API'lerinizi, yapılandırma biçimlerinizi ve bağımlılıklarınızı değiştirmek için sürekli planlama ve test gereklidir. Aynısı, yığının herhangi bir yerinde yeni sürümlere yükseltme yapılması gerektiğinde de geçerlidir.

AWS, hizmet ağı gereksinimlerinizi nasıl destekleyebilir?

AWS App Mesh; Amazon Web Services (AWS) tarafından sunulan, tam olarak yönetilen ve yüksek oranda erişilebilir bir hizmet ağıdır. App Mesh, hizmetler arasındaki iletişimi izleyip denetlemeyi ve hataları ayıklamayı kolaylaştırır.

App Mesh, mikro hizmet container'larınızın yanında dağıtılan açık kaynaklı bir hizmet ağı proxy'si olan Envoy'u kullanır. Bunu Amazon Esnek Container Hizmeti (Amazon ECS), Amazon Esnek Kubernetes Hizmeti (Amazon EKS), AWS Fargate ve AWS'de Kubernetes tarafından yönetilen mikro hizmet kapsayıcılarıyla kullanabilirsiniz. Bu hizmeti, Amazon Esnek İşlem Bulutu (Amazon EC2) üzerindeki hizmetlerle kullanmanız da mümkündür.

Hemen bir hesap oluşturarak AWS'de hizmet ağını kullanmaya başlayın.

AWS'de Sonraki Adımlar

Ücretsiz bir hesap açmak için kaydolun

AWS Ücretsiz Kullanım için anında erişim elde edin.

Kaydolun 
Konsolda oluşturmaya başlayın

AWS Yönetim Konsolu'nda oluşturmaya başlayın.

Oturum açın