Spring Cloud uygulamalarını Azure Container Apps'e geçirme
Bu kılavuzda, mevcut bir Spring Cloud uygulamasını Azure Container Apps'te çalışacak şekilde geçirmek istediğinizde dikkat etmeniz gerekenler açıklanmaktadır.
Geçiş öncesi
Geçişin başarılı olduğundan emin olmak için, başlamadan önce aşağıdaki bölümlerde açıklanan değerlendirme ve envanter adımlarını tamamlayın.
Bu geçiş öncesi gereksinimlerin hiçbirini karşılayamazsanız aşağıdaki yardımcı geçiş kılavuzlarını inceleyin:
- Yürütülebilir JAR uygulamalarını Azure Kubernetes Service’teki kapsayıcılara geçirme (kılavuz planlı)
- Yürütülebilir JAR Uygulamalarını Azure Sanal Makineler’e geçirme (kılavuz planlı)
Uygulama bileşenlerini inceleme
Dosya sisteminin kullanılıp kullanılmayacağını ve nasıl kullanıldığını belirleme
Hizmetlerinizin yerel dosya sistemine yazdığı ve/veya yerel dosya sisteminden okuduğu örnekleri bulun. Kısa süreli/geçici dosyaların yazıldığı ve okunduğu ve uzun ömürlü dosyaların nerede yazılıp okunduğu belirleyin.
Azure Container Apps çeşitli depolama türleri sunar. Kısa ömürlü depolama geçici verileri okuyup yazabilir ve çalışan bir kapsayıcı veya çoğaltma için kullanılabilir. Azure Dosya kalıcı depolama alanı sağlar ve birden çok kapsayıcı arasında paylaşılabilir. Daha fazla bilgi için bkz . Azure Container Apps'te depolama bağlamalarını kullanma.
Salt okunur statik içerik
Uygulamanız şu anda statik içerik yüklüyse, bunun için alternatif bir konuma ihtiyacınız vardır. Statik içeriği Azure Blob Depolama taşımayı ve küresel olarak yıldırım hızında indirmeler için Azure CDN eklemeyi düşünebilirsiniz. Daha fazla bilgi için bkz . Azure Depolama'da statik web sitesi barındırma ve Hızlı Başlangıç: Azure depolama hesabını Azure CDN ile tümleştirme.
Dinamik olarak yayımlanan statik içerik
Uygulamanız, uygulamanın kendisi tarafından karşıya yüklenen veya oluşturulan statik içeriği destekliyorsa, bu içerik oluşturulduktan sonra değişmeden kalıyorsa, Azure Blob Depolama ve Azure CDN'yi tümleştirebilirsiniz. Ayrıca karşıya yüklemeleri yönetmek ve gerektiğinde CDN yenilemelerini tetiklemek için bir Azure İşlevi kullanabilirsiniz. Azure İşlevleri ile statik içeriği karşıya yükleme ve CDN’ye önceden yükleme başlığı altında kullanımınıza ilişkin örnek bir uygulama sağladık.
Hizmetlerden herhangi birinin işletim sistemine özgü kod içerip içermediğini belirleme
Uygulamanız konak işletim sisteminde bağımlılıkları olan herhangi bir kod içeriyorsa, bu bağımlılıkları kaldırmak için yeniden düzenlemeniz gerekir. Örneğin, dosya sistemi yollarının herhangi bir kullanımını veya \
uygulamanızın /
Windows üzerinde çalışıyorsa ile File.Separator
Paths.get
değiştirmeniz gerekebilir.
Desteklenen platforma geçme
Dockerfile'ınızı el ile oluşturur ve kapsayıcılı uygulamayı Azure Container Apps'e dağıtırsanız JRE/JDK sürümleri de dahil olmak üzere dağıtımınız üzerinde tam denetim sahibi olursunuz.
Yapıtlardan dağıtım için Azure Container Apps, Java'nın belirli sürümlerini (8, 11, 17 ve 21) ve Spring Boot ve Spring Cloud bileşenlerinin belirli sürümlerini de sunar. Uyumluluğu sağlamak için önce uygulamanızı geçerli ortamında desteklenen Java sürümlerinden birine geçirin, ardından kalan geçiş adımlarıyla devam edin. Sonuçta elde edilen yapılandırmayı tümüyle test edin. Bu tür testlerde Linux dağıtımınızın en son kararlı sürümünü kullanın.
Not
Geçerli sunucunuz desteklenmeyen bir JDK (Oracle JDK veya IBM OpenJ9 gibi) çalıştırıyorsa bu doğrulama özellikle önemlidir.
Geçerli Java sürümünüzü öğrenmek için üretim sunucunuzda oturum açın ve şu komutu çalıştırın:
java -version
Java, Spring Boot ve Spring Cloud'un desteklenen sürümleri ve güncelleştirme yönergeleri için bkz . Azure Container Apps'te Java'ya genel bakış.
Spring Boot sürümlerini tanımlama
Spring Boot sürümünü belirlemek için geçirilen her uygulamanın bağımlılıklarını inceleyin.
Maven
Maven projelerinde Spring Boot sürümü genellikle POM dosyasının öğesinde <parent>
bulunur:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Gradle
Gradle projelerinde Spring Boot sürümü genellikle eklentinin org.springframework.boot
sürümü olarak bölümünde bulunurplugins
:
plugins {
id 'org.springframework.boot' version '3.3.3'
id 'io.spring.dependency-management' version '1.1.6'
id 'java'
}
3.x öncesi Spring Boot sürümlerini kullanan tüm uygulamalar için Spring Boot 2.0 geçiş kılavuzunu veya Spring Boot 3.0 Geçiş Kılavuzu'nu izleyerek bunları desteklenen bir Spring Boot sürümüne güncelleştirin. Desteklenen sürümler için Spring Cloud belgelerine bakın.
Spring Cloud sürümlerini tanımlama
Kullandığı Spring Cloud bileşenlerinin sürümünü belirlemek için geçiş yaptığınız her uygulamanın bağımlılıklarını inceleyin.
Maven
Maven projelerinde Spring Cloud sürümü genellikle şu özellikte spring-cloud.version
ayarlanır:
<properties>
<spring-cloud.version>2023.0.2</spring-cloud.version>
</properties>
Gradle
Gradle projelerinde Spring Cloud sürümü genellikle "ek özellikler" bloğunda ayarlanır:
ext {
set('springCloudVersion', "2023.0.2")
}
Spring Cloud'un desteklenen sürümlerini kullanmak için tüm uygulamaları güncelleştirmeniz gerekir. Desteklenen sürümler için Spring Cloud belgelerine bakın.
Günlük toplama çözümlerini tanımlama
Geçirmekte olduğunuz uygulamalar tarafından kullanılan tüm günlük toplama çözümlerini belirleyin. Günlüğe kaydedilen olayları kullanıma hazır hale getirmek için geçişte tanılama ayarlarını yapılandırmanız gerekir. Daha fazla bilgi için konsol günlüğünün günlüğe kaydedilmesini sağlama ve tanılama ayarlarını yapılandırma bölümüne bakın.
Uygulama performans yönetimi (APM) aracılarını tanımlama
Uygulamalarınız tarafından kullanılan tüm uygulama performansı yönetim aracılarını belirleyin. Azure Container Apps, APM tümleştirmesi için yerleşik destek sunmaz. Kapsayıcı görüntünüzü hazırlamanız veya APM aracını doğrudan kodunuzla tümleştirmeniz gerekir. Uygulamanızın performansını ölçmek istiyorsanız ancak henüz herhangi bir APM'yi tümleştirmediyseniz Azure Uygulaması lication Insights'ı kullanmayı göz önünde bulundurun. Daha fazla bilgi için Geçiş bölümüne bakın.
Dış kaynakların envanterini çıkarma
Veri kaynakları, JMS ileti aracıları ve diğer hizmetlerin URL’leri gibi dış kaynakları tanımlayın. Spring Cloud uygulamalarında, bu tür kaynakların yapılandırmasını genellikle aşağıdaki konumlardan birinde bulabilirsiniz:
- src/main/resources klasöründe, genellikle application.properties veya application.yml olarak adlandırılan bir dosyada.
- Önceki adımda tanımladığınız Spring Cloud Config Server deposunda.
Veritabanları
Spring Boot uygulaması için, bağlantı dizesi genellikle bir dış veritabanına bağlı olduğunda yapılandırma dosyalarında görünür. Burada application.properties dosyasından bir örnek yer alır:
spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Burada application.yaml dosyasından bir örnek yer alır:
spring:
data:
mongodb:
uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017
Daha olası yapılandırma senaryoları için Spring Data belgelerine bakın:
JMS ileti aracıları
İlgili bağımlılıklar için derleme bildirimine (genellikle bir pom.xml veya build.gradle dosyası) bakarak kullanılan aracıyı veya aracıları tanımlayın.
Örneğin, ActiveMQ kullanan bir Spring Boot uygulaması genellikle pom.xml dosyasında bu bağımlılığı içerir:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
Ticari aracıları kullanan Spring Boot uygulamaları genellikle doğrudan aracıların JMS sürücü kitaplıklarına bağımlılıklar içerir. Burada build.gradle dosyasından bir örnek yer alır:
dependencies {
...
compile("com.ibm.mq:com.ibm.mq.allclient:9.4.0.5")
...
}
Kullanılan aracıyı veya aracıları belirledikten sonra ilgili ayarları bulun. Spring Cloud uygulamalarında, bunları genellikle application.properties dosyasında ve uygulama dizinindeki application.yml dosyalarında veya Spring Cloud Config Server deposunda bulabilirsiniz.
Aşağıda application.properties dosyasından bir ActiveMQ örneği verilmiştir :
spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=tryandguess
ActiveMQ yapılandırması hakkında daha fazla bilgi için Spring Boot mesajlaşma belgelerine bakın.
Aşağıda application.yaml dosyasından bir IBM MQ örneği verilmişti:
ibm:
mq:
queueManager: qm1
channel: dev.ORDERS
connName: localhost(14)
user: admin
password: big$ecr3t
IBM MQ yapılandırması hakkında daha fazla bilgi için IBM MQ Spring bileşenleri belgelerine bakın.
Dış önbellekleri tanımlama
Kullanılan tüm dış önbellekleri tanımlayın. Redis sıklıkla Spring Data Redis aracılığıyla kullanılır. Yapılandırma bilgileri için Spring Data Redis belgelerine bakın.
İlgili yapılandırmayı (Java veya XML'de) arayarak oturum verilerinin Spring Session aracılığıyla önbelleğe alınıp alınmadığını belirleyin.
Kimlik sağlayıcıları
Kimlik doğrulaması ve/veya yetkilendirme gerektiren tüm kimlik sağlayıcılarını ve tüm Spring Cloud uygulamalarını belirleyin. Kimlik sağlayıcılarını nasıl yapılandırabileceğiniz hakkında bilgi için aşağıdaki kaynaklara bakın:
- OAuth2 yapılandırması için Spring Cloud Security hızlı başlangıcına bakın.
- Auth0 Spring Security yapılandırması için Auth0 Spring Security belgelerine bakın.
- PingFederate Spring Security yapılandırması için Auth0 PingFederate yönergelerine bakın.
VMware Tanzu Uygulama Hizmeti (TAS) (eski adıyla Pivotal Cloud Foundry) aracılığıyla yapılandırılan kaynaklar
TAS ile yönetilen uygulamalar için, daha önce açıklanan kaynaklar da dahil olmak üzere dış kaynaklar genellikle TAS hizmet bağlamaları aracılığıyla yapılandırılır. Bu tür kaynakların yapılandırmasını incelemek için TAS (Cloud Foundry) CLI'sini kullanarak uygulamanın değişkenini VCAP_SERVICES
görüntüleyin.
# Log into TAS, if needed (enter credentials when prompted)
cf login -a <API endpoint>
# Set the organization and space containing the application, if not already selected during login.
cf target org <organization name>
cf target space <space name>
# Display variables for the application
cf env <Application Name>
VCAP_SERVICES
Uygulamaya bağlı dış hizmetlerin yapılandırma ayarları için değişkenini inceleyin. Daha fazla bilgi için TAS (Cloud Foundry) belgelerine bakın.
Diğer tüm dış kaynaklar
Bu kılavuzda olası tüm dış bağımlılıkları belgeleme uygun değildir. Geçiş sonrasında, uygulamanızın tüm dış bağımlılıklarını karşılayabileceğinizi doğrulamak sizin sorumluluğunuzdadır.
Envanter yapılandırma kaynakları ve gizli diziler
Parolaları ve güvenli dizeleri envantere al
Tüm gizli dizeler ve parolalar için üretim dağıtımlarında tüm özellikleri, yapılandırma dosyalarını ve tüm ortam değişkenlerini denetleyin. Spring Cloud uygulamasında, bu tür dizeleri genellikle tek tek hizmetlerdeki veya Spring Cloud Config Server deposundaki application.properties veya application.yml dosyasında bulabilirsiniz.
Sertifikaların envanterini çıkarma
Genel SSL uç noktaları için veya arka uç veritabanları ve diğer sistemlerle iletişim için kullanılan tüm sertifikaları belgeleyin. Aşağıdaki komutu çalıştırarak üretim sunucularındaki tüm sertifikaları görüntüleyebilirsiniz:
keytool -list -v -keystore <path to keystore>
Spring Cloud Vault'un kullanılıp kullanılmadığını belirleme
Gizli dizileri depolamak ve erişmek için Spring Cloud Vault kullanıyorsanız, gizli dizi depoyu (örneğin, HashiCorp Vault veya CredHub) tanımlayın. Ardından uygulama kodu tarafından kullanılan tüm gizli dizileri belirleyin.
Yapılandırma sunucusu kaynağını bulma
Uygulamanız Spring Cloud Config Server kullanıyorsa yapılandırmanın nerede depolandığını belirleyin. Bu ayarı genellikle bootstrap.yml veya bootstrap.properties dosyasında ya da bazen application.yml veya application.properties dosyasında bulabilirsiniz. Ayar aşağıdaki örneğe benzer:
spring.cloud.config.server.git.uri: file://${user.home}/spring-cloud-config-repo
Git en yaygın olarak Spring Cloud Config Server'ın yedekleme veri deposu olarak kullanılsa da, daha önce gösterildiği gibi diğer olası arka uçlardan biri kullanımda olabilir. İlişkisel Veritabanı (JDBC), SVN ve yerel dosya sistemi gibi diğer arka uçlar hakkında bilgi için Spring Cloud Config Server belgelerine bakın.
Dağıtım mimarisini inceleme
Her hizmet için belge donanım gereksinimleri
Spring Cloud hizmetlerinizin her biri için (yapılandırma sunucusu, kayıt defteri veya ağ geçidi dahil değildir), aşağıdaki bilgileri belgeleyin:
- Çalışan örnek sayısı.
- Her örneğe ayrılan CPU sayısı.
- Her örneğe ayrılan RAM miktarı.
Belge coğrafi çoğaltma/dağıtım
Spring Cloud uygulamalarının şu anda birkaç bölge veya veri merkezi arasında dağıtılıp dağıtılmadığını belirleyin. Geçirmekte olduğunuz uygulamaların çalışma süresi gereksinimlerini/SLA'sını belgeleyin.
Hizmet kayıt defterini atlayan istemcileri belirleme
Spring Cloud Service Kayıt Defteri'ni kullanmadan geçirilecek hizmetlerden herhangi birini çağıran tüm istemci uygulamalarını belirleyin. Geçiş sonrasında bu tür çağrılar artık mümkün olmayacaktır. Geçiş öncesinde Spring Cloud OpenFeign kullanmak için bu istemcileri güncelleştirin.
Geçiş
Kısıtlanmış yapılandırmaları kaldırma
Azure Container Apps ortamı yönetilen Eureka Server, Spring Cloud Config Server ve Admin sunar. Bir uygulama Java bileşenine bağlı olduğunda, Azure Container Apps ilgili özellikleri sistem ortamı değişkenleri olarak ekler. Spring Boot Dışlaştırılmış Yapılandırma tasarımına göre, kodunuzda tanımlanan veya yapıtlar içinde paketlenmiş uygulama özelliklerinin üzerine sistem ortamı değişkenleri tarafından yazılır.
Komut satırı bağımsız değişkeni, Java sistem özelliği veya kapsayıcının ortam değişkeni aracılığıyla aşağıdaki özelliklerden birini ayarlarsanız, çakışmaları ve beklenmeyen davranışları önlemek için bu özelliği kaldırmanız gerekir:
SPRING_CLOUD_CONFIG_COMPONENT_URI
SPRING_CLOUD_CONFIG_URI
SPRING_CONFIG_IMPORT
eureka.client.fetch-registry
eureka.client.service-url.defaultZone
eureka.instance.prefer-ip-address
eureka.client.register-with-eureka
SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP
SPRING_BOOT_ADMIN_CLIENT_URL
Azure Container Apps yönetilen ortamı ve uygulamaları oluşturma
Mevcut yönetilen bir ortamda Azure aboneliğinizde bir Azure Container Apps uygulaması sağlayın veya geçiş yaptığınız her hizmet için yeni bir uygulama oluşturun. Spring Cloud kayıt defteri ve Yapılandırma sunucuları olarak çalışan uygulamalar oluşturmanız gerekmez. Daha fazla bilgi için bkz. Hızlı Başlangıç: Azure portalı kullanarak ilk kapsayıcı uygulamanızı dağıtma.
Spring Cloud Config Sunucusu'nu hazırlama
Spring için Azure Container Apps bileşeninizde Yapılandırma sunucusunu yapılandırın. Daha fazla bilgi için bkz . Azure Container Apps'te Spring için Yapılandırma Sunucusu bileşeninin ayarlarını yapılandırma.
Not
Geçerli Spring Cloud Config deponuz yerel dosya sisteminde veya şirket içindeyse, önce yapılandırma dosyalarınızı GitHub, Azure Repos veya BitBucket gibi bulut tabanlı bir depoya geçirmeniz veya çoğaltmanız gerekir.
Konsol günlüğünün günlüğe kaydedilmesini sağlama ve tanılama ayarlarını yapılandırma
Tüm çıkışın dosyalar yerine konsola yönlendirildiğinden emin olmak için günlük kaydınızı yapılandırın.
Bir uygulama Azure Container Apps'e dağıtıldıktan sonra, Günlüklerin bir veya daha fazla hedefini tanımlamak için Container Apps ortamınızdaki günlük seçeneklerini yapılandırabilirsiniz. Bu hedefler Azure İzleyici Log Analytics, Azure Olay hub'ı ve hatta diğer üçüncü taraf izleme çözümlerini içerebilir. Ayrıca günlük verilerini devre dışı bırakma ve günlükleri yalnızca çalışma zamanında görüntüleme seçeneğiniz vardır. Ayrıntılı yapılandırma yönergeleri için bkz . Azure Container Apps'te günlük depolama ve izleme seçenekleri.
Kalıcı depolamayı yapılandırma
Uygulamanızın herhangi bir bölümü yerel dosya sistemini okur veya yazarsa, yerel dosya sistemini değiştirmek için kalıcı depolamayı yapılandırmanız gerekir. Uygulama ayarları aracılığıyla kapsayıcıya bağlanacak yolu belirtebilir ve uygulamanızın kullandığı yolla hizalayabilirsiniz. Daha fazla bilgi için bkz . Azure Container Apps'te depolama bağlamalarını kullanma.
Spring Cloud Vault gizli dizilerini Azure KeyVault'a geçirme
Azure KeyVault Spring Boot Starter kullanarak Spring aracılığıyla uygulamalara doğrudan gizli diziler ekleyebilirsiniz. Daha fazla bilgi için bkz . Azure Key Vault için Spring Boot Starter'ı kullanma.
Not
Geçiş için bazı gizli dizileri yeniden adlandırmanız gerekebilir. Uygulama kodunuzu uygun şekilde güncelleştirin.
Tüm sertifikaları KeyVault'a geçirme
Azure Kapsayıcıları Uygulamaları, uygulamalar arasında güvenli iletişimi destekler. Uygulamanızın güvenli iletişim kurma sürecini yönetmesi gerekmez. Özel sertifikayı Azure Container Apps'e yükleyebilir veya Azure Container Apps tarafından sağlanan ücretsiz yönetilen sertifikayı kullanabilirsiniz. Sertifikaları yönetmek için Azure Key Vault'un kullanılması önerilen bir yaklaşımdır. Daha fazla bilgi için bkz . Azure Container Apps'te sertifikalar.
Uygulama performansı yönetimi (APM) tümleştirmelerini yapılandırma
Kapsayıcı içinde APM ile ilgili değişkenleri zaten yapılandırdıysanız tek yapmanız gereken hedef APM platformuna bağlantı kuruladığından emin olmaktır. APM yapılandırması kapsayıcıdan ortam değişkenlerine başvuruda bulunursa, Azure Container Apps'te çalışma zamanı ortam değişkenlerini buna göre ayarlamanız gerekir. bağlantı dizesi gibi hassas bilgiler güvenli bir şekilde işlenmelidir. Bunu gizli dizi olarak belirtebilir veya Azure Key Vault'ta depolanan bir gizli diziye başvurabilirsiniz.
Hizmet başına gizli dizileri ve dışlanmış ayarları yapılandırma
Yapılandırma ayarlarını her kapsayıcıya ortam değişkenleri olarak ekleyebilirsiniz. Değişkenlerdeki değişiklikler mevcut uygulama için yeni bir düzeltme oluşturur. Gizli diziler anahtar-değer çiftleridir ve tüm düzeltmelerde geçerli kalır.
Kimlik sağlayıcısını geçirme ve etkinleştirme
Spring Cloud uygulamalarından herhangi biri kimlik doğrulaması veya yetkilendirme gerektiriyorsa, kimlik sağlayıcısına erişecek şekilde yapılandırıldığından emin olmak için aşağıdaki yönergeleri kullanın:
- Kimlik sağlayıcısı Microsoft Entra Id ise hiçbir değişiklik yapılması gerekmez.
- Kimlik sağlayıcısı şirket içi Active Directory bir ormansa, Microsoft Entra Id ile bir karma kimlik çözümü uygulamayı göz önünde bulundurun. Yönergeler için Karma kimlik belgelerine bakın.
- Kimlik sağlayıcısı PingFederate gibi başka bir şirket içi çözümse, Microsoft Entra Id ile federasyonu yapılandırmak için Microsoft Entra Connect'in Özel yükleme konusuna bakın. Alternatif olarak, OAuth2/OpenID Connect veya SAML aracılığıyla kimlik sağlayıcınızı kullanmak için Spring Security kullanmayı göz önünde bulundurun.
İstemci uygulamalarını güncelleştirme
Geçirilen uygulamalar için yayımlanan Azure Container Apps uç noktalarını kullanacak şekilde tüm istemci uygulamalarının yapılandırmasını güncelleştirin.
Geçiş sonrası
Geçişinizi tamamladığınıza göre uygulamanızın beklediğiniz gibi çalıştığını doğrulayın. Ardından aşağıdaki önerileri kullanarak uygulamanızı buluta daha yerel hale getirebilirsiniz.
Uygulamanızın Spring Cloud Registry ile çalışmasını etkinleştirmeyi göz önünde bulundurun. Bu bileşen, uygulamanızın diğer dağıtılan Spring uygulamaları ve istemcileri tarafından dinamik olarak bulunmasını sağlar. Daha fazla bilgi için bkz . Azure Container Apps'te Spring için Eureka Server bileşeninin ayarlarını yapılandırma. Ardından, Spring client Load Balancer'ı kullanmak için tüm uygulama istemcilerini değiştirin. Spring Client Load Balancer, istemcinin uygulamanın çalışan tüm örneklerinin adreslerini almasını ve başka bir örneğin bozulması veya yanıt vermemeye başlaması durumunda çalışan bir örnek bulmasını sağlar. Daha fazla bilgi için Spring Blog'daki Spring Tips: Spring Cloud Load Balancer bölümüne bakın.
Uygulamanızı genel kullanıma açık hale getirmek yerine Spring Cloud Gateway örneği eklemeyi göz önünde bulundurun. Spring Cloud Gateway, Azure Container Apps ortamınızda dağıtılan tüm uygulamalar için tek bir uç nokta sağlar. Spring Cloud Gateway zaten dağıtıldıysa, trafiği yeni dağıtılan uygulamanıza yönlendirmek için bir yönlendirme kuralının yapılandırıldığından emin olun.
Tüm Spring Cloud uygulamalarınız için merkezi olarak yapılandırmayı ve sürüm denetimi yapılandırmasını yönetmek için Spring Cloud Config Server eklemeyi göz önünde bulundurun. İlk olarak, yapılandırmayı barındıracak bir Git deposu oluşturun ve uygulama örneğini bunu kullanacak şekilde yapılandırın. Daha fazla bilgi için bkz . Azure Container Apps'te Spring için Yapılandırma Sunucusu bileşeninin ayarlarını yapılandırma. Ardından aşağıdaki adımları kullanarak yapılandırmanızı geçirin:
Uygulamanın src/main/resources dizininde aşağıdaki içeriklere sahip bir bootstrap.yml dosyası oluşturun:
spring: application: name: <your-application-name>
Git deposunda yapılandırmada, önceki adımda olduğu gibi bir <your-application-name>.yml dosyası
your-application-name
oluşturun. Ayarları src/main/resources içindeki application.yml dosyasından oluşturduğunuz yeni dosyaya taşıyın. Ayarlar daha önce bir .properties dosyasındaysa, önce bunları YAML'ye dönüştürdü. Bu dönüştürmeyi gerçekleştirmek için çevrimiçi araçlar veya IntelliJ eklentileri bulabilirsiniz.Yukarıdaki dizinde bir application.yml dosyası oluşturun. Azure Container Apps ortamındaki tüm uygulamalar arasında paylaşılan ayarları ve kaynakları tanımlamak için bu dosyayı kullanabilirsiniz. Bu tür ayarlar genellikle veri kaynaklarını, günlük ayarlarını, Spring Boot Aktüatör yapılandırmasını ve diğerlerini içerir.
Bu değişiklikleri işleyin ve Git deposuna gönderin.
application.properties veya application.yml dosyasını uygulamadan kaldırın.
Aktüatör uç noktalarını kullanıma sunan Spring Boot web uygulamaları için yönetim arabirimini etkinleştirmek üzere Spring için Yönetici yönetilen bileşenini eklemeyi göz önünde bulundurun. Daha fazla bilgi için bkz . Azure Container Apps'te Spring Boot Yöneticisi bileşenini yapılandırma.
Otomatik, tutarlı dağıtımlar için bir dağıtım işlem hattı eklemeyi göz önünde bulundurun. Azure Pipelines ve GitHub Actions için yönergeler sağlanır.
Son kullanıcılarınızın bazılarının veya tümünün kullanımına sunulmadan önce üretimdeki kod değişikliklerini test etmenizi sağlayan mavi-yeşil dağıtımı etkinleştirmek için kapsayıcı uygulamaları düzeltmelerini, düzeltme etiketlerini ve giriş trafiği ağırlıklarını kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz . Azure Container Apps'te Mavi-Yeşil Dağıtım.
Uygulamanızı desteklenen Azure veritabanlarına bağlamak için hizmet bağlamaları eklemeyi göz önünde bulundurun. Bu hizmet bağlamaları, Spring Cloud uygulamalarınıza kimlik bilgileri de dahil olmak üzere bağlantı bilgileri sağlama gereksinimini ortadan kaldırır.
Uygulamalarınız için JVM çekirdek ölçümlerini toplamak üzere Java geliştirme yığınını etkinleştirmeyi göz önünde bulundurun. Daha fazla bilgi için bkz . Azure Container Apps'te Java uygulamaları için Java ölçümleri.
Sapkıcı koşulları hızla algılamak ve ele almak için Azure İzleyici uyarı kuralları ve eylem grupları eklemeyi göz önünde bulundurun. Daha fazla bilgi için bkz . Azure Container Apps'te uyarıları ayarlama.
Azure Container Apps bölge yedekliliğini etkinleştirerek uygulamanızı bölgedeki bölgeler arasında çoğaltmayı göz önünde bulundurun. Trafik yük dengelidir ve bir bölge kesintisi oluşursa otomatik olarak çoğaltmalara yönlendirilir. Yedekli ayarlar hakkında daha fazla bilgi için bkz . Azure Container Apps'te güvenilirlik.
Application Gateway'de Web Uygulaması Güvenlik Duvarı kullanarak Azure Container Apps'i yaygın açıklardan ve güvenlik açıklarından korumayı göz önünde bulundurun. Daha fazla bilgi için bkz. Application Gateway'de Web Uygulaması Güvenlik Duvarı ile Azure Container Apps'i koruma.
Uygulamalarınız eski Spring Cloud Netflix bileşenlerini kullanıyorsa, aşağıdaki tabloda gösterildiği gibi bunları geçerli alternatiflerle değiştirmeyi göz önünde bulundurun:
Eski Geçerli Spring Cloud Eureka Spring Cloud Service Kayıt Defteri Spring Cloud Netflix Zuul Spring Cloud Gateway Spring Cloud Netflix Archaius Spring Cloud Config Server Spring Cloud Netflix Şeridi Spring Cloud Load Balancer (istemci tarafı yük dengeleyici) Spring Cloud Hystrix Spring Cloud Circuit Breaker + Resilience4J Spring Cloud Netflix Türbini Mikrometre + Prometheus