Java-alkalmazások üzembe helyezése magabiztosan és egyszerűen

A Java-ökoszisztéma olyan különböző technológiákat tartalmaz, mint a Java Standard kiadás, a Jakarta Enterprise kiadás (a Java Enterprise kiadás és a J2 Enterprise kiadás utódja), a Spring, számos alkalmazáskiszolgáló és egyéb keretrendszer. Bármit is tesz a Javával – alkalmazás létrehozása, keretrendszer használata és alkalmazáskiszolgáló futtatása – Azure-támogatás a számítási feladatot számos lehetőséggel. Hasonlóképpen Azure-támogatás minden alkalmazásarchitektúrát – a virtuális gépeken vagy tárolókban futó monolitikus alkalmazásoktól a teljes mértékben felügyelt szolgáltatásokon futó natív, mikroszolgáltatás-alapú alkalmazásokig.

A Java-alkalmazás futtatásához általában egy alkalmazáskiszolgálón – az alkalmazásokat futtató Java virtuális gép (JVM) egy példányán – helyezi üzembe. Önálló alkalmazásokat is létrehozhat beágyazott alkalmazáskiszolgálóval. Akárhogy is, az alkalmazáskiszolgáló általános alkalmazásinfrastruktúrát és funkcionális képességeket biztosít, a webtárolókkal együttműködve dinamikus, testreszabott választ ad vissza egy ügyfélkérésre. Az ügyfélkérés olyan szoftverösszetevők használatával dolgozható fel, amelyek lehetnek például servletek, dinamikus lapok, vállalati bab, támogató osztályok, függő kódtárak és adatillesztők.

A Tomcat, a JBoss EAP, a WildFly, a WebLogic és a WebSphere népszerű alkalmazáskiszolgálók. Hasonlóképpen a Spring Boot, a Quarkus és az Open Liberty is népszerű keretrendszer a beágyazott alkalmazáskiszolgálókkal rendelkező önálló alkalmazások létrehozásához. Azure-támogatás az összeset, így bármilyen Java-alkalmazáskiszolgálót használhat, és magabiztosan és könnyedén üzembe helyezheti a Java-alkalmazást.

Spring Boot- vagy Java-alkalmazás üzembe helyezése bármely alkalmazáskiszolgálón – Tomcat és Jakarta Enterprise kiadás

Az Azure-ban a Java és bármely alkalmazáskiszolgáló bármilyen verzióját és terjesztését korlátozás nélkül, saját fizikai infrastruktúra kezelése nélkül futtathatja. Ön dönti el, hogy mennyi vezérlést szeretne, vagy hogy az Azure mennyi napi felügyeletet szeretne az Ön számára olyan lehetőségekkel, mint a virtuális gépek, a tárolók és a teljes körűen felügyelt szolgáltatások. Ha kereskedelmileg támogatott Java-alkalmazáskiszolgálókat vagy keretrendszereket használ – például VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server vagy IBM WebSphere, Liberty vagy OpenLiberty – az Azure közösen kifejlesztett és támogatott ajánlatokat kínál mindegyikhez.

Telepítési beállítások

Az Azure számos üzembe helyezési lehetőséget kínál Java-alkalmazásokhoz, beleértve az infrastruktúra szolgáltatásként (IaaS), a tárolók szolgáltatásként (CaaS) és a szolgáltatásként nyújtott platform (PaaS) üzemeltetési szolgáltatásait. Meglévő Java-alkalmazásokat áttelepíthet virtuális gépekre, több módon tárolóba helyezheti őket, vagy üzembe helyezheti őket teljes körűen felügyelt PaaS-szolgáltatásokban a könnyű kezelés, a fejlesztői és üzemeltetési hatékonyság, valamint a teljes tulajdonosi költség optimalizálása érdekében.

Virtuális gépek és tárolók

