Ağ Geçidi Yönlendirme düzeni
Tek bir uç nokta kullanarak istekleri birden çok hizmete yönlendirin. Bu düzen, tek bir uç noktada birden çok hizmeti kullanıma sunmak ve isteğe bağlı olarak uygun hizmete yönlendirme gerçekleştirmek istediğiniz durumlarda kullanışlıdır.
Bağlam ve sorun
Bir istemcinin birden çok hizmeti kullanması gerektiğinde, her hizmet için ayrı bir uç nokta ayarlamak ve istemcinin her bir uç noktayı yönetmesini sağlamak zor olabilir. Örneğin, bir e-ticaret uygulaması arama, incelemeler, sepet, ödeme ve siparişi geçmişi gibi hizmetler sağlayabilir. Her hizmet için istemcinin etkileşim kurması gereken farklı bir API vardır ve istemcinin hizmetlere bağlanabilmesi için her uç nokta hakkında bilgi sahibi olması gerekir. Bir API değişirse istemcinin de güncelleştirilmesi gerekir. Bir hizmeti iki veya daha fazla ayrı hizmet olarak yeniden düzenlerseniz kod hem hizmette hem de istemcide değiştirilmelidir.
Çözüm
Bir uygulama, hizmet ve dağıtım kümesinin önüne bir ağ geçidi yerleştirin. Uygulama Katman 7 yönlendirmeyi kullanarak isteği uygun örneklere yönlendirin.
Bu düzende, istemci uygulamasının yalnızca tek bir uç nokta ile ilgili bilgi sahibi olması ve iletişim kurması gerekir. Bir hizmet birleştirilir veya bölünürse istemcinin mutlaka güncelleştirilmesi gerekmez. Ağ geçidine istek göndermeye devam edebilir ve yalnızca yönlendirme değişir.
Ağ geçidi ayrıca arka uç hizmetlerini istemcilerden soyutlamanıza imkan sağlayarak ağ geçidinin arkasındaki arka uç hizmetlerinde değişiklik yapabilmenize rağmen istemci çağrılarının basit kalmasını sağlamanıza olanak tanır. İstemci çağrıları beklenen istemci davranışı için gerekli hizmete veya hizmetlere yönlendirilebilir ve istemciyi değiştirmek zorunda kalmadan ağ geçidinin arkasına hizmet ekleyebilir ya da buradaki hizmetleri bölüp yeniden düzenleyebilirsiniz.

Bu düzen, güncelleştirmelerin kullanıcılara nasıl sunulacağını yönetmenize olanak tanıyarak dağıtımı konusunda da yardımcı olabilir. Hizmetinizin yeni bir sürümü dağıtıldığında, mevcut sürüm ile paralel olarak dağıtılabilir. Yönlendirme, hizmette hizmetin hangi sürümünün sunulduğunu denetlemenize olanak tanır. bu sayede, güncelleştirmelerin artımlı, paralel veya tamamlanmış olduğunu fark etmeksizin çeşitli sürüm stratejilerini kullanma esnekliği sunar. Yeni hizmet dağıtıldıktan sonra bulunan herhangi bir sorun, istemcileri etkilemeden ağ geçidinde hızlı bir yapılandırma değişikliği yapılarak geri alınabilir.
Sorunlar ve dikkat edilmesi gerekenler
- Ağ geçidi hizmeti bir tek hata noktası olabilir. Bunun kullanılabilirlik gereksinimlerinizi karşılayacak şekilde doğru olarak tasarlandığından emin olun. Uygularken dayanıklılık ve hataya dayanıklılık özelliklerini göz önünde bulundurun.
- Ağ geçidi hizmeti bir performans sorununa neden olabilir. Ağ geçidinin yükü işlemek için yeterli performans kapasitesine sahip olduğundan ve büyüme beklentilerinize uygun olarak kolayca ölçeklendirilebileceğinden emin olun.
- Hizmetler için zincirleme bir şekilde yayılan hatalara yol açmadığınızdan emin olmak için ağ geçidinde yük testi gerçekleştirin.
- Ağ geçidi yönlendirme 7. düzeydedir. IP, bağlantı noktası, üst bilgi veya URL’yi temel alabilir.
Bu düzenin kullanılacağı durumlar
Bu düzeni aşağıdaki durumlarda kullanın:
- Bir istemcinin bir ağ geçidi arkasında erişilebilir olan birden çok hizmeti kullanmasını gerektiren durumlar.
- Tek bir uç nokta kullanarak istemci uygulamalarını basitleştirmek istediğiniz durumlar.
- Dışarıya dönük uç noktalardan gelen istekleri iç sanal uç noktalarına yönlendirmenizi (örneğin, bir VM’deki bağlantı noktalarının küme sanal IP adreslerine sunulması) gerektiren durumlar.
Yalnızca birkaç hizmet kullanan basit bir uygulamanız varsa bu düzen uygun olmayabilir.
Örnek
Yönlendirici olarak Nginx kullanılan aşağıdaki dosya, farklı sanal dizinlerde bulunan uygulamalara yönelik istekleri arka uçtaki farklı makinelere yönlendiren bir sunucu için basit bir örnek yapılandırma dosyasıdır.
server {
listen 80;
server_name domain.com;
location /app1 {
proxy_pass http://10.0.3.10:80;
}
location /app2 {
proxy_pass http://10.0.3.20:80;
}
location /app3 {
proxy_pass http://10.0.3.30:80;
}
}
Azure 'da, katman 7 yönlendirmesi sağlayan bir Application Gateway örneğininarkasında birden fazla hizmet ayarlanabilir.