Page 126 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 126
126 | Spring Framework
Bulutta, uygulamalar diğer hizmetlerin tam yerini her zaman bilemez. Bunun için Netflix Eureka
gibi bir hizmet kaydı veya HashiCorp Consul gibi bir sepet çözümü yardımcı olabilir. Spring
Cloud, Eureka, Consul, Zookeeper ve hatta Kubernetes’in yerleşik sistemi gibi popüler kayıtlar
için DiscoveryClient uygulamaları sağlar. Yükün hizmet örnekleri arasında dikkatli bir şekilde
dağılmasına yardımcı olacak bir Spring Cloud Yük Dengeleyici de vardır.
Sistemde çok sayıda istemci ve sunucu varken, bulut mimarinize bir API ağ geçidi eklemek genellikle
yardımcı olur. Bir ağ geçidi, mesajların güvenliğini ve yönlendirilmesini, hizmetleri gizleme, yükü
azaltma ve diğer birçok yararlı şeyi halledebilir. Spring Cloud Gateway, yapılandırma ve bakımı
basitleştirmek için Spring Cloud hizmet keşfini ve istemci tarafı yük dengeleme çözümlerini
entegre ederek API katmanı üzerinde hassas bir kontrol sağlar.
Bulutta, yapılandırma basitçe uygulamanın içine yerleştirilemez. Yapılandırma, birden çok
uygulama, ortam ve hizmet örneğiyle başa çıkacak kadar esnek olmalı ve kesinti olmadan dinamik
değişikliklerle başa çıkabilmelidir. Spring Cloud Config, bu yükleri hafifletmek için tasarlanmıştır
ve yapılandırmayı güvende tutmaya yardımcı olmak için Git gibi sürüm kontrol sistemleri ile
entegrasyon sunar.
Dağıtık sistemler güvenilir olmayabilir. Istekler zaman aşımları ile karşılaşabilir veya tamamen
başarısız olabilir. Bir devre kesici bu sorunları azaltmaya yardımcı olabilir ve Spring Cloud Devre
Kesici bu konuda üç popüler seçenek sunar: Resilience4J, Sentinel veya Hystrix.
Dağıtılmış uygulamalarda hata ayıklama karmaşık olabilir ve uzun zaman alabilir. Herhangi bir
arıza için, birkaç bağımsız hizmetten gelen bilgi izlerini bir araya getirmeniz gerekebilir. Spring
Cloud Sleuth, uygulamaları öngörülebilir ve tekrarlanabilir bir şekilde kullanabilir. Ayrıca, Zipkin ile
birlikte kullanıldığında, ortaya çıkabilecek gecikme sorunlarına odaklanabilmeye kolaylık sağlar.
Bulutta, ekstra avantajlar sağlamak için güvenilir, doğru, kararlı API’lere sahip olmak gerekir.
Sözleşmeye bağlı (Contract based) test, yüksek performanslı ekiplerin yolda kalmak için
sıklıkla kullandığı bir tekniktir. Kodun kontrol altında kalmasını sağlamak için API’lerin içeriğini
resmileştirerek ve etraflarında testler oluşturarak yardımcı olur. Spring Cloud Contract, Groovy,
Java veya Kotlin’de yazılmış sözleşmelerle REST ve mesajlaşma tabanlı API’ler için sözleşme
tabanlı test desteği sağlar.
4 .Web Uygulamaları (Web Applications)
Spring, web uygulama geliştirme sürecini hızlı ve sorunsuz hale getirir. Ortak kod ve yapılandırma
zorluklarını ortadan kaldırarak sunucu tarafı HTML uygulamaları, REST API’leri ve çift yönlü, olay tabanlı
sistemler gibi modern web programlama modellerinin geliştirilmesini kolaylaştırır.
Spring Boot, geliştirme sürecinin başlangıç noktasıdır. Minimum ön yapılandırmayla, hızlı bir şekilde
çalışmaya başlamayı amaçlar. Gömülü uygulama sunucuları sayesinde, saniyeler içinde hizmet vermeye
başlayabilir. Ayrıca; izleme, ölçümler ve sağlık durumu gibi gelişmiş özellikleri sunarak, derinlemesine
bilgi edinilmesini sağlar. Spring ayrıca; Java, Kotlin ve Groovy gibi birden çok JVM dilini destekler.