Az Azure-beli virtuális gépekre vagy tárolókra való üzembe helyezéskor a Java bármely disztribúcióját és verzióját – és bármely alkalmazáskiszolgálót – használhatja. A választás teljes mértékben önön múlik. Ne feledje, hogy manuálisan kell konfigurálnia az infrastruktúrát és annak összetevőit. Az ebbe a kategóriába tartozó üzembehelyezési lehetőségek a következők:

  • Azure Virtual Machines, amely lehetővé teszi a virtualizálás rugalmasságát anélkül, hogy meg kellene vásárolnia és karbantartania az azt futtató fizikai hardvert. A virtuális gépet azonban továbbra is fenn kell tartania a rajta futó szoftverek telepítésével, konfigurálásával és javításával.

  • Azure-beli virtuálisgép-méretezési csoportok, amelyek lehetővé teszi a terheléselosztásos virtuális gépek egy csoportjának létrehozását és kezelését. A virtuálisgép-példányok száma automatikusan növelhető vagy csökkenthető a pillanatnyi igényeknek megfelelően vagy egy meghatározott ütemezés szerint.

  • Az Azure Kubernetes Service (AKS), amely leegyszerűsíti a felügyelt Kubernetes-fürtök üzembe helyezését azáltal, hogy kezeli az Összes üzemeltetési többletterhelést – beleértve a kritikus feladatokat, például a karbantartást és az állapotfigyelést. Az AKS támogatja a kapacitás rugalmas kiépítését, beleértve az eseményvezérelt automatikus skálázást és a KEDA-eseményindítókat.

  • Az Azure Red Hat OpenShift magas rendelkezésre állású, teljes körűen felügyelt OpenShift-fürtöket biztosít igény szerint. Az OpenShift hozzáadott értékű funkciókat biztosít a Kubernetes kiegészítéséhez, így kulcsrakész tárolóplatform, amely továbbfejlesztett fejlesztői és operátori élményt nyújt.

Bár bármilyen Java-futtatókörnyezetet üzembe helyezhet ezeken az IaaS- és CaaS-szolgáltatásokon, javasoljuk, hogy az alábbi futtatókörnyezetek egyikét használja:

Mindkét build ingyenesen elérhető a helyi fejlesztéshez és teszteléshez, valamint az éles használatra kész bináris fájlok bármilyen platform vagy DevOps-eszköz használatával történő elkészítéséhez – licencdíj fizetése nélkül. Kényelmesen ajánljuk őket. Ha ezen buildek egyikét használja, ha bármilyen probléma merül fel, és rendelkezik az Azure-ra vonatkozó megfelelő támogatási csomaggal, megnyithat egy Azure-támogatás jegyet – további költségek nélkül. Ennek ellenére érdemes rámutatni arra, hogy ezek a javaslatok csak ilyenek - az OpenJDK más szabadon elérhető buildjei között ajánlott lehetőségek a könnyű támogatás érdekében. További információ: Java-támogatás az Azure-ban és az Azure Stackben.

Diagram a

Az IaaS- és CaaS-telepítési lehetőségek mindegyike lehetővé teszi az Apache Tomcat alkalmazáskiszolgáló egyszerű üzembe helyezését. Ha olyan kereskedelmi ajánlatot használ , mint például a Spring Runtime a VMware-ből, a Red Hat JBoss EAP-ja, az Oracle WebLogic Server vagy az IBM WebSphere szolgáltatása, az Azure közösen kifejlesztett és támogatott üzemeltetési lehetőségeket kínál ezektől a gyártóktól is. Ezekről később, a Java-ökoszisztéma-partnerekkel közösen létrehozott és támogatott megoldásokról lesz szó.

Teljes körűen felügyelt (PaaS) szolgáltatások

A Java-alkalmazások Azure-ban való futtatásához teljes körűen felügyelt PaaS-szolgáltatások a következő lehetőségeket tartalmazzák:

  • Az Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások üzembe helyezését az Azure-ban – kódmódosítások nélkül. A szolgáltatás kezeli a Spring Boot-alkalmazások összes infrastruktúrát. Ez az infrastruktúra átfogó monitorozást és diagnosztikát, konfigurációkezelést, szolgáltatásfelderítést, biztonságot, alkalmazás-életciklust, közzétételi naplókat és metrikákat, CI-/CD-integrációt, kék-zöld üzembe helyezéseket és egyebeket tartalmaz. Az Azure Spring Apps a Pivotal (a VMware része) együttműködésben lett kifejlesztve, és a Microsoft és a VMware közösen üzemelteti és támogatja.
  • Azure-alkalmazás Service, egy HTTP-alapú szolgáltatás webalkalmazások, REST API-k és mobil háttérrendszerek üzemeltetésére – beépített biztonsággal, terheléselosztással, automatikus skálázással és automatizált felügyelettel. Az App Service olyan átfogó DevOps-képességeket is támogat, mint a folyamatos üzembe helyezés, a csomagkezelés, az előkészítési környezetek, az egyéni tartományok és a TLS/SSL-tanúsítványok.
  • Az Azure Container Apps lehetővé teszi mikroszolgáltatások és tárolóalapú alkalmazások futtatását kiszolgáló nélküli platformon. Gyakori felhasználási módok az API-végpontok üzembe helyezése, a háttérfeldolgozó alkalmazások üzemeltetése, az eseményvezérelt feldolgozás kezelése és a mikroszolgáltatások futtatása. Az Azure Container Appsre épülő alkalmazások dinamikusan méretezhetők HTTP-forgalom, eseményvezérelt feldolgozás, PROCESSZOR- vagy memóriaterhelés, illetve bármely KEDA által támogatott skálázó alapján.

