5 nativních služeb AWS, které dokážou vybudovat end-to-end platformu bez serveru

Vybudování automatizovaného softwarového systému znamenalo nastavení více serverů s vyhrazenou konfigurací CPU, pamětí, úložištěm a dalšími zdroji po mnoho let. Dále byl vytvořen tým administrátorů pro správu těchto systémů. Poté vývojový tým převzal infrastrukturu a začal vytvářet procesy, které propojují servery.

Tento proces může být komplikovaný, protože zahrnuje mnoho různých skupin, které spolupracují na společném cíli. Tyto střety zájmů pak mohou být problémem.

Může to být také docela nákladné. To vyžaduje, abyste měli na výplatní pásce administrátory. Servery, které běží nepřetržitě, spotřebovávají zdroje, přestože nejsou používány.

Chcete-li zachovat nejlepší výkon v průběhu času, potřebujete řešení automatického škálování, které automaticky škáluje prostředky serveru.

Cloudová platforma má jednu výhodu: umožňuje vytvořit end-to-end architekturu bez nutnosti nastavení serverového clusteru. Z pohledu administrativy není co udržovat.

Toto je nákladově efektivní možnost pro začínající podniky a fáze projektů s minimálním životaschopným produktem (MVP). Je to dobrý výchozí bod, pokud je obtížné předvídat budoucí výrobní zatížení a aktivitu uživatelů. Zde může být obtížné určit konfiguraci clusterových serverů.

Automatizace procesů prostřednictvím bezserverových cloudových služeb je to, čím architektura bez serveru vyniká. Propojuje služby a vytváří výsledky, které jsou podobné tradičním clusterovým serverům.

Toto je příklad budování takové architektury pomocí pouze nativních služeb AWS.

Vyzvednutí toku služeb bez serveru

Představte si, že byste chtěli vytvořit platformu pro shromažďování různých dat a obrázků (nebo fotografií) infrastruktury některých konkrétních aktiv (může to být jakýkoli výrobní nebo užitkový majetek).

  • Aby bylo možné provádět budoucí analýzy, je nutné, aby byla příchozí data nejprve zpracována.
  • Po použití obchodních pravidel back-endová procedura uloží vypočítané výstupy jako normalizované informace do relační databáze.
  • Front-end aplikace, který zobrazuje normalizovaná čistá data, umožňuje uživatelům prohlížet výsledky.

Podívejme se, jaké komponenty by architektura mohla obsahovat.

Lopaty AWS S3

Zdroj: aws.amazon.com

Kbelíky Amazon S3 jsou skvělým způsobem, jak ukládat soubory nebo obrázky v cloudu AWS. Cena úložiště na kyblíku S3 je pozoruhodně nízká. A co víc, zavedení politiky životního cyklu bucketu S3 tuto cenu dále snižuje.

  Jak sloučit dokumenty Microsoft Word

Taková zásada automaticky přesune starší soubory do různých tříd segmentů S3, jako je archiv nebo přístup k hlubokému archivu. Třídy se pak liší také rychlostí přístupu, ale u starých dat to bude menší problém. Slouží především pro přístup k archivovaným datům v případě urgentní události, nikoli pro potřeby standardního provozu.

  • Svá data můžete uspořádat do podsložek.
  • Měli byste nastavit příslušná omezení oprávnění.
  • Přidejte tagy do segmentů, aby byly snadno identifikovatelné a pro možné použití v rámci dynamických zásad segmentů S3.
  • Kbelík je designově bez serveru. Je to prostě úložný prostor pro vaše data.

Kbelík S3 je designově bez serveru. Je to prostě úložný prostor pro vaše data.

Databáze AWS Athena

Zdroj: aws.amazon.com

Athena usnadňuje vytvoření jezera základních dat AWS. Je to databáze bez serverů, která k ukládání svých dat používá S3 bucket. Organizace dat je udržována pomocí strukturovaných formátů souborů, jako jsou parkety nebo soubory CSV (comma-separated value). Kbelík S3 uchovává soubory a Athena na ně odkazuje, kdykoli procesy vyberou data z databáze.

Jen si uvědomte, že Athena nepodporuje různé funkce, které jsou jinak považovány za standard, například aktualizační příkazy. To je důvod, proč se na Athenu musíte dívat jako na velmi jednoduchou možnost.

Podporuje však indexování a dělení. Může také velmi snadno horizontálně škálovat, protože je to stejně složité jako přidávání nových bucketů do infrastruktury. Pro jednoduché, ale funkční vytvoření datového jezera to ve většině případů stále může stačit.

Pro dobrý výkon je zásadní výběr nejlepšího návrhu dat se zaměřením na budoucí použití. Je nezbytné, abyste měli jasno ve způsobu, jakým chcete data vybírat. Znovuvytváření tabulek později, jakmile již existují a jsou naplněny velkým množstvím dat, je obtížné.

Athena DB je skvělá volba a dobře se hodí pro váš cíl, pokud chcete vytvořit jednoduchý a neměnný datový fond, který lze snadno horizontálně škálovat v průběhu času.

Databáze AWS Aurora

Zdroj: aws.amazon.com

Athena DB vyniká v ukládání nespravovaných dat. Tímto způsobem chcete uložit svůj původní obsah, abyste maximalizovali jeho budoucí opětovné použití. Poskytování vybraných výsledků front-endové aplikaci je však pomalé.

  Co je konverzační analýza a proč byste se měli obtěžovat?

Jednou z nejlepších možností, hlavně z pohledu snadno proveditelného nastavení, je databáze Aurora běžící v režimu bez serveru.

