Porównanie rozwiązań
Przedstawiliśmy już najpopularniejsze typy wdrożeń dla aplikacji Java. Zobaczymy teraz, która usługa platformy Azure będzie działać najlepiej, w zależności od wybranego typu wdrożenia.
Azure Container Apps
Azure Container Apps to zarządzana usługa, która uruchamia kontenery platformy Docker.
Usługa Azure Container Apps może uruchamiać dowolną aplikację Java, spakowana jako obraz platformy Docker (w tym aplikacje Tomcat, Spring Boot i Quarkus). Tworzenie tych obrazów i zarządzanie nimi jest twoim obowiązkiem (na przykład przy użyciu funkcji GitHub Actions): zapewnia to dużą elastyczność, ale także wymaga konserwacji.
Jest to ekonomiczne i skalowalne rozwiązanie, które sprawia, że jest to doskonałe rozwiązanie dla małych i średnich obciążeń.
W przypadku uruchamiania aplikacji monolitycznej Java opartej na kontenerze usługa Azure Container Apps jest więc najlepszą opcją.
Azure App Service
Azure App Service to rozwiązanie typu „platforma jako usługa” (PaaS) udostępniane przez platformę Azure. Oferuje ona łatwą w użyciu usługę do uruchamiania aplikacji internetowych Java z automatycznymi aktualizacjami i poprawkami maszyny wirtualnej Java (JVM), a także skalowaniem automatycznym lub monitorowaniem.
Usługa App Service może uruchamiać dowolny wykonywalny plik JAR, co czyni go alternatywą dla usługi Azure Container Apps na potrzeby uruchamiania prostych aplikacji monolitycznych Java.
Może również wdrożyć dowolną aplikację WAR na popularnych serwerach aplikacji, takich jak Apache Tomcat lub Red Hat JBoss. Dzięki temu jest to najlepsze rozwiązanie do uruchamiania aplikacji Jakarta EE na platformie Azure.
Azure Functions
Usługa Azure Functions to platforma bezserwerowa udostępniana przez platformę Azure, która obsługuje uruchamianie obciążeń Java.
Uruchomienie aplikacji Java w usłudze Azure Functions zwykle wymaga pewnej dodatkowej konfiguracji i instalacji. Z ich natury funkcje bezserwerowe mają krótkie życie (zwykle tylko kilka minut), więc niektóre usługi, których tradycyjnie używasz, mogą nie być tak wydajne lub praktyczne, jak usługa aplikacja systemu Azure Service.
W związku z tym usługa Azure Functions jest dostosowana do aplikacji, które wymagają dużej skalowalności. Można je regularnie zatrzymywać, aby zmniejszyć koszty, i można je skalować w górę, aby reagować na duże obciążenia.
Azure Spring Apps
Azure Spring Apps to unikatowa usługa platformy Azure, która udostępnia rozwiązanie jako usługę do uruchamiania mikrousług Spring Boot. Usługa Spring Cloud oferuje wiele narzędzi, takich jak rejestr usług lub serwer konfiguracji. Zapewnia również specjalne skalowanie automatyczne i mechanizmy zabezpieczeń, które znacznie upraszczają korzystanie z architektury mikrousług opartej na usłudze Spring Boot.
Oferta Spring Cloud jest tworzona i zarządzana wspólnie przez firmę Microsoft i Broadcom, która tworzy platformę Spring Framework. Usługa Spring Cloud zapewnia pomoc techniczną zarówno dla systemu operacyjnego, jak i aktualizacji oraz poprawek JVM, takich jak Azure App Service, oraz zaawansowanych usług Spring.
Możesz również użyć usługi Azure Spring Apps do uruchamiania innych obciążeń, takich jak aplikacje monolityczne spring boot, a nawet mikrousługi platformy .NET korzystające z rozwiązania Steeltoe, ale usługa jest używana głównie do uruchamiania mikrousług Spring Boot.
Azure Kubernetes Service
Usługa Azure Kubernetes Service (AKS) to zarządzane i zabezpieczone rozwiązanie Kubernetes zapewniane przez platformę Azure. Może ona uruchomić dowolny obraz platformy Docker i czerpie korzyści z przynależności do całego ekosystemu Kubernetes. Usługa AKS dobrze się sprawdza, jeśli chcesz dostarczać aplikacje natywne dla chmury w dowolnym języku, także w języku Java.
Usługa Azure Kubernetes Service jest doskonałym rozwiązaniem, jeśli masz obciążenia heterogeniczne lub jeśli chcesz precyzyjnie kontrolować środowisko. Usługa AKS dobrze współpracuje z obciążeniami środowiska Java, ale Ty musisz kompilować i konserwować obrazy platformy Docker.
Maszyny wirtualne platformy Azure
Uruchamianie maszyn wirtualnych na platformie Azure zapewnia największą elastyczność i różnorodność opcji. Można wybrać między wieloma systemami operacyjnymi, zazwyczaj Windows i głównymi dystrybucjami systemu Linux. Możesz przynieść własne oprogramowanie lub użyć niektórych dostarczonych obrazów.
W szczególności w języku Java maszyny wirtualne są używane głównie w następujących celach:
- Ręczne instalowanie i uruchamianie aplikacji internetowej Java w systemie Windows lub Linux.
- Instalowanie i uruchamianie platformy Docker, a nawet środowiska AKS, aby uruchomić obraz zawierający aplikację internetową języka Java.
- Używanie jednej z obsługiwanych ofert, takich jak Oracle WebLogic, do uruchamiania aplikacji internetowych Java na maszynach wirtualnych.
Gdy korzystasz z maszyn wirtualnych platformy Azure, nie ma żadnego limitu dotyczącego tego, co można instalować i uruchamiać, ponieważ masz pełną kontrolę nad nimi. Jednak główną wadą maszyn wirtualnych jest konieczność ich konserwowania i zabezpieczania. W przypadku maszyn wirtualnych odpowiedzialność za te prace spoczywa na Tobie.