Az Azure Spring Appshez és Azure-alkalmazás szolgáltatáshoz készült Java-futtatókörnyezeteket a Microsoft biztosítja és tartja karban. Csak az OpenJDK LTS-disztribúcióit támogatják, a Java 8-hoz készült Eclipse Adoptium Temurin és a Java 11-hez és 17-hez készült OpenJDK Microsoft-build használatával. Ennek ellenére vannak bizonyos kikötések - például a közösen fejlesztett és támogatott partnerajánlataink (amelyeket később tárgyalunk) saját futtatókörnyezetet használnak.

Az Azure Container Apps esetében, mivel saját tárolórendszerképeket kell létrehoznia és kezelnie a forráskódból, szabadon használhatja a Java - és az alkalmazáskiszolgáló - disztribúcióját és verzióját.

Kiszolgáló nélküli függvények

Néha nincs szükség teljes Java-alkalmazásra. A valós idejű adatfeldolgozáshoz például csak egy kis kódra lehet szükség, amely nagy léptékben aktiválható – akár több millió eseményből is. Az ilyen események az Azure Event Hubson keresztül tölthetők be, az Azure Functionsben nagy léptékben futó eseményvezérelt kiszolgáló nélküli Java-kóddal feldolgozhatók, és egy adattárba, például az Azure Cosmos DB-be menthetők.

Közösen létrehozott és támogatott megoldások Java-ökoszisztéma-partnerekkel

A Microsoft együttműködött a Java-ökoszisztéma vezető gyártóival, hogy a Java Azure-on való futtatásához az osztályon belüli legjobb megoldásokat nyújtsa – a közösen fejlesztett és támogatott felügyelt szolgáltatásoktól kezdve a népszerű Java-alkalmazáskiszolgálókhoz készült Azure Marketplace-ajánlatokig. A népszerű alkalmazásmonitorozási eszközöket is integráltuk, amelyeket a jelen dokumentáció későbbi részében ismertetünk.

Diagram az

Azure Spring Apps (pivotal/VMware)

A Microsoft és a Pivotal közösen fejlesztett Azure Spring Apps egy teljes mértékben felügyelt szolgáltatás, amely számos gyakori kihívást old meg a fejlesztők, az informatikai operátorok és a DevOps-csapatok számára a Spring Boot-alkalmazások nagy léptékű futtatásakor. Elvonja a Spring-alapú alkalmazások és a Spring Cloud köztes szoftverösszetevők futtatásához szükséges infrastruktúra összetettségét, így a Java-fejlesztők a kódjukra összpontosíthatnak, miközben lehetővé teszik az Azure számára a dinamikus skálázást, a biztonsági javításokat, a megfelelőségi szabványokat, a magas rendelkezésre állást stb.

JBoss EAP (Red Hat)

A Red Hat nyílt forráskódú megoldásokat biztosít a vállalat számára. Az egyik ilyen megoldás a JBoss Enterprise Application Platform (EAP), egy népszerű alkalmazáskiszolgáló platform, amely Java Enterprise kiadás Certified és Jakarta Enterprise kiadás kompatibilis mind a webes profilban, mind a teljes platformon. Red Hat is közreműködője a Java szabványok, OpenJDK, MicroProfile, Jakarta Enterprise kiadás, és Quarkus.

A Red Hattal együttműködve red hat JBoss Enterprise Application Platformot (EAP) kínáltunk a Azure-alkalmazás Szolgáltatásban – lehetővé téve, hogy a Java-fejlesztők a Jakarta Enterprise kiadás-alkalmazásaikat az App Service-ben üzembe helyezhessék anélkül, hogy külön Red Hat-előfizetést vagy -licencet igényelnénk mindkét vállalat integrált támogatásával. Hasonló közös ajánlatokat is elindítottunk az Azure-beli virtuális gépeken, az Azure-beli virtuálisgép-méretezési csoportokon és az Azure RedHat OpenShiften (ARO) – ez utóbbit a Microsoft és a Red Hat közösen üzemelteti.

WebLogic Server (Oracle)

Az Oracle-vel együttműködve az Oracle WebLogic Servert (WLS) azure-beli virtuális gépeken és az Oracle WebLogic Servert az Azure Kubernetes Service-en szállítjuk. Ezek a megoldások megkönnyítik az Azure-ba való egyszerű migrálást olyan kazánlemezműveletek automatizálásával, mint a virtuális hálózatok/tárolók kiépítése, a Linux/Java-erőforrások telepítése, a WebLogic Server beállítása és a biztonság hálózati biztonsági csoporttal való konfigurálása.

WebSphere/Liberty/Open Liberty (IBM)

Együttműködtünk az IBM-mel, és közösen fejlesztettünk ki megoldásokat a WebSphere Application Serverhez (WAS) azure-beli virtuális gépeken, a WebSphere Libertyhez és az Open Libertyhez az Azure Kubernetes Service-ben, valamint a WebSphere Liberty és az Open Liberty az Azure Red Hat OpenShiften. További információ: Mik azok a megoldások, amelyek az IBM WebSphere termékcsaládot futtatják az Azure-ban? Ezek a megoldások megkönnyítik a WebSphere számítási feladatok Azure-ba való migrálását, és automatizálják a magas rendelkezésre állású WebSphere-fürt beállításához szükséges erőforrás-kiépítési feladatok többségét. A partnerség számos használati esetet fed le, a meglévő kritikus fontosságú számítási feladatoktól a natív felhőbeli alkalmazásokig.

Apache Kafka a Confluent Cloudon (Confluent)

Korábban a Confluent Kafka szolgáltatását használni kívánt Azure-ügyfeleknek külön kellett létrehozniuk és kezelnie az erőforrásokat és a felhasználókat az Azure-ban és a Confluent Cloudban. A fájdalom enyhítése érdekében a Confluent és a Microsoft együttműködött az Apache Kafka for Confluent Cloud szolgáltatással, amely egy Azure Marketplace-ajánlat, amely teljes körűen felügyelt szolgáltatásként biztosítja az Apache Kafkát – beleértve a Confluent Cloud-erőforrások Azure Portalon, Azure CLI-n vagy Azure Management SDK-n keresztüli létrehozását és kezelését.

Ma az ügyfélélmény egyszerűbb, biztonságosabb és zökkenőmentesebb. Az ügyfelek egységes munkafolyamat részeként kiépíthetik és kezelhetik a Confluent Cloud-erőforrásokat az Azure-erőforrásaikkal együtt, és kihasználhatják az Azure Functionshez, az Azure Blob Storage-hoz, az Azure Event Hubshoz, az Azure Data Lake Storage Gen2-hez és a Microsoft SQL Serverhez készült teljes körűen felügyelt összekötőket. A fejlesztők továbbra is kódokat használhatnak apache Kafka-ügyfélkódtárak használatával.

Összegzés

A partnerekkel való közös fejlesztés sok ilyen ajánlat esetében folyamatos, folyamatos munka. Mivel partnereink folyamatosan újulnak az ajánlataikon, szorosan együttműködünk velük, hogy gyorsan elérhetővé tegyük ugyanazokat az újításokat az Azure-ban, hogy az ügyfelek magabiztosan és egyszerűen üzembe helyezhessék és méretezhessék Java-alkalmazásaikat.

Összefoglalva, Azure-támogatás a számítási feladatot rengeteg választási lehetőséggel, függetlenül attól, hogy mit csinál a Javával. Bármilyen Java-alkalmazást létrehozhat, bármilyen keretrendszert használhat, bármilyen alkalmazáskiszolgálót futtathat, és bármilyen alkalmazásarchitektúrát támogathat – a virtuális gépeken vagy tárolókban futó monolitikus alkalmazásoktól kezdve a teljes mértékben felügyelt szolgáltatásokon futó natív, mikroszolgáltatás-alapú alkalmazásokig.

Az ebben a cikkben ismertetett üzembehelyezési lehetőségekhez tartozó

Következő lépés

Skálázás a végpontok közötti biztonsággal, monitorozással és automatizálással