Aurora má daleko k základní databázi. Je to jedno z nejpokročilejších řešení nativních relačních databází v AWS. Je to také vysoce komplexní řešení nativní relační databáze, které se zlepšuje s každou verzí.

Aurora je jedinečná, protože může běžet v režimu bez serveru, čímž se odlišuje od ostatních relačních služeb. Režim funguje takto:

  • Chcete-li nakonfigurovat cluster Aurora, použijte konzolu AWS. Budete muset zadat standardní úrovně CPU a RAM a také maximální interval funkce automatického škálování. To ovlivní výkon, který může cluster Aurora dynamicky přidat nebo odebrat. Na základě aktuálního využití databáze se AWS rozhodne zvýšit nebo snížit.
  • Cluster Aurora se nespustí, pokud uživatel nebo proces nezahájí skutečný požadavek. Například když se spustí plánované dávkové zpracování. Nebo pokud aplikace provede back-end volání API pro načtení dat z databáze. Databáze se automaticky otevře a zůstane aktivní po předem stanovenou dobu po dokončení procesů požadavku.
  • Cluster Aurora se automaticky vypne, pokud v databázi již není žádná práce.

Abych to ještě jednou zdůraznil, Aurora DB bez serveru běží pouze tehdy, když musí dělat skutečnou práci. Automaticky spouštěný cluster se opět vypne, pokud nezpracovává žádnou práci. Skutečná práce je to, za co platíte, a ne váš čas nečinnosti.

Bezserverová Aurora je plně spravována AWS a nevyžaduje administrátora.

AWS Amplify

Amplify nabízí platformu bez serveru pro rychlé nasazení front-end aplikací vytvořených pomocí knihoven JavaScript a React. Není potřeba nastavovat clusterové servery. Použijte konzolu AWS k přímému nasazení kódu nebo použijte automatizovaný kanál DevOps.

Chcete-li získat data uložená v databázích, můžete volat rozhraní API typu back-end. Tato volání umožňují přístup ke skutečným datům v aplikaci front-end. Hlavní optimalizaci výkonu na back-endu by měl provádět tým. Možnost pomalé odezvy v uživatelském rozhraní můžete ještě dále snížit, pokud přímo ve voláních rozhraní API navrhnete efektivní příkazy výběru.

Funkce kroku AWS

Zdroj: aws.amazon.com

I když jsou všechny hlavní součásti systému bezserverové, nezaručuje to zcela bezserverovou architekturu. To je možné pouze v případě, že všechny dávkové procesy mezi komponentami jsou bez serveru.

  Chrome nyní v adresách skrývá WWW a HTTPS://. Zajímáš se?

Funkce AWS Step poskytují nejlepší řešení v cloudu AWS. Propojený seznam funkcí AWS Lambda tvoří funkci krokování. Tyto funkce vytvářejí vývojový diagram, který má jasné počáteční a koncové stavy. Funkce lambda, obvykle napsaná v jazycích Python nebo Node JS, je spustitelný kousek kódu, který zpracovává vše, co je potřeba.

Níže je uveden příklad, jak můžete provést funkci kroku:

  • AWS spouští automatickou funkci lambda vždy, když do složky S3 přijde nový soubor. Po analýze souboru jej lambda načte do Atheny. Lambda před uzavřením ukládá své výsledky buď ve formátu CSV na bucket S3 (nebo v tabulce sledování databáze).
  • Tento výsledek pak použije další lambda k provedení dalších kroků. To může zahrnovat volání modelu strojového učení a transformaci podmnožiny z nových dat do normalizovaných tabulek. Posledním krokem může být načtení dat do databáze Aurora.
  • Funkce krok spojuje tyto lambdy dohromady a tvoří dávkový tok. Je dokonce možné nechat provést jinou krokovou funkci místo kroku jiné kořenové krokové funkce. Tímto způsobem je možné pokrýt mnoho scénářů.
  • Tento tok bez serveru má jednu hlavní nevýhodu: každá funkce lambda může běžet maximálně 15 minut. Rozdělení toku na menší funkce lambda to může učinit méně problematickým.

    Je možné volat více lambda funkcí současně v jednom kroku, což v podstatě znamená paralelizovat krok s více lambda prováděnými současně. Než budete pokračovat, počkejte na dokončení všech paralelních zpracování lambda. Poté pokračujte k dalšímu zpracování lambda.

    Závěrečná slova

    Bezserverová architektura nabízí jedinečnou příležitost vytvořit cloudovou platformu, která pokryje celé systémové prostředí. Tato platforma je horizontálně škálovatelná a má přitom nízké provozní náklady.

    Je to perfektní řešení pro projekty s omezeným rozpočtem. Je to vynikající možnost průzkumu, obvykle když nikdo nezná realitu výrobního zatížení. To je zvláště důležité poté, co úspěšně zaregistrujete všechny uživatele. Projektové týmy mohou přesto získat celkový přehled o tom, jak systém funguje. Můžete mít všechny tyto výhody a přesto nemusíte přijímat kompromisy.

    Toto pokrytí nebude dostatečné pro všechny případy, zejména ty, které zahrnují vysoké využití CPU. Cloud AWS se však neustále vyvíjí, pokud jde o případy použití bez serveru. Obvykle je dobré provést důkladný průzkum, než se rozhodnete pro bezserverovou variantu pro svůj další cloudový projekt AWS.

    Dále se podívejte na nejlepší databáze bez serveru pro moderní aplikace.