Co je Azure Functions?

Dokončeno

Sledujete webový tým Společnosti Tailspin Space Game, který popisuje, jak nejlépe zajistit nové marketingové požadavky řízené správou. Tým potřebuje do procesu DevOps integrovat některé bezserverové technologie, konkrétně Azure Functions.

Pojďme se spojit s týmem.

Nové požadavky

Irwin: Děkujeme za schůzku na tak krátkém oznámení. Věci se rozjíždějí a marketingový tým učinil některé sliby, které by mohly komplikovat věci pro nás všechny. Opravdu se jim líbí naše stránky. Myslí si, že žebříček lze použít k propagaci hry, jak se blížíme ke konečnému spuštění a dále. Chtějí ho škálovat mimo to, co jsme původně naplánovali.

Mara: To je skvělé, že? Pracujeme v Azure, abychom mohli škálovat službu podle potřeby.

Irwin: Jen chtějí, aby kdokoli mohl integrovat data tabulky výsledků do svých vlastních aplikací. Myslí si, že by bylo opravdu skvělé mít stejné možnosti žebříčku na našich stránkách, ve hře, na herních revizích a dokonce i na externí blogy a osobní weby. Jednou z výzev je, že tým herního stroje aktuálně vlastní produkční databázi, ze které načítáme data z tabulky výsledků. Myslí si, že by do budoucna měli vytvářet a vlastnit rozhraní API.

Andy: Mara, máte nějaké myšlenky?

Mara: Jsem si jistá, že můžeme něco vymyslet. Tady jsou moje poznámky:

  • Potřebujeme rychle dodat, abychom našli řešení, kde můžeme používat náš kód a dovednosti.
  • Potřebujeme refaktorovat malou část funkcí do nezávislé služby.
  • Musíme minimalizovat administrativní režii v produkčním prostředí.
  • Musíme mít obrovský rozsah, aniž bychom se zavázali k masivnímu závazku.

Tým kývá hlavou na znamení souhlasu.

Funguje na mém počítači

Schůzka se rozešla. Příští ráno andy nadšeně vyskočí do kanceláře Mara pro improvizovanou chatu.

Andy: Mám to! Našel jsem řešení, které splňuje všechny naše požadavky na rozhraní API pro tabulku výsledků. Jedná se o bezserverovou nabídku s názvem Azure Functions.

Mara: To je skvělé! Jak dlouho bude trvat, než budeme mít něco, co můžeme demonstrovat?

Andy: Už jsem něco prozkoumal. Naklonoval jsem naše úložiště na GitHubu a refaktoroval kód výsledkové tabulky do nového projektu Azure Functions. Zpřístupňuje data tabulky výsledků prostřednictvím jednoduchého požadavku HTTP GET. Aktualizoval(a) jsem také web tak, aby používal tento koncový bod při žádosti o tabulku výsledků a někdo jiný může udělat totéž.

Mara: Zní to přesně tak, co potřebujeme. Mohu pomoci rozšířit stávající CI/CD pipeline tak, aby podporovala vytváření a nasazování stejným způsobem, jako to děláme pro hlavní webový projekt.

Poznámka

V tomto modulu se nezaměříme na to, jak připojit aplikaci ke službě Azure Functions. Pokud vás zajímá, můžete zkontrolovat zdrojový kód. Kód používá runtime Azure Functions, přizpůsobený pro jazyk C#, ke čtení dat tabulky výsledků z Azure Functions.

Co je Azure Functions?

Azure Functions je specifická nabídka v širším spektru bezserverových výpočetních technologií Azure. Poskytuje vývojářům snadný způsob vytváření jednoduchých funkcí, které existují v bezstavovém bezserverovém prostředí. Funkce se dají aktivovat různými metodami, jako jsou požadavky HTTP, změny dat v úložišti, příjem zprávy z fronty a další. Další informace o vazbách triggerů najdete v konceptech triggerů a vazeb Azure Functions.

Tým Tailspin pro tento scénář vybral Službu Azure Functions, protože splňoval všechny její potřeby:

  • Potřebujeme rychle dodat, abychom našli řešení, kde můžeme používat náš kód a dovednosti.
    • Řešení můžeme rychle sestavit jako aplikaci ASP.NET Core, která používá kód, který už máme.
  • Potřebujeme refaktorovat malou část funkcí do nezávislé služby.
    • Můžeme dodávat nezávislou funkci bez jiné plochy aplikace, na které bychom se mohli starat.
  • Musíme minimalizovat administrativní režii v produkčním prostředí.
    • Azure Functions eliminuje nutnost starat se o hostitelské prostředí.
  • Musíme mít obrovský rozsah, aniž bychom se zavázali k masivnímu závazku.
    • bezserverové technologie mají prakticky neomezené škálování, které se může automaticky zvětšovat a snížit rychleji než virtuální počítače nebo aplikační služby.

Azure Functions a další bezserverové technologie nejsou vždy vhodné pro každé řešení. Později probereme, kde najdete zdroje informací, které vám pomůžou vybrat správnou technologii pro tuto úlohu.