Alkalmazástelepítési típusok
A Java-alkalmazások többféleképpen is üzembe helyezhetők a felhőben. Ez a lecke a különböző lehetőségeket ismerteti, így a következő leckében jobban megismerheti az Azure által nyújtott szolgáltatásokat.
Virtuális gépek, tárolók vagy platform szolgáltatásként?
A fő kérdés az, hogy az alkalmazást virtuális gépen (VM-en), tárolón belül vagy szolgáltatásként (PaaS) szeretné-e üzembe helyezni.
A virtuális gépekhasználatával egy olyan világban találja magát, amely hasonlít egy helyszíni vagy klasszikus adatközponti környezetre. Az Azure előre konfigurált virtuális gépeket biztosít, amelyek a fő operációs rendszereket (Windows és Linux) futtatják, és ezeket a gépeket konfigurálni és karbantartani kell.
Javasoljuk, hogy először alkalmazza ezt a megoldást, mert ez a legközelebbi ahhoz, amit a legtöbb vállalat már használ, mielőtt a felhőbe költöznének. Általában saját konfigurációkezelő szoftvert telepítenek, telepítik kedvenc Java-verziójukat, majd a Korábban megszokott módon futtathatják a Java-számítási feladatukat.
A virtuálisgép-megoldás akkor működik jól, ha van egy tapasztalt üzemeltetési csapata, amely konfigurálja és karbantartja őket, és ha konkrét használati esetekkel rendelkezik. Előfordulhat például, hogy natív kódtárakat vagy valamilyen védett szoftvert használ, például az Oracle WebLogic Servert vagy az IBM WebSphere Application Servert.
A tárolókesetén továbbra is a legtöbb vezérlést a virtuális gépeken használhatja, de kevesebb művelettel. Telepítheti a saját Java virtuális gépét (JVM) vagy bizonyos szoftvereket, és a tárolók helyileg vagy bármely felhőszolgáltatón futnak.
Mivel a tárolók nagy szabadságot biztosítanak, a virtuális gépekhez hasonló problémákat tapasztalnak. Ha saját JVM-et ad meg, szükség szerint frissítenie és javítania kell. Ennek eredményeképpen a Docker-rendszerképek jó folyamatos integrációt és folyamatos teljesítést (CI/CD) igénylő eszközláncot igényelnek a tárolók megfelelő karbantartásához. Mivel a Docker-rendszerképek helyileg futtathatók, és könnyebbek a virtuális gépeknél, nagyszerű fejlesztői élményt nyújtanak.
A szolgáltatásplatform megoldással a felhőszolgáltató kezeli a legtöbb karbantartási és üzemeltetési terhet. Az operációsrendszer-frissítések, a Java-javítások, a biztonság és a megfelelőség mind rendelkezésre állnak. Ennek eredményeképpen ez a lehetőség általában biztonságosabb és kevésbé költséges. Emellett skálázhatósági funkciókkal is rendelkezik, amelyek lehetővé teszik, hogy az alkalmazás jobban alkalmazkodjon az ügyfelek igényeihez. Emellett a terhelés alatt jobb teljesítményt és alacsonyabb költségeket eredményez, ha kisebb a forgalom.
Egy PaaS-megoldással többet érhet el. Beállíthatja az automatikus konfigurációt, kezelheti és betöltheti a titkos kulcsokat (például az Azure Key Vault használatával), monitorozhatja az alkalmazást, elindíthat egy élő profilkészítési munkamenetet, és engedélyezheti a leállási idő nélküli üzembe helyezést.
Üzembe helyezési lehetőségek
Akár virtuális gépeket, tárolókat, akár PaaS-megoldást használ, java-alkalmazásait általában kétféleképpen helyezheti üzembe a felhőben:
- Forráskód üzembe helyezési: A forráskódot egy Git-adattárban véglegesíti, és a felhőszolgáltató futtat egy folyamatot, amely lefordítja, összeállítja és csomagolja az alkalmazást.
- JAR, WAR vagy EAR fájl üzembe helyezési: Az alkalmazást általában végrehajtható JAR -fájlként (Java ARchive) csomagolja, de a WAR (Web Application ARchive), az EAR (Enterprise Application ARchive) és más fájlformátumok is lehetségesek. Ezután a felhőszolgáltató futtatja a végrehajtható fájlt.
Ez a két üzembe helyezési lehetőség a Java-alkalmazások futtatásának klasszikus módja. Mindkét beállítás esetében a buildelési folyamat általában hasonló, és a fő különbség az, hogy hol fut a folyamat. Egyszerűbbé teszi a felhőszolgáltató számára a buildelést, és ezzel a megközelítéssel a felhőszolgáltató saját biztonsági ellenőrzéseket és javításokat alkalmaz. Az alkalmazás helyi létrehozásával vagy egy CI/CD-platform, például a GitHub Actions használatával nagyobb rugalmasságot és vezérlést érhet el.
Kiszolgáló nélküli függvények
A kiszolgáló nélküli függvények, vagy pontosabban az Azure Functions különböző megoldások keverékei, amelyeket láttunk, és egy nagyon specifikus funkciót kínálunk: a kiszolgáló nélküli függvények rövid ideig futnak. A függvényeket általában egy esemény, például EGY HTTP-kérés ébreszti fel, és néhány percig "forró" marad, amíg vissza nem alszik.
A függvények megosztják a jellemzőiket a korábban ismertetett PaaS-megoldással. Az Azure-ban a PaaS-megoldás (Azure App Service) és a kiszolgáló nélküli megoldásunk (Azure Functions) technikailag hasonló, és közös kódot és szolgáltatásokat oszt meg.
Az üzembe helyezési lehetőségek esetében a függvények általában JAR-fájlokkal működnek. Más lehetőségek is elérhetők, például a Docker, de kevésbé népszerűek, és általában nem is teljesítenek. Ennek az az oka, hogy a mögöttes platform nem tudja ugyanúgy optimalizálni őket, mint a JAR-fájlok esetében.
A kiszolgáló nélküli függvényeket természetükből adódóan kifejezetten kódolni kell. A szolgáltatásaik attól függenek, hogy melyik felhőszolgáltatótól futnak, és rövid élettartamuk megnehezíti a hagyományos megoldások, például a gyorsítótárazás vagy a HTTP-munkamenetek replikációjának használatát.
A szerver nélküli függvények jól skálázhatók, és az alacsony igénybevételű környezetek számára a legkedvezőbb árat kínálják. Ugyanakkor reagálhatnak a legnagyobb terhelésű forgalomra.