Typy nasazení aplikací

Dokončeno

Existuje několik způsobů, jak nasadit aplikace Java do cloudu. V této lekci se seznámíte s různými možnostmi, abyste v další lekci lépe porozuměli službám, které Azure poskytuje.

Virtuální počítače, kontejnery nebo platforma jako služba?

Hlavní otázkou je, jestli chcete nebo potřebujete nasadit aplikaci na virtuální počítač, uvnitř kontejneru nebo jako řešení paaS (platforma jako služba).

  • S virtuálními počítačijste ve světě, který se podobá místnímu nebo klasickému prostředí datacentra. Azure poskytuje sadu předkonfigurovaných virtuálních počítačů, na kterých běží hlavní operační systémy (Windows a Linux), a budete je muset nakonfigurovat a udržovat.

    Doporučujeme, abyste toto řešení na začátku přijali, protože je nejblíže tomu, co většina podniků už používá, než se přesunou do cloudu. Obvykle instalují svůj vlastní software pro správu konfigurace, nainstalují si svou oblíbenou verzi Javy a pak můžou spouštět úlohy v Javě podobným způsobem jako v minulosti.

    Řešení virtuálního počítače funguje dobře, pokud máte zkušený provozní tým, který je nakonfiguruje a udržuje, a pokud máte konkrétní případy použití. Můžete například použít některé nativní knihovny nebo nějaký proprietární software, například Oracle WebLogic Server nebo IBM WebSphere Application Server.

  • S kontejnery máte stále většinu kontroly, kterou máte s virtuálními počítači, ale s menším provozním úsilím. Můžete nainstalovat vlastní prostředí Java Virtual Machine (JVM) nebo určitý konkrétní software a kontejnery se budou spouštět místně nebo na libovolném poskytovateli cloudu.

    Vzhledem k tomu, že kontejnery nabízejí spoustu volnosti, trpí některými stejnými problémy jako virtuální počítače. Pokud zadáte vlastní prostředí JVM, budete ho muset podle potřeby aktualizovat a opravit. V důsledku toho image Dockeru vyžadují pro správnou údržbu kontejnerů dobrou sadu nástrojů kontinuální integrace a průběžného doručování (CI/CD). Vzhledem k tomu, že image Dockeru můžou běžet místně a jsou světlejší než virtuální počítače, poskytují také skvělé prostředí pro vývojáře.

  • S platformou jako službou řešení zajišťuje poskytovatel cloudu většinu zatížení údržby a provozu. K dispozici jsou všechny aktualizace operačního systému, opravy Java, zabezpečení a dodržování předpisů. V důsledku toho je tato možnost obvykle bezpečnější a méně nákladná. Dodává se také s některými funkcemi škálovatelnosti, které by vaší aplikaci měly umožnit, aby se lépe přizpůsobila potřebám vašich zákazníků. Výsledkem je také lepší výkon při zatížení a nižší náklady, pokud je provoz nižší.

    Více toho můžete dosáhnout pomocí řešení PaaS. Můžete nastavit automatickou konfiguraci, spravovat a načítat tajemství (například pomocí služby Azure Key Vault), monitorovat aplikaci, spustit živou relaci profilace a povolit nasazení bez výpadku.

Možnosti nasazení

Bez ohledu na to, jestli používáte virtuální počítače, kontejnery nebo řešení PaaS, můžete aplikace Java obvykle nasadit do cloudu jedním ze dvou způsobů:

  • nasazení zdrojového kódu: Potvrdíte zdrojový kód do úložiště Git a poskytovatel cloudu spustí proces, který aplikaci zkompiluje, sestaví a zabalí.
  • nasazení souborů JAR, WAR nebo EAR: Zabalíte svou aplikaci, obvykle jako spustitelný soubor JAR (Java ARchive), ale WAR (Web Application ARchive), EAR (Enterprise Application ARchive) a další formáty souborů jsou také možné. Poskytovatel cloudu pak spustí spustitelný soubor.

Tyto dvě možnosti nasazení jsou klasické způsoby spouštění aplikací v Javě. U obou možností je proces sestavení obvykle podobný a hlavní rozdíl spočívá v tom, kde se tento proces spouští. Umožnit poskytovateli cloudu provést sestavení je jednodušší a s tímto přístupem poskytovatel cloudu použije vlastní kontroly zabezpečení a opravy. Vytvořením aplikace místně nebo pomocí platformy CI/CD, jako je GitHub Actions, získáte větší flexibilitu a kontrolu.

Bezserverové funkce

Bezserverové funkce, konkrétně Azure Functions, jsou kombinací různých řešení, která jsme viděli, a nabízejí velmi specifickou funkci: bezserverové funkce jsou určené pro krátké časové období. Obvykle je funkce probuzena událostí, jako je například požadavek HTTP, a zůstane "horký" po dobu několika minut, dokud se nevrátí do režimu spánku.

Funkce sdílejí funkce s řešením PaaS, které jsme popsali dříve. V Azure jsou naše řešení PaaS (Azure App Service) a naše bezserverové řešení (Azure Functions) technicky podobné a sdílejí některé běžné kódy a služby.

U možností nasazení funkce obvykle pracují se soubory JAR. Další možnosti, jako je Docker, jsou dostupné, ale jsou méně oblíbené a obvykle také nefungují. Důvodem je to, že základní platforma je nedokáže optimalizovat stejným způsobem jako soubory JAR.

Podle své povahy musí být bezserverové funkce speciálně kódované. Jejich funkce závisí na poskytovateli cloudu, na kterém běží, a jejich krátká životnost zkomplikuje používání tradičních řešení, jako je ukládání do mezipaměti nebo replikace relací HTTP.

Bezserverové funkce se můžou dobře škálovat a nabízejí nejlepší cenu pro prostředí s nízkým využitím. Zároveň mohou reagovat na nejnáročnější dopravní zatížení.