Porovnání možností hostování aplikací v Javě v Azure

Azure Spring Apps
Azure App Service
Azure Kubernetes Service (AKS)
Azure Virtual Machines

Azure nabízí řadu možností, jak týmy vytvářet a nasazovat aplikace v Javě. Tento článek se zabývá běžnými scénáři Javy v Azure a poskytuje návrhy a aspekty plánování vysoké úrovně.

Apache®, Apache Kafka, Apache Struts, Apache Tomcat a logo plamene jsou registrované ochranné známky nebo ochranné známky Apache Software Foundation v USA a/nebo v jiných zemích. Použití těchto značek nevyžaduje žádné doporučení Apache Software Foundation.

Platforma

Než vyberete scénář cloudu pro vaši aplikaci v Javě, identifikujte její platformu. Většina aplikací v Javě používá jednu z následujících platforem:

Aplikace JAR Spring Boot

Aplikace JAR Spring Boot se obvykle vyvolávají přímo z příkazového řádku. Zpracovávají webové požadavky. Místo toho, abyste se museli spoléhat na aplikační server pro zpracování požadavků HTTP, tyto aplikace začleňují komunikaci HTTP a další závislosti přímo do balíčku aplikace. Tyto aplikace se často vytvářejí pomocí architektur, jako jsou Spring Boot, Dropwizard, Micronaut, MicroProfile a Vert.x.

Tyto aplikace jsou zabalené do archivů, které mají příponu .jar , která se označuje jako soubory JAR.

Aplikace Spring Cloud

Styl architektury mikroslužeb je přístup k vývoji jedné aplikace jako sady malých služeb. Každá služba běží ve vlastním procesu a komunikuje pomocí jednoduchých mechanismů, často rozhraní API prostředků HTTP. Tyto služby jsou postavené na obchodních možnostech.

Stroje automatizovaného nasazení nezávisle nasazují tyto mikroslužby. Existuje minimálně centralizovaná správa, která může být napsaná v různých programovacích jazycích a používat různé technologie úložiště dat. Tyto služby se často vytvářejí pomocí architektur, jako je Spring Cloud.

Tyto služby jsou zabalené do více aplikací jako soubory JAR.

Webové aplikace

Webové aplikace běží v kontejneru servletu. Některá rozhraní API servletu používají přímo, zatímco jiné používají jiné architektury, které zapouzdřují servletová rozhraní API, jako jsou Apache Struts, Spring MVC a JavaServer Faces.

Webové aplikace jsou zabalené do archivů, které mají příponu .war , označovanou jako soubory WAR.

Aplikace Jakarta EE

Aplikace Jakarta edice Enterprise (Jakarta EE) mohou obsahovat některé, všechny nebo žádné prvky webových aplikací. Mohou také obsahovat a využívat mnoho dalších komponent, jak je definováno specifikací Jakarta EE. Aplikace Jakarta EE se dříve označovaly jako aplikace Java EE nebo aplikace J2EE.

Aplikace Jakarta EE mohou být zabaleny jako soubory WAR nebo jako archivy, které mají příponu .ear , označovanou jako soubory EAR.

Aplikace Jakarta EE musí být nasazené na aplikační servery, které splňují předpisy Jakarta EE. Mezi příklady patří WebLogic, WebSphere, WildFly, GlassFish a Payara.

Aplikace, které spoléhají pouze na funkce poskytované specifikací Jakarta EE, je možné migrovat z jednoho kompatibilního aplikačního serveru do jiného. Pokud je vaše aplikace závislá na konkrétním aplikačním serveru, možná budete muset vybrat cíl služby Azure, který vám umožní hostovat tento aplikační server.

Možnosti platformy

Pomocí následující tabulky identifikujte potenciální platformy pro váš typ aplikace.

Azure Spring Apps App Service Java SE App Service Tomcat App Service JBoss EAP Azure Container Apps AKS Virtual Machines
Aplikace Spring Boot / JAR
Aplikace Spring Cloud
Webové aplikace
Aplikace Jakarta EE
Dostupnost oblastí Azure Podrobnosti Podrobnosti Podrobnosti Podrobnosti Podrobnosti Podrobnosti Podrobnosti

Azure Kubernetes Service (AKS) a Virtual Machines podporují všechny typy aplikací, ale vyžadují, aby váš tým převzal větší zodpovědnost, jak je popsáno v další části.

Podpora

Kromě možností platformy můžou mít moderní aplikace v Javě jiné potřeby podpory, například:

Dávkové nebo naplánované úlohy

Místo čekání na požadavky nebo vstup uživatele se některé aplikace krátce spustí, spustí konkrétní úlohu a pak ji ukončí. Někdy se takové úlohy musí spouštět jednou nebo v pravidelných naplánovaných intervalech. Místní úlohy se často vyvolávají z tabulky cron serveru.

Tyto aplikace jsou zabalené jako soubory JAR.

Poznámka:

Pokud vaše aplikace ke spouštění naplánovaných úloh používá plánovač, například Spring Batch nebo Quartz, důrazně doporučujeme tyto úlohy spouštět mimo aplikaci. Pokud se vaše aplikace škáluje na více instancí v cloudu, může stejná úloha běžet více než jednou. Pokud váš plánovací mechanismus používá místní časové pásmo hostitele, může být při škálování aplikace napříč oblastmi nežádoucí chování.

Integrace virtuální sítě

Když ve virtuální síti nasadíte aplikaci v Javě, má odchozí závislosti na službách mimo virtuální síť. Pro správu a provoz musí mít váš projekt přístup k určitým portům a plně kvalifikovaným názvům domén. Pomocí virtuálních sítí Azure můžete umístit mnoho prostředků Azure do ne internetu směrovatelné sítě. Funkce integrace virtuální sítě umožňuje aplikacím přístup k prostředkům ve virtuální síti nebo prostřednictvím virtuální sítě. Integrace virtuální sítě neumožňuje privátní přístup k vašim aplikacím.

Bezserverový vývojový model

Bezserverový je vývojový model nativní pro cloud, který vývojářům umožňuje vytvářet a spouštět aplikace bez nutnosti spravovat servery. Díky bezserverovým aplikacím poskytovatel cloudových služeb automaticky zřizuje, škáluje a spravuje infrastrukturu požadovanou pro spuštění kódu. Servery stále existují v bezserverovém modelu. Jsou abstrahovány od vývoje aplikací.

Vytváření kontejnerů

Kontejnerizace je balení softwarového kódu se všemi potřebnými komponentami, jako jsou knihovny, architektury a další závislosti. Aplikace je izolovaná ve vlastním kontejneru.

CI/CD

Kontinuální integrace a průběžné doručování (CI/CD) je metoda, jak často dodávat aplikace zákazníkům zavedením automatizace do fází vývoje aplikací. Hlavními koncepty CI/CD jsou kontinuální integrace, průběžné doručování a průběžné nasazování. Všechny možnosti Azure podporují většinu nástrojů CI/CD. Můžete například použít řešení, jako jsou Azure Pipelines nebo Jenkins.

Opensourcový vyhledávací web

Vyhledávání jsou nedílnou součástí jakékoli aplikace. Pokud jsou rychlost, výkon a vysoká dostupnost kritické, může být vyhledávání terabajtů a petabajtů dat náročné. Při hostování aplikací v Javě v Azure naplánujte hostování souvisejících instancí Solr a Elasticsearch. Případně zvažte migraci do služby Azure Cognitive Search.

Nástroje pro velké objemy dat

Nástroje pro velké objemy dat umožňují automatizaci toku dat mezi softwarovými systémy. Podporují škálovatelné, robustní a zjednodušené grafy směrování dat spolu s logikou mediace systému. Využívají se k vytváření kanálů živého toku dat a streamování aplikací. Zjistěte, jak může být Nifi a Apache Kafka v Azure vhodné pro vaše potřeby.

Možnosti podpory

Pomocí následující tabulky identifikujte potenciální možnosti pro váš typ aplikace. AKS a Virtual Machines podporují všechny typy aplikací, ale vyžadují, aby váš tým převzal větší zodpovědnost.

Azure Spring Apps App Service Java SE App Service Tomcat App Service JBoss EAP Azure Container Apps AKS Virtual Machines
Dávkové nebo naplánované úlohy
Integrace virtuální sítě
Bez serveru
Vytváření kontejnerů
Dostupnost oblastí Azure Podrobnosti Podrobnosti Podrobnosti Podrobnosti Podrobnosti Podrobnosti Podrobnosti

Také se podívejte na tento rozhodovací strom.

Diagram znázorňuje rozhodovací strom pro Javu ve službách Azure.

Stáhněte si soubor Visia tohoto diagramu.

Sestavování nebo migrace aplikací v Javě

Pokud chcete sestavit nebo migrovat aplikace v Javě, identifikujte platformu Javy vašich aplikací. Mezi oblíbené platformy patří Java SE, Jakarta EE a MicroProfile.

Java SE

Java Platform, edice Standard (Java SE) je výpočetní platforma pro vývoj a nasazení přenosného kódu pro desktopová a serverová prostředí. Mezi oblíbené projekty založené na Javě SE patří Spring Boot, Spring Cloud, Spring Framework a Apache Tomcat.

Jakarta EE

Jakarta EE je opensourcová budoucnost cloudově nativní podnikové Javy. Jedná se o sadu specifikací, které rozšiřují Javu SE o podnikové funkce, jako jsou distribuované výpočetní služby a webové služby. Aplikace Jakarta EE spouštějí referenční moduly runtime. Tyto moduly runtime můžou být mikroslužby nebo aplikační servery. Zpracovávají transakce, zabezpečení, škálovatelnost, souběžnost a správu komponent, které aplikace nasadí.

MicroProfile

Projekt MicroProfile poskytuje kolekci specifikací navržených tak, aby vývojářům pomohl vytvářet mikroslužby nativní pro cloud v Javě enterprise. Quarkus a Open Liberty jsou oblíbené implementace MicroProfile.

Souhrn sestavení nebo migrace

Následující tabulka obsahuje informace o sestavení nebo migraci podle typu aplikace a služby Azure.

Typ Java SE MicroProfile JarkartaSE
Virtuální počítač IaaS
VMware Tanzu IaaS
Azure Kubernetes Service Kontejner
Red Hat OpenShift Kontejner
Azure Container App PaaS
JBoss EAP PaaS App Service
Apache Tomcat PaaS App Service
Java SE PaaS App Service
Azure Spring Apps PaaS

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky