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.
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:
- Asir Vedamuthu Selvasingh | Hlavní programový manažer
- Hang Wang | Product Manager
- Xinyi Zhang | Hlavní manažer pm
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- Přehled služby Azure Container Apps
- Azure Kubernetes Service
- Dokumentace ke službě Azure Spring Apps
- Integrace virtuální sítě Azure
- Virtuální počítače v Azure