Migrowanie aplikacji Spring Boot do usługi Azure Container Apps
W tym przewodniku opisano, co należy wiedzieć, kiedy chcesz przeprowadzić migrację istniejącej aplikacji Spring Boot do uruchomienia w usłudze Azure Container Apps.
Przed migracją
Aby zapewnić pomyślną migrację, przed rozpoczęciem wykonaj kroki oceny i spisu opisane w poniższych sekcjach.
Jeśli nie możesz spełnić żadnego z tych wymagań przed migracją, zapoznaj się z następującymi przewodnikami po migracji towarzyszącej:
- Migrowanie wykonywalnych aplikacji JAR do kontenerów w usłudze Azure Kubernetes Service (zaplanowane wskazówki)
- Migrowanie wykonywalnych aplikacji JAR do usługi Azure Virtual Machines (zaplanowane wskazówki)
Sprawdzanie składników aplikacji
Identyfikowanie stanu lokalnego
W środowiskach PaaS nie ma gwarancji, że aplikacja będzie działać dokładnie raz w danym momencie. Nawet jeśli skonfigurujesz aplikację do uruchamiania w jednym wystąpieniu, w następujących przypadkach można utworzyć zduplikowane wystąpienie:
- Aplikacja musi zostać przeniesiona na hosta fizycznego z powodu awarii lub aktualizacji systemu.
- Aplikacja jest aktualizowana.
W każdym z tych przypadków oryginalne wystąpienie pozostaje uruchomione do momentu zakończenia uruchamiania nowego wystąpienia. Ten wzorzec może mieć następujące potencjalnie znaczące konsekwencje dla aplikacji:
- Nie można zagwarantować, że singleton będzie naprawdę pojedynczy.
- Wszystkie dane, które nie zostały utrwalone w magazynie zewnętrznym, prawdopodobnie zostaną utracone wcześniej niż na jednym serwerze fizycznym lub maszynie wirtualnej.
Przed migracją do usługi Azure Container Apps upewnij się, że kod nie zawiera stanu lokalnego, który nie może zostać utracony ani zduplikowany. Jeśli stan lokalny istnieje, zmień kod tak, aby przechowywał ten stan poza aplikacją. Aplikacje gotowe do chmury zwykle przechowują stan aplikacji w lokalizacjach, takich jak następujące opcje:
- Azure Cache for Redis
- Azure Cosmos DB
- Inna zewnętrzna baza danych, taka jak Azure SQL, Azure Database for MySQL lub Azure Database for PostgreSQL.
- Usługa Azure Storage używana do przechowywania danych bez struktury, a nawet serializowanych obiektów.
Określanie, czy i jak jest używany system plików
Znajdź wszystkie wystąpienia, w których usługi zapisują dane i/lub odczytują z lokalnego systemu plików. Określ, gdzie pliki krótkoterminowe/tymczasowe są zapisywane i odczytywane oraz gdzie pliki długoterminowe są zapisywane i odczytywane.
Usługa Azure Container Apps oferuje kilka typów magazynu. Magazyn efemeryczny może odczytywać i zapisywać dane tymczasowe i być dostępne dla uruchomionego kontenera lub repliki. Usługa Azure File zapewnia stały magazyn i może być współużytkowany w wielu kontenerach. Aby uzyskać więcej informacji, zobacz Używanie instalacji magazynu w usłudze Azure Container Apps.
Zawartość statyczna tylko do odczytu
Jeśli aplikacja aktualnie obsługuje zawartość statyczną, potrzebujesz dla niej alternatywnej lokalizacji. Warto rozważyć przeniesienie zawartości statycznej do usługi Azure Blob Storage i dodanie usługi Azure CDN w celu uzyskania błyskawicznych pobrań na całym świecie. Aby uzyskać więcej informacji, zobacz Hostowanie statycznej witryny internetowej w usłudze Azure Storage i Szybki start: integrowanie konta usługi Azure Storage z usługą Azure CDN.
Dynamicznie publikowana zawartość statyczna
Jeśli aplikacja obsługuje zawartość statyczną, niezależnie od tego, czy została przekazana, czy wygenerowana przez samą aplikację, pozostaje niezmieniona po jej utworzeniu, możesz zintegrować usługę Azure Blob Storage i usługę Azure CDN. Za pomocą funkcji platformy Azure można również zarządzać przekazywaniem i wyzwalać odświeżanie usługi CDN w razie potrzeby. Udostępniliśmy przykładową implementację do użycia w temacie Przekazywanie zawartości statycznej i jej wstępne ładowanie w usłudze CDN za pomocą usługi Azure Functions.
Ustal, czy którakolwiek z usług zawiera kod specyficzny dla systemu operacyjnego
Jeśli aplikacja zawiera jakikolwiek kod z zależnościami systemu operacyjnego hosta, należy go refaktoryzować, aby usunąć te zależności. Na przykład może być konieczne zastąpienie dowolnego użycia ścieżki /
systemu plików lub \
w ścieżkach File.Separator
systemu plików lub Paths.get
jeśli aplikacja jest uruchomiona w systemie Windows.
Przełączanie na obsługiwaną platformę
Jeśli tworzysz plik Dockerfile ręcznie i wdrażasz konteneryzowaną aplikację w usłudze Azure Container Apps, przejmiesz pełną kontrolę nad wdrożeniem, w tym wersjami środowiska JRE/JDK.
W przypadku wdrażania z artefaktów usługa Azure Container Apps oferuje również określone wersje języka Java (8, 11, 17 i 21) oraz określone wersje składników Spring Boot i Spring Cloud. Aby zapewnić zgodność, najpierw przeprowadź migrację aplikacji do jednej z obsługiwanych wersji języka Java w bieżącym środowisku, a następnie wykonaj pozostałe kroki migracji. Pamiętaj, aby w pełni przetestować konfigurację wynikową. W tych testach użyj najnowszej stabilnej wersji dystrybucji systemu Linux.
Uwaga
Ta weryfikacja jest szczególnie ważna, jeśli bieżący serwer działa na nieobsługiwanym zestawie JDK (na przykład Oracle JDK lub IBM OpenJ9).
Aby uzyskać informacje na temat bieżącej wersji języka Java, zaloguj się na serwerze produkcyjnym i uruchom następujące polecenie:
java -version
Aby uzyskać obsługiwane wersje języków Java, Spring Boot i Spring Cloud, a także instrukcje dotyczące aktualizowania, zobacz Omówienie języka Java w usłudze Azure Container Apps.
Określanie, czy Twoja aplikacja bazuje na zaplanowanych zadaniach
Efemeryczna aplikacja, taka jak zadania cron systemu Unix lub krótkotrwałe aplikacje oparte na platformie Spring Batch, powinna działać jako zadanie w usłudze Azure Container Apps. Aby uzyskać więcej informacji, zobacz Zadania w usłudze Azure Container Apps. Jeśli aplikacja jest długotrwałą aplikacją i regularnie wykonuje zadania przy użyciu struktury planowania, takiej jak Quartz lub Spring Batch, usługa Azure Container Apps może hostować tę aplikację. Jednak aplikacja musi odpowiednio obsługiwać skalowanie, aby uniknąć warunków wyścigu, w których te same wystąpienia aplikacji są wykonywane więcej niż raz w zaplanowanym okresie podczas skalowania w poziomie lub uaktualniania stopniowego.
Utwórz spis wszystkich zaplanowanych zadań uruchomionych na serwerach produkcyjnych wewnątrz lub poza kodem aplikacji.
Identyfikowanie wersji platformy Spring Boot
Sprawdź zależności każdej migrowanej aplikacji, aby określić jej wersję spring boot.
Maven
W projektach Maven wersja Spring Boot jest zwykle znajdowana w <parent>
elemplecie pliku POM:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Gradle
W projektach narzędzia Gradle wersja platformy Spring Boot będzie zwykle znajdowana w plugins
sekcji jako wersja org.springframework.boot
wtyczki:
plugins {
id 'org.springframework.boot' version '3.3.3'
id 'io.spring.dependency-management' version '1.1.6'
id 'java'
}
W przypadku wszystkich aplikacji korzystających z wersji Spring Boot wcześniejszych niż 3.x postępuj zgodnie z przewodnikiem migracji spring boot 2.0 lub Przewodnik migracji spring Boot 3.0, aby zaktualizować je do obsługiwanej wersji spring boot. Aby zapoznać się z obsługiwanymi wersjami, zobacz wersje platform Spring Boot i Spring Cloud.
Identyfikowanie rozwiązań agregacji dzienników
Zidentyfikuj wszelkie rozwiązania agregacji dzienników używane przez migrowane aplikacje. Należy skonfigurować ustawienia diagnostyczne w migracji, aby umożliwić udostępnianie zarejestrowanych zdarzeń do użycia. Aby uzyskać więcej informacji, zobacz sekcję Zapewnianie rejestrowania konsoli i konfigurowania ustawień diagnostycznych.
Identyfikowanie agentów zarządzania wydajnością aplikacji (APM)
Zidentyfikuj wszystkich agentów zarządzania wydajnością aplikacji używanych przez aplikacje. Usługa Azure Containers Apps nie oferuje wbudowanej obsługi integracji APM. Musisz przygotować obraz kontenera lub zintegrować narzędzie APM bezpośrednio z kodem. Jeśli chcesz zmierzyć wydajność aplikacji, ale jeszcze nie zintegrować żadnej aplikacji APM, rozważ użycie aplikacja systemu Azure Insights. Aby uzyskać więcej informacji, zobacz sekcję Migracja.
Utworzenie spisu zasobów zewnętrznych
Zidentyfikuj zasoby zewnętrzne, takie jak źródła danych, brokery komunikatów JMS i adresy URL innych usług. W aplikacjach Spring Boot zazwyczaj można znaleźć konfigurację dla takich zasobów w folderze src/main/resources , w pliku zwykle nazywanym application.properties lub application.yml.
Bazy danych
W przypadku aplikacji Spring Boot parametry połączenia zwykle pojawiają się w plikach konfiguracji, gdy zależy od zewnętrznej bazy danych. Oto przykład z pliku application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Oto przykład z pliku application.yaml:
spring:
data:
mongodb:
uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017
Aby uzyskać więcej możliwych scenariuszy konfiguracji, zobacz dokumentację rozwiązania Spring Data:
Brokerzy komunikatów JMS
Zidentyfikuj używany broker lub brokerów, wyszukując w manifeście kompilacji (zazwyczaj plik pom.xml lub build.gradle ) dla odpowiednich zależności.
Na przykład aplikacja Spring Boot korzystająca z usługi ActiveMQ zwykle zawiera tę zależność w pliku pom.xml :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
Aplikacje Spring Boot korzystające z brokerów komercyjnych zwykle zawierają zależności bezpośrednio od bibliotek sterowników JMS brokera. Oto przykład z pliku build.gradle:
dependencies {
...
compile("com.ibm.mq:com.ibm.mq.allclient:9.4.0.5")
...
}
Po zidentyfikowaniu używanego brokera lub brokera znajdź odpowiednie ustawienia. W aplikacjach Spring Boot zazwyczaj można je znaleźć w plikach application.properties i application.yml w katalogu aplikacji.
Uwaga
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze, taki jak bazy danych, pamięci podręczne, komunikaty lub usługi sztucznej inteligencji, wymaga bardzo wysokiego stopnia zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Użyj tego przepływu tylko wtedy, gdy bardziej bezpieczne opcje, takie jak tożsamości zarządzane dla połączeń bez hasła lub bez kluczy, nie są opłacalne. W przypadku operacji maszyny lokalnej preferuj tożsamości użytkowników dla połączeń bez hasła lub bez klucza.
Oto przykład activeMQ z pliku application.properties :
spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=<password>
Aby uzyskać więcej informacji na temat konfiguracji usługi ActiveMQ, zobacz dokumentację obsługi komunikatów spring boot.
Oto przykład ibm MQ z pliku application.yaml :
ibm:
mq:
queueManager: qm1
channel: dev.ORDERS
connName: localhost(14)
user: admin
password: <password>
Aby uzyskać więcej informacji na temat konfiguracji ibm MQ, zobacz dokumentację składników ibm MQ Spring.
Identyfikowanie zewnętrznych pamięci podręcznych
Zidentyfikuj używane zewnętrzne pamięci podręczne. Często usługa Redis jest używana za pośrednictwem usługi Spring Data Redis. Informacje o konfiguracji można znaleźć w dokumentacji usługi Spring Data Redis .
Ustal, czy dane sesji są buforowane za pośrednictwem sesji Spring, wyszukując odpowiednią konfigurację (w języku Java lub XML).
Dostawcy tożsamości
Zidentyfikuj wszystkich dostawców tożsamości używanych przez aplikację. Aby uzyskać informacje na temat sposobu konfigurowania dostawców tożsamości, zapoznaj się z następującymi tematami:
- Aby uzyskać informacje o konfiguracji protokołu OAuth2, zobacz dokumentację dotyczącą zabezpieczeń spring.
- Aby uzyskać informacje na temat konfiguracji Auth0 Spring Security, zobacz dokumentację Auth0 Spring Security.
- Aby uzyskać informacje o konfiguracji usługi PingFederate Spring Security, zobacz instrukcje Auth0 PingFederate.
Identyfikowanie wszystkich klientów korzystających z portu niestandardowego
Usługa Azure Container Apps umożliwia uwidocznienie portu zgodnie z konfiguracją zasobów usługi Azure Container Apps. Na przykład aplikacja Spring Boot domyślnie nasłuchuje portu 8080, ale można ją ustawić za pomocą zmiennej środowiskowej SERVER_PORT
lub zgodnie z potrzebamiserver.port
.
Wszystkie inne zasoby zewnętrzne
W tym przewodniku nie można udokumentować każdej możliwej zależności zewnętrznej. Po zakończeniu migracji należy sprawdzić, czy można spełnić wszystkie zależności zewnętrzne aplikacji.
Spis źródeł konfiguracji i wpisów tajnych
Hasła spisu i bezpieczne ciągi
Sprawdź wszystkie pliki właściwości i konfiguracji oraz wszystkie zmienne środowiskowe we wdrożeniach produkcyjnych pod kątem wszelkich ciągów wpisów tajnych i haseł. W aplikacji Spring Boot zazwyczaj można znaleźć takie ciągi w pliku application.properties lub application.yml .
Certyfikaty spisu
Udokumentuj wszystkie certyfikaty używane w przypadku publicznych punktów końcowych protokołu SSL lub komunikacji z bazami danych zaplecza i innymi systemami. Wszystkie certyfikaty na serwerach produkcyjnych można wyświetlić, uruchamiając następujące polecenie:
keytool -list -v -keystore <path to keystore>
Sprawdzanie architektury wdrażania
Dokumentowanie wymagań sprzętowych dla każdej usługi
Dokumentuj następujące informacje dotyczące aplikacji Spring Boot:
- Liczba uruchomionych wystąpień.
- Liczba procesorów CPU przydzielonych do każdego wystąpienia.
- Ilość pamięci RAM przydzielonej do każdego wystąpienia.
Dokument dotyczący replikacji geograficznej/dystrybucji
Ustal, czy wystąpienia aplikacji Spring Boot są obecnie dystrybuowane między kilkoma regionami lub centrami danych. Udokumentowanie wymagań dotyczących czasu pracy/umowy SLA dla migrujących aplikacji.
Migracja
Tworzenie środowiska usługi Azure Container Apps i wdrażanie aplikacji
Aprowizuj wystąpienie usługi Azure Container Apps w ramach subskrypcji platformy Azure. Jego bezpieczne środowisko hostingu jest tworzone wraz z nim. Aby uzyskać więcej informacji, zobacz temat Szybki start: Wdrażanie pierwszej aplikacji kontenera przy użyciu witryny Azure Portal.
Upewnij się, że rejestrowanie konsoli i konfigurowanie ustawień diagnostycznych
Skonfiguruj rejestrowanie, aby upewnić się, że wszystkie dane wyjściowe są kierowane do konsoli, a nie do plików.
Po wdrożeniu aplikacji w usłudze Azure Container Apps można skonfigurować opcje rejestrowania w środowisku usługi Container Apps w celu zdefiniowania co najmniej jednego miejsca docelowego dzienników. Te miejsca docelowe mogą obejmować usługę Azure Monitor Log Analytics, centrum zdarzeń platformy Azure, a nawet inne rozwiązania do monitorowania innych firm. Istnieje również możliwość wyłączenia danych dziennika i wyświetlania dzienników tylko w czasie wykonywania. Aby uzyskać szczegółową instrukcję konfiguracji, zobacz Opcje magazynu dzienników i monitorowania w usłudze Azure Container Apps.
Konfigurowanie magazynu trwałego
Jeśli jakakolwiek część aplikacji odczytuje lub zapisuje w lokalnym systemie plików, musisz skonfigurować magazyn trwały w celu zastąpienia lokalnego systemu plików. Możesz określić ścieżkę do zainstalowania w kontenerze za pomocą ustawień aplikacji i dopasować ją do ścieżki używanej przez aplikację. Aby uzyskać więcej informacji, zobacz Używanie instalacji magazynu w usłudze Azure Container Apps.
Migrowanie wszystkich certyfikatów do usługi KeyVault
Usługa Azure Containers Apps obsługuje bezpieczną komunikację między aplikacjami. Aplikacja nie musi zarządzać procesem ustanawiania bezpiecznej komunikacji. Możesz przekazać certyfikat prywatny do usługi Azure Container Apps lub użyć bezpłatnego certyfikatu zarządzanego dostarczonego przez usługę Azure Container Apps. Używanie usługi Azure Key Vault do zarządzania certyfikatami jest zalecane. Aby uzyskać więcej informacji, zobacz Certyfikaty w usłudze Azure Container Apps.
Konfigurowanie integracji zarządzania wydajnością aplikacji (APM)
Bez względu na to, czy aplikacja jest wdrażana z obrazu kontenera, czy z kodu, usługa Azure Container Apps nie zakłóca działania obrazu ani kodu. W związku z tym integracja aplikacji z narzędziem APM zależy od własnych preferencji i implementacji.
Jeśli aplikacja nie korzysta z obsługiwanego programu APM, aplikacja systemu Azure Insights jest jedną z opcji. Aby uzyskać więcej informacji, zobacz Using Azure Monitor Application Insights with Spring Boot (Korzystanie z usługi Azure Monitor Application Insights z platformą Spring Boot).
Wdrażanie aplikacji
Wdróż każdą z migrowanych mikrousług (nie w tym serwera Spring Cloud Config Server i rejestru Spring Cloud Service Registry), zgodnie z opisem w temacie Deploy Azure Container Apps with the az containerapp up command (Wdrażanie usługi Azure Container Apps za pomocą polecenia az containerapp up).
Konfigurowanie wpisów tajnych dla usługi i ustawień zewnętrznych
Ustawienia konfiguracji można wstrzyknąć do każdej aplikacji jako zmienne środowiskowe. Te zmienne można ustawić jako wpisy ręczne lub odwołania do wpisów tajnych. Aby uzyskać więcej informacji na temat konfiguracji, zobacz Zarządzanie zmiennymi środowiskowymi w usłudze Azure Container Apps.
Migrowanie i włączanie dostawcy tożsamości
Jeśli którakolwiek z aplikacji Spring Cloud wymaga uwierzytelniania lub autoryzacji, upewnij się, że są skonfigurowane do uzyskiwania dostępu do dostawcy tożsamości:
- Jeśli dostawca tożsamości jest identyfikatorem Entra firmy Microsoft, nie należy wprowadzać żadnych zmian.
- Jeśli dostawca tożsamości jest lasem lokalna usługa Active Directory, rozważ zaimplementowanie rozwiązania tożsamości hybrydowej przy użyciu identyfikatora Entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz dokumentację tożsamości hybrydowej.
- Jeśli dostawca tożsamości jest innym rozwiązaniem lokalnym, takim jak PingFederate, zapoznaj się z tematem Niestandardowa instalacja programu Microsoft Entra Connect w celu skonfigurowania federacji z identyfikatorem Entra firmy Microsoft. Alternatywnie rozważ użycie rozwiązania Spring Security do korzystania z dostawcy tożsamości za pośrednictwem protokołu OAuth2/OpenID Connect lub SAML.
Uwidacznianie aplikacji
Domyślnie aplikacja wdrożona w usłudze Azure Container Apps jest dostępna za pośrednictwem adresu URL aplikacji. Jeśli aplikacja jest wdrażana w kontekście środowiska zarządzanego z własną siecią wirtualną, musisz określić poziom ułatwień dostępu aplikacji, aby zezwolić na dostęp publiczny lub ruch przychodzący tylko z sieci wirtualnej. Aby uzyskać więcej informacji, zobacz Networking in Azure Container Apps environment (Sieć w środowisku usługi Azure Container Apps).
Po migracji
Po zakończeniu migracji sprawdź, czy aplikacja działa zgodnie z oczekiwaniami. Następnie możesz sprawić, że aplikacja będzie bardziej natywna dla chmury, korzystając z poniższych zaleceń.
Rozważ włączenie aplikacji do pracy z usługą Spring Cloud Registry. Ten składnik umożliwia dynamiczne odnajdywanie aplikacji przez inne wdrożone aplikacje Spring i klientów. Aby uzyskać więcej informacji, zobacz Konfigurowanie ustawień składnika Eureka Server for Spring w usłudze Azure Container Apps. Następnie zmodyfikuj wszystkich klientów aplikacji, aby używali modułu równoważenia obciążenia klienta spring. Moduł równoważenia obciążenia klienta spring umożliwia klientowi uzyskanie adresów wszystkich uruchomionych wystąpień aplikacji i znalezienie wystąpienia, które działa, jeśli inne wystąpienie zostanie uszkodzone lub nie odpowiada. Aby uzyskać więcej informacji, zobacz Spring Tips: Spring Cloud Load Balancer w blogu Spring.
Zamiast upublicznić aplikację , rozważ dodanie wystąpienia usługi Spring Cloud Gateway . Usługa Spring Cloud Gateway udostępnia pojedynczy punkt końcowy dla wszystkich aplikacji wdrożonych w środowisku usługi Azure Container Apps. Jeśli brama Spring Cloud Gateway jest już wdrożona, upewnij się, że reguła routingu jest skonfigurowana do kierowania ruchu do nowo wdrożonej aplikacji.
Rozważ dodanie serwera Spring Cloud Config Server, aby centralnie zarządzać konfiguracją kontroli wersji i zarządzać nią dla wszystkich aplikacji Spring Cloud. Najpierw utwórz repozytorium Git, aby pomieścić konfigurację i skonfigurować wystąpienie aplikacji do użycia. Aby uzyskać więcej informacji, zobacz Konfigurowanie ustawień dla składnika Config Server for Spring w usłudze Azure Container Apps. Następnie przeprowadź migrację konfiguracji, wykonując następujące kroki:
W katalogu src/main/resources aplikacji utwórz plik bootstrap.yml o następującej zawartości:
spring: application: name: <your-application-name>
W repozytorium Git konfiguracji utwórz <plik your-application-name>.yml gdzie
your-application-name
jest taki sam jak w poprzednim kroku. Przenieś ustawienia z pliku application.yml w pliku src/main/resources do nowo utworzonego pliku. Jeśli ustawienia były wcześniej w pliku properties , najpierw przekonwertowano je na YAML. Aby wykonać tę konwersję, możesz znaleźć narzędzia online lub wtyczki IntelliJ.Utwórz plik application.yml w powyższym katalogu. Ten plik służy do definiowania ustawień i zasobów, które są współużytkowane przez wszystkie aplikacje w środowisku usługi Azure Container Apps. Takie ustawienia zazwyczaj obejmują źródła danych, ustawienia rejestrowania, konfigurację siłownika Spring Boot i inne.
Zatwierdź i wypchnij te zmiany do repozytorium Git.
Usuń plik application.properties lub application.yml z aplikacji.
Rozważ dodanie składnika zarządzanego Admin for Spring w celu włączenia interfejsu administracyjnego dla aplikacji internetowych Spring Boot, które uwidaczniają punkty końcowe siłownika. Aby uzyskać więcej informacji, zobacz Configure the Spring Boot Admin component in Azure Container Apps (Konfigurowanie składnika Administratora spring boot w usłudze Azure Container Apps).
Rozważ dodanie potoku wdrażania dla wdrożeń automatycznych, spójnych. Instrukcje są dostępne dla usługi Azure Pipelines i funkcji GitHub Actions.
Rozważ użycie poprawek aplikacji kontenera, etykiet poprawek i wag ruchu przychodzącego, aby umożliwić wdrożenie niebiesko-zielone, co umożliwia testowanie zmian kodu w środowisku produkcyjnym przed udostępnieniem ich niektórym lub wszystkim użytkownikom końcowym. Aby uzyskać więcej informacji, zobacz Blue-Green Deployment in Azure Container Apps (Wdrażanie blue-green w usłudze Azure Container Apps).
Rozważ dodanie powiązań usługi w celu połączenia aplikacji z obsługiwanymi bazami danych platformy Azure. Te powiązania usług wyeliminowałyby konieczność dostarczania informacji o połączeniu, w tym poświadczeń, aplikacjom Spring Cloud.
Rozważ włączenie stosu deweloperów Języka Java w celu zbierania podstawowych metryk JVM dla aplikacji. Aby uzyskać więcej informacji, zobacz Java metrics for Java apps in Azure Container Apps (Metryki języka Java dla aplikacji Java w usłudze Azure Container Apps).
Rozważ dodanie reguł alertów i grup akcji usługi Azure Monitor, aby szybko wykrywać i rozwiązywać problemy z warunkami aberrant. Aby uzyskać więcej informacji, zobacz Konfigurowanie alertów w usłudze Azure Container Apps.
Rozważ replikowanie aplikacji w różnych strefach w regionie, włączając nadmiarowość strefy usługi Azure Container Apps. Ruch jest zrównoważony i automatycznie kierowany do replik, jeśli wystąpi awaria strefy. Aby uzyskać więcej informacji na temat ustawień nadmiarowych, zobacz Niezawodność w usłudze Azure Container Apps.
Rozważ ochronę usługi Azure Container Apps przed typowymi programami wykorzystującymi luki w zabezpieczeniach i lukami w zabezpieczeniach przy użyciu zapory aplikacji internetowej w usłudze Application Gateway. Aby uzyskać więcej informacji, zobacz Ochrona usługi Azure Container Apps za pomocą zapory aplikacji internetowej w usłudze Application Gateway.