Bezserverové aplikace: Architektura, vzory a implementace v Azure

Snímek obrazovky znázorňuje titulek elektronické knihy Bez serveru

EDICE v3.0 – aktualizace na Azure Functions v3

DOWNLOAD available at: https://aka.ms/serverlessbookpdf

PUBLIKOVAL(A)

Microsoft Developer divize, .NET a Visual Studio produktových týmů

Rozdělení Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2018-2020 by Microsoft Corporation

All rights reserved. Žádná část obsahu této knihy se nesmí reprodukovat ani přenášet žádným způsobem ani žádným způsobem bez psaného souhlasu vydavatele.

Tato kniha je poskytována tak, jak je, a vyjadřuje autorova názory a názory. Názory, názory a informace vyjádřené v této knize, včetně adres URL a dalších internetových webových odkazů, se mohou změnit bez předchozího upozornění.

Některé zde uvedené příklady slouží pouze k znázornění a jsou smyšlené. Neměli byste z nich vyvozovat žádné skutečné vztahy či spojení.

Microsoft a ochranné známky uvedené na webové stránce "Ochranné známky" jsou ochranné známky skupiny https://www.microsoft.com společností Microsoft.

Mac a macOS jsou ochranné známky společnosti Apple Inc.

Všechny ostatní značky a loga jsou vlastností příslušných vlastníků.

Autor:

Položku Likness, senior .NET Data Program Manager, Microsoft Corp.

Přispěvatel:

Ilail Phillip, vedoucí vedoucí cloudový vedoucí pracovník, Microsoft Corp.

Editory:

Bill , senior content developer, Microsoft Corp.

Unira Wenzel, Senior Content Developer, Microsoft Corp.

Účastníci a kontroloři:

Steve Smith, Vlastník, Ailis Services.

Úvod

Bez serveru je vývoj cloudových platforem ve směru čistě cloudového nativního kódu. Bez serveru přivádí vývojáře blíže k obchodní logice a přitom je izoluje od problémů s infrastrukturou. Je to vzor, který neznamená "žádný server", ale spíše "menší server". Bez serveru je kód řízený událostmi. Kód může být aktivován cokoli od tradičního webového požadavku HTTP do časovače nebo výsledku nahrání souboru. Infrastruktura bez serveru umožňuje okamžité škálování, aby splňovala elastické požadavky, a nabízí mikroúčtování skutečně "za to, co využijete". Bez serveru vyžaduje nový způsob uvažování a přístupu k vytváření aplikací a není to správné řešení pro každý problém. Jako vývojář se musíte rozhodnout:

  • Jaké jsou výhody a nevýhody bez serveru?
  • Proč byste pro své vlastní aplikace měli uvažovat o bez serveru?
  • Jak můžete sestavovat, testovat, nasazovat a udržovat kód bez serveru?
  • Kde má smysl migrovat kód do bez serveru v existujících aplikacích a jaký je nejlepší způsob, jak tuto transformaci provést?

O této příručce

Tato příručka se zaměřuje na vývoj aplikací, které používají bez serveru, nativní pro cloud. Kniha zvýrazňuje výhody a zpřístupňuje potenciální nevýhody vývoje aplikací bez serveru a poskytuje průzkum architektur bez serveru. Mnoho příkladů použití bez serveru je znázorněno společně s různými vzory návrhu bez serveru.

Tato příručka vysvětluje komponenty platformy Azure bez serveru a zaměřuje se konkrétně na implementaci bez serveru pomocí Azure Functions. Dozvíte se o aktivačních událostech a vazbách a o tom, jak implementovat bez serverů aplikace, které spoléhají na stav pomocí durable functions. A konečně obchodní příklady a případové studie vám pomůžou poskytnout kontext a referenční rámec, aby bylo možné určit, jestli je bez serveru správný přístup pro vaše projekty.

Vývoj cloudových platforem

Bez serveru je vychytávek několika iterací cloudových platforem. Vývoj začal fyzickým kovum v data centru a postupoval přes infrastrukturu jako službu (IaaS) a PaaS (Platforma jako služba).

Vývoj z místního prostředí na bez serveru

Před cloudem existovala mezi vývojem a provozem rozpoznatelná hranice. Nasazení aplikace znamenalo zodpovězení nesčetných otázek, jako jsou:

  • Jaký hardware by se měl nainstalovat?
  • Jak je zabezpečený fyzický přístup k počítači?
  • Vyžaduje datové centrum nepřerušitelný zdroj napájení (UPS)?
  • Kam se odesílaly zálohy úložiště?
  • Měl by být redundantní výkon?

Seznam pokračuje dál a režie byla obrovská. V mnoha situacích se ODDĚLENÍ IT museli vypořádat s neuvěřitelně plýtváním. Plýtvání bylo způsobeno předělem serverů jako záložních počítačů pro zotavení po havárii a pohotovostních serverů, aby bylo možné škálovat na více kapacity. Zavedení virtualizační technologie (například Hyper-V)s Virtual Machines (VM) naštěstí řešte na IaaS (Infrastruktura jako služba). Virtualizovaná infrastruktura umožnila provozu nastavit standardní sadu serverů jako páteřní síť, což vede k flexibilnímu prostředí schopnému zřizovat jedinečné servery "na vyžádání". Důležitější je, že virtualizace nastaví fázi pro použití cloudu k poskytování virtuálních počítačů jako služby. Společnosti by se mohly snadno obávat redundantního napájení nebo fyzických počítačů. Místo toho se zaměřili na virtuální prostředí.

IaaS stále vyžaduje vysoké režijní náklady, protože operace jsou stále zodpovědné za různé úlohy. Mezi tyto úlohy patří:

  • Opravy a zálohování serverů.
  • Instalace balíčků.
  • Udržování operačního systému v provozu.
  • Monitorování aplikace

Další vývoj snížil režii tím, že poskytuje PaaS (Platforma jako služba). U PaaS poskytovatel cloudu zpracovává operační systémy, opravy zabezpečení a dokonce i požadované balíčky pro podporu konkrétní platformy. Místo vytváření virtuálního počítače, kdy se pak konfiguruje .NET a stojí servery služby Internetová informační služba (IIS), si vývojáři jednoduše vyberou cílovou platformu, jako je webová aplikace nebo koncový bod rozhraní API, a nasadí kód přímo. Otázky týkající se infrastruktury jsou omezené na:

  • Jakou velikost služeb potřebujete?
  • Jak služby škálovat na více než jednu (přidat další servery nebo uzly)?
  • Jak služby navýší kapacitu (zvýší kapacitu hostitelských serverů nebo uzlů)?

Bez serveru dále abstrahuje servery tím, že se zaměřuje na kód řízený událostmi. Místo platformy se vývojáři mohou soustředit na mikroslužbu, která dělá jednu věc. Dvě klíčové otázky k vytvoření bez serveru kódu jsou:

  • Co aktivuje kód?
  • Co kód dělá?

Bez serveru je infrastruktura abstrahovaná. V některých případech už vývojář nemá obavy o hostitele. Bez ohledu na to, jestli je instance služby IIS, Kestrel, Apache nebo jiného webového serveru spuštěná pro správu webových požadavků, vývojář se zaměřuje na trigger HTTP. Trigger poskytuje pro požadavek standardní datovou část pro více platforem. Datová část nejen zjednodušuje proces vývoje, ale usnadňuje testování a v některých případech usnadňuje přenos kódu napříč platformami.

Další funkcí bez serveru je mikroúč fakturování. Webové aplikace běžně hostuje koncové body webového rozhraní API. V tradičních implementacích IaaS, IaaS a dokonce i PaaS se prostředky pro hostování rozhraní API platí průběžně. To znamená, že platíte za hostování koncových bodů, i když k nim nemáte přístup. Často zjistíte, že jedno rozhraní API se nazývá více než jiné, takže se celý systém škáluje na základě podpory oblíbených koncových bodů. Bez serveru můžete škálovat každý koncový bod nezávisle a platit za využití, takže při volání rozhraní API nevzniknou žádné náklady. Migrace může v mnoha případech výrazně snížit průběžné náklady na podporu koncových bodů.

Co tato příručka nepokryje

Tato příručka konkrétně klade důraz na přístupy k architektuře a vzory návrhu a není podrobně probádá podrobnostem implementace Azure Functions, Logic Appsnebo jiných bez serverů. Tato příručka se nezachází například na pokročilé pracovní postupy s Logic Apps nebo funkce služby Azure Functions, jako je konfigurace sdílení prostředků mezi zdroji (CORS), použití vlastních domén nebo nahrání certifikátů SSL. Tyto podrobnosti jsou k dispozici prostřednictvím online Azure Functions dokumentaci.

Další zdroje informací

Kdo byste měli použít tohoto průvodce.

Tato příručka byla napsána pro vývojáře a architekty řešení, kteří chtějí vytvářet podnikové aplikace s .NET, které mohou používat bez serveru komponenty místně nebo v cloudu. Je užitečné pro vývojáře, architekty a technické tvůrce s rozhodovací pravomocí, kteří se zajímají o:

  • Porozumění výhodám a nevýhodám bez serveru při vývoji
  • Učení, jak přistupovat k architektuře bez serveru
  • Příklady implementací aplikací bez serveru

Jak používat tohoto průvodce

První část tohoto průvodce porovnává několik různých přístupů k architektuře a zkoumá, proč je bez serveru vhodná možnost. Zkoumá životní cyklus technologií i vývoje, protože rozhodnutí o architektuře mají vliv na všechny aspekty vývoje softwaru. Průvodce pak zkoumá případy použití a vzory návrhu a zahrnuje referenční implementace pomocí Azure Functions. Každá část obsahuje další zdroje informací o konkrétní oblasti. Průvodce končí prostředky pro názorné postupy a hands-on zkoumání implementace bez serveru.

Pošlete svůj názor

Průvodce a související ukázky se neustále vyvíjejí, takže vaše názory jsou vítané! Pokud máte komentáře k vylepšení této příručky, použijte oddíl zpětné vazby v dolní části každé stránky, která je postavená na GitHub problémy.