Megosztás a következőn keresztül:


Java az Azure Container Appsben – áttekintés

Az Azure Container Apps bármilyen tárolóalapú Java-alkalmazást futtathat a felhőben, miközben rugalmas lehetőségeket biztosít az alkalmazások üzembe helyezéséhez.


Ha Tárolóalkalmazásokat használ a tárolóalapú Java-alkalmazásokhoz, a következőt kapja:

  • Költséghatékony skálázás: A Használat csomag használatakor a Java-alkalmazások nullára méretezhetők. Ha kevés az igény az alkalmazásra, automatikusan csökkennek a projektek költségei.

  • Üzembe helyezési lehetőségek: Az Azure Container Apps integrálható a Buildpacksszel, amely lehetővé teszi, hogy közvetlenül Egy Maven-buildből, összetevőfájlokon vagy saját Dockerfile-fájlon keresztül telepítsen.

    • JAR-telepítés (előzetes verzió):: A tárolóalkalmazást közvetlenül jar-fájlból helyezheti üzembe.

    • WAR-üzembe helyezés (előzetes verzió):: A tárolóalkalmazást közvetlenül egy WAR-fájlból helyezheti üzembe.

    • IDE-támogatás: A tárolóalkalmazást közvetlenül az IntelliJ-ből telepítheti.

  • Automatikus memóriaillesztés (előzetes verzió):A Container Apps optimalizálja, hogy a Java virtuális gép (JVM) hogyan kezeli a memóriát, így a lehető legtöbb memória érhető el a Java-alkalmazások számára.

  • Környezeti változók összeállítása (előzetes verzió): Egyéni kulcs-érték párokat konfigurálhat a Java-rendszerképek forráskódból történő összeállításának szabályozásához.

Ez a cikk részletesen ismerteti a Java-alkalmazások Azure Container Appsen való létrehozása során szükséges információkat.

Üzembehelyezési típusok

A tárolóalapú alkalmazások futtatása általában azt jelenti, hogy létre kell hoznia egy Dockerfile-fájlt az alkalmazáshoz, de a Java-alkalmazások Container Appsen való futtatása néhány lehetőséget kínál.

Típus Leírás Buildpacks használata Dockerfile-t használ
Forráskód összeállítása Közvetlenül a Container Appsben telepítheti a forráskódból. Igen Nem
Összetevő összeállítása Létrehozhat egy Maven-buildet a Container Appsben való üzembe helyezéshez Igen Nem
Dockerfile Manuálisan is létrehozhatja a Dockerfile-t, és teljes mértékben átveheti az irányítást az üzembe helyezés felett. Nem Igen

Feljegyzés

A Buildpacks üzemelő példányai támogatják a JDK 8., 11., 17. és 21. verzióját.

Alkalmazástípusok

A különböző alkalmazástípusok egyéni tárolóalkalmazásként vagy Container Apps-feladatként implementálhatók. Az alábbi táblázat segítségével eldöntheti, hogy melyik alkalmazástípus a legmegfelelőbb a forgatókönyvhöz.

A táblázatban felsorolt példák nem a teljesség igénye nélkül, hanem a különböző alkalmazástípusok szándékának legjobb megértéséhez szolgálnak.

Típus Példák Implementálás...
Webalkalmazások és API-végpontok Spring Boot, Quarkus, Apache Tomcat és Jetty Egyéni tárolóalkalmazás
Konzolalkalmazások, ütemezett tevékenységek, feladatfuttatók, kötegelt feladatok SparkJobs, ETL-feladatok, Spring Batch-feladat, Jenkins-folyamatfeladat Container Apps-feladat

Hibakeresés

A Java-alkalmazás Container Appsben való hibakeresése során mindenképpen ellenőrizze a Java folyamatban lévő ügynökét a naplóstreamek és a konzol hibakeresési üzeneteinél.

Hibaelhárítás

A Java-alkalmazások fejlesztése során tartsa szem előtt az alábbi elemeket:

  • Alapértelmezett erőforrások: Alapértelmezés szerint egy alkalmazás fél processzort és 1 GB-ot kínál.

  • Állapot nélküli folyamatok: A tárolóalkalmazás be- és kiskálázása során a rendszer új folyamatokat hoz létre és állít le. Ügyeljen arra, hogy előre tervezze, hogy adatokat írjon megosztott tárolókba, például adatbázisokba és fájlrendszer-megosztásokra. Ne számítson arra, hogy a közvetlenül a tároló fájlrendszerére írt fájlok bármely más tároló számára elérhetők lesznek.

  • A nullára skálázás az alapértelmezett érték: Ha biztosítania kell, hogy az alkalmazás egy vagy több példánya folyamatosan fusson, akkor az igényeinek leginkább megfelelő méretezési szabályt kell meghatároznia.

  • Váratlan viselkedés: Ha a tárolóalkalmazás nem tud buildelést, indítást vagy futtatásokat végrehajtani, ellenőrizze, hogy az összetevő elérési útja megfelelően van-e beállítva a tárolóban.

  • A Buildpack támogatási problémái: Ha a Buildpack nem támogatja a függőségeket vagy a Java szükséges verzióját, hozzon létre saját Dockerfile-t az alkalmazás üzembe helyezéséhez. Hivatkozás céljából megtekintheti a minta Dockerfile-fájlt .

  • SIGTERM- és SIGINT-jelek: Alapértelmezés szerint a JVM kezeli SIGTERM és SIGINT nem továbbítja azokat az alkalmazásnak, kivéve, ha elfogja ezeket a jeleket, és ennek megfelelően kezeli őket az alkalmazásban. A Container Apps mind a SIGINT folyamatvezérlést, mind SIGTERM a folyamatot használja. Ha nem rögzíti ezeket a jeleket, és az alkalmazás váratlanul leáll, elveszítheti ezeket a jeleket, hacsak nem tárolja őket a tárolóban.

  • Hozzáférés a tárolólemezképekhez: Ha az összetevő vagy a forráskód üzembe helyezését az alapértelmezett beállításjegyzékkel együtt használja, akkor nincs közvetlen hozzáférése a tárolólemezképekhez.

Figyelés

Az összes szabványos megfigyelhetőségi eszköz együttműködik a Java-alkalmazással. Amikor a Java-alkalmazásokat a Container Appsen való futtatásra készíti, tartsa szem előtt a következő elemeket:

  • Metrikák: A Java virtuális gép (JVM) mérőszámai kritikus fontosságúak a Java-alkalmazások állapotának és teljesítményének monitorozásához. Az összegyűjtött adatok betekintést nyújtanak a memóriahasználatba, a szemétgyűjtésbe, a JVM szálszámába. A metrikákat ellenőrizheti az alkalmazások állapotának és stabilitásának biztosítása érdekében.

  • Naplózás: Alkalmazás és hibaüzenetek küldése a stdoutstderror naplóstreamben való felületre vagy annak érdekében, hogy azok felszínre lépjenek. Kerülje a közvetlen naplózást a tároló fájlrendszerére, ahogyan az gyakori a népszerű naplózási szolgáltatások használatakor.

  • Teljesítményfigyelési konfiguráció: A teljesítményfigyelő szolgáltatásokat külön tárolóként helyezheti üzembe a Container Apps-környezetben, hogy közvetlenül hozzáférhessen az alkalmazáshoz.

Diagnosztika

Az Azure Container Apps beépített diagnosztikai eszközöket kínál kizárólag Java-fejlesztőknek. Ez a támogatás leegyszerűsíti az Azure Container Appsben futó Java-alkalmazások hibakeresését és hibaelhárítását a hatékonyabb és egyszerűbb használat érdekében.

  • Dinamikus naplózói szint: Lehetővé teszi a különböző szintű naplóadatok elérését és ellenőrzését kódmódosítások nélkül, vagy az alkalmazás újraindítására kényszerítve. A dinamikus naplózószint beállítása hivatkozás céljából megtekinthető.

Méretezés

Ha meg kell győződnie arról, hogy az előtérbeli alkalmazások kérelmei ugyanarra a kiszolgálóra érkeznek, vagy az előtéralkalmazás több tároló között van elosztva, engedélyezze a ragadós munkameneteket.

Biztonság

A Container Apps-futtatókörnyezet leállítja a TLS/SSL protokollt a Container Apps-környezetben.

Memóriakezelés

A Java-alkalmazásban a memóriakezelés optimalizálásához biztosíthatja, hogy a JVM-memóriaillesztés engedélyezve legyen az alkalmazásban.

A memória gibibájtban (Gi) és CPU-magpárokban van megmérve. Az alábbi táblázat a tárolóalkalmazás számára elérhető erőforrások tartományát mutatja be.

Küszöbérték Processzormagok Memória Gibibyte-ben (Gi)
Minimum 0,25 0,5
Maximum 4 8

A magok 0,25 magos növekményekben érhetők el, a memória pedig 2:1 arányban érhető el. Ha például 1,25 magra van szüksége, 2,5 Gi memóriával rendelkezik a tárolóalkalmazás számára.

Feljegyzés

A JDK 9- és alacsonyabb verzióját használó alkalmazások esetében mindenképpen adjon meg egyéni JVM-memóriabeállításokat az Azure Container Apps memóriafoglalásának megfelelően.

Java-összetevők támogatása

Az Azure Container Apps a következő Java-összetevőket támogatja felügyelt szolgáltatásként:

  • Az Eureka Server for Spring: Szolgáltatásregisztráció és -felderítés kulcsfontosságú követelmények az élő alkalmazáspéldányok listájának fenntartásához. Az alkalmazás ezt a listát használja a bejövő kérések útválasztásához és terheléselosztásához. Az egyes ügyfelek manuális konfigurálása időt vesz igénybe, és emberi hiba lehetőségét eredményezi. Az Eureka Server leegyszerűsíti a szolgáltatásfelderítés kezelését azáltal, hogy szolgáltatásregisztrációs adatbázisként működik, ahol a mikroszolgáltatások regisztrálhatják magukat, és felfedezhetnek más szolgáltatásokat a rendszeren belül.

  • A Config Server for Spring: Config Server központosított külső konfigurációkezelést biztosít az elosztott rendszerekhez. Ez az összetevő úgy lett kialakítva, hogy kezelje a konfigurációs beállítások kezelésének kihívásait egy natív felhőbeli környezetben több mikroszolgáltatásban .

  • A Gateway for Spring: Gateway for Spring hatékony és hatékony módszert kínál az API-kérések irányítására, kezelésére és kezelésére egy mikroszolgáltatás-architektúra részeként. API-átjáróként szolgál, amely a külső kéréseket különböző szolgáltatásokhoz irányítja, és különböző képességeket, például szűrést, terheléselosztást és egyebeket ad hozzá.

  • Rendszergazda a Springhez: A Spring-felügyelet által felügyelt összetevő felügyeleti felületet biztosít az olyan Spring Boot-webalkalmazásokhoz, amelyek működtető végpontokkal rendelkeznek. A felügyelt összetevők integrációt és felügyeletet biztosítanak a tárolóalkalmazáshoz, lehetővé téve, hogy a tárolóalkalmazást a Spring-rendszergazda összetevőhöz kösse.

Következő lépések