Rozhodnutí, jestli je pro vaše obchodní potřeby vhodná bezserverová architektura

Dokončeno

Abyste se mohli lépe rozhodnout, jestli je bezserverová architektura pro vás tím pravým, podíváme se, co to vlastně je.

Co je výpočetní prostředí bez serveru?

Bezserverové výpočetní prostředí se dá označit pojmem Funkce jako služba (FaaS), nebo se dá považovat za mikroslužbu hostovanou na cloudové platformě. Vaše obchodní logika se spouští jako funkce a vy nemusíte ručně zřizovat nebo škálovat infrastrukturu. Infrastrukturu spravuje poskytovatel cloudu. Aplikace automaticky horizontálně navyšuje nebo vertikálně snižuje kapacitu podle zatížení. Azure nabízí několik způsobů, jak tento druh architektury vytvořit. Dvěma nejběžnějšími přístupy jsou Azure Logic Apps a Azure Functions, což je zaměření tohoto modulu.

Co je Azure Functions?

Azure Functions je platforma pro aplikace bez serveru. Umožňuje vývojářům hostovat obchodní logiku, která se dá spustit bez zřizování infrastruktury. Azure Functions poskytuje vnitřní škálovatelnost a účtují se vám jenom použité prostředky. Kód funkce můžete napsat v jazyce podle vašeho výběru, včetně jazyka C#, Javy, JavaScriptu, Pythonu a PowerShellu. Součástí je také podpora správců balíčků, jako je NuGet a npm, takže můžete ve své obchodní logice používat oblíbené knihovny.

Výhody řešení bezserverové architektury

Výpočetní prostředí bez serveru je skvělou volbou pro hostování kódu obchodní logiky v cloudu. Díky nabídkám bezserverové architektury, jako je třeba služba Azure Functions, můžete psát vlastní obchodní logiku ve vámi vybraném jazyce. Získáte automatické škálování, nemáte žádné servery ke správě a účtují se vám poplatky podle toho, co se používá – ne v rezervovaném čase. Tady jsou některé další charakteristiky bezserverového řešení, které byste měli zvážit.

Vyhnete se předimenzování infrastruktury

Předpokládejme, že jste zřídili servery virtuálních počítačů a nakonfigurovali je s dostatečným dostatek prostředků pro zvládnutí doby načítání ve špičce. Když je zatížení lehké, potenciálně platíte za infrastrukturu, kterou nepoužíváte. Bezserverové výpočetní prostředí pomáhá řešit problém předimenzování automatickým vertikálním škálováním nahoru i dolů a platit budete jen v případě, že vaše funkce provádí výpočetní úlohy.

Bezstavová logika

Bezstavové funkce jsou skvělými kandidáty pro výpočetní prostředí bez serveru; instance funkcí jsou vytvářeny a rušeny podle potřeby. Pokud je vyžadováno uchování stavu, může být uložen v přidružené službě úložiště.

Řízení událostmi

Funkce jsou řízené událostmi. Spouští se pouze v reakci na událost (označovanou jako trigger), například přijetí požadavku HTTP nebo přidání zprávy do fronty. Aktivační událost můžete nakonfigurovat jako součást definice funkce. Tento přístup zjednodušuje váš kód, neboť umožňuje deklarovat, odkud data pocházejí (vazba triggeru/vstupu) a kam putují (výstupní vazba). Nemusíte psát kód pro sledování front, objektů blob, center atd. Můžete se soustředit čistě na obchodní logiku.

Funkce můžete používat v tradičních výpočetních prostředích

Funkce jsou klíčovou součástí bezserverové architektury, ale představují také obecnou výpočetní platformu pro spouštění libovolného typu kódu. Pokud se potřeby vaší aplikace změní, můžete projekt vzít a nasadit ho v bezserverovém prostředí. Díky tomu můžete flexibilně spravovat škálování, spouštět ve virtuálních sítích a dokonce i zcela izolovat funkce.

Nevýhody řešení bezserverové architektury

Bezserverové výpočetní prostředky, které poskytuje Služba Azure Functions v plánu Consumption, nejsou vždy vhodným řešením pro hostování obchodní logiky. Tady je několik charakteristik funkcí, které mohou ovlivnit vaše rozhodnutí, zda vaše služby hostovat v bezserverovém výpočetním prostředí.

Doba spouštění

Ve výchozím nastavení mají funkce časový limit 5 (5) minut. Tento časový limit je možné prodloužit na maximálních 10 minut. Pokud vaše funkce vyžaduje k provedení potřebné akce více než 10 minut, je třeba ji hostovat na virtuálním počítači. Pokud se navíc vaše služba aktivuje v reakci na požadavek HTTP a vrací hodnotu v odpovědi HTTP, je časový limit omezen na 2,5 minuty. Existuje ale také možnost s názvem Durable Functions , která umožňuje orchestrovat provádění více funkcí bez jakéhokoli časového limitu.

Frekvence spouštění

Další charakteristikou je frekvence provádění. Pokud očekáváte, že klienti budou vaši funkci spouštět nepřetržitě, je vhodné odhadnout využití a vypočítat náklady na používání funkcí odpovídajícím způsobem. Může se stát, že hostování služby na virtuálním počítači bude levnější.

Když se vaše funkce škáluje, může se každých 10 sekund vytvořit jenom jedna instance aplikace funkcí, a to až po 200 instancí. Mějte na paměti, že každá instance může obsluhovat více souběžných spuštění, takže neexistuje žádný limit počtu přenosů, které dokáže jedna instance zpracovat. Různé druhy aktivačních událostí mají různé požadavky na škálování, proto prozkoumejte vaše možnosti a seznamte se s jejich omezeními.