Porównanie rozwiązań
Opisaliśmy najbardziej typowe typy wdrożeń dla aplikacji Java. Teraz zobaczmy, która usługa platformy Azure może działać najlepiej, w zależności od wymaganego typu wdrożenia.
Azure Container Apps
Usługa Azure Container Apps umożliwia skoncentrowanie się na tworzeniu konteneryzowanych aplikacji Java, zarówno monolitycznych, jak i mikrousług bez konieczności zarządzania infrastrukturą. Możesz wdrożyć pliki JAR, WAR, a nawet kod źródłowy, a platforma automatycznie optymalizuje pamięć i skaluje aplikacje na podstawie zapotrzebowania. Integruje również zaawansowane funkcje diagnostyczne na potrzeby rozwiązywania problemów z maszyną wirtualną JVM, zapewniając wydajną wydajność aplikacji Java.
Ponadto usługa Azure Container Apps obsługuje zarządzane składniki spring, takie jak Spring Cloud Service Registry i Spring Cloud Config Server, zapewniając bezproblemową integrację platformy Spring. W ramach ekosystemu platformy Azure może obsługiwać obciążenia przedsiębiorstwa przy użyciu ekonomicznego skalowania i zaawansowanego zarządzania pamięcią, co czyni go idealnym rozwiązaniem zarówno dla tradycyjnych, jak i nowoczesnych architektur aplikacji.
Azure App Service
Azure App Service to rozwiązanie platformy jako usługi (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. Ta możliwość sprawia, że jest to najlepsze rozwiązanie do uruchamiania aplikacji Jakarta EE na platformie Azure.
Azure Functions
Usługa Azure Functions to platforma bezserwerowa dostarczana przez platformę Azure i obsługuje uruchamianie obciążeń Java.
Uruchamianie aplikacji Java w usłudze Azure Functions zwykle wymaga niewielkiej konfiguracji i przygotowania. Z ich natury funkcje bezserwerowe mają krótkie życie (zazwyczaj kilka minut), więc niektóre usługi, których tradycyjnie używasz, mogą nie być tak wydajne lub praktyczne, jak usługa Azure App Service.
W związku z tym usługa Azure Functions jest dostosowana do aplikacji wymagających dużej skalowalności. Można je regularnie zatrzymywać, aby zmniejszyć koszty i skalować je w górę, aby reagować na duże obciążenia.
Azure Kubernetes Service
Usługa Azure Kubernetes Service (AKS) to zarządzane i zabezpieczone rozwiązanie Kubernetes udostępniane przez platformę Azure. Może on uruchamiać dowolny obraz platformy Docker i korzystać z zalet należących do całego ekosystemu Kubernetes. Usługa AKS działa dobrze, jeśli chcesz dostarczać aplikacje natywne dla chmury w dowolnym języku, w tym w języku Java.
Usługa Azure Kubernetes Service to doskonałe rozwiązanie, jeśli masz heterogeniczne obciążenia lub chcesz mieć precyzyjną kontrolę nad środowiskiem. Usługa AKS dobrze obsługuje zadania Java, ale musisz tworzyć i zarządzać obrazami Dockera.
Maszyny wirtualne 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 przypadku języka Java używasz głównie maszyn wirtualnych do:
- Zainstaluj i uruchom ręcznie aplikację internetową Java w systemie Windows lub Linux.
- Zainstaluj i uruchom Docker lub nawet AKS, aby uruchomić obraz zawierający aplikację internetową Java.
- Użyj jednej z obsługiwanych ofert, takich jak Oracle WebLogic, aby uruchamiać aplikacje internetowe Java na maszynach wirtualnych.
W przypadku korzystania z maszyn wirtualnych platformy Azure nie ma ograniczeń co do tego, co można zainstalować i uruchomić, ponieważ masz pełną kontrolę nad nimi. Główną wadą maszyn wirtualnych jest jednak to, że należy je konserwować i zabezpieczać. W przypadku maszyn wirtualnych ta praca konserwacyjna jest Twoim zadaniem.