13 rámců pro vytváření aplikací bez serveru

Zajímá vás technologie Serverless? Máte chuť pustit se do nového projektu, ale nejste si jisti, kde začít?

Podívejte se na přehled nejpopulárnějších bezserverových frameworků, které můžete využít!

Výpočetní technika bez serveru je trendem mezi těmi, kteří oceňují myšlenku menší správy a více času na samotnou tvorbu. I když je tato technologie stále poměrně nová, mnoho vývojářů a inženýrů se snaží vyvíjet zajímavá řešení pro budoucnost bezserverových operací.

Jak jistě víte, Serverless neznamená doslova „bez serveru“. Znamená to spíše méně serverů a více funkcí. Pokud hledáte spolehlivou platformu FaaS (Functions as a Service) pro svůj následující projekt, projděte si náš předchozí článek o nejlepších bezserverových výpočetních platformách.

Jak už bylo řečeno, pojďme se podívat na dostupné frameworky. Nakonec se podíváme na některé vzrušující projekty, které se v oblasti Serverless vyvíjejí, takže zůstaňte s námi!

AWS Amplify

S frameworkem AWS Amplify můžete rychle vytvářet škálovatelné bezserverové aplikace pro web a mobilní zařízení a získat neomezenou flexibilitu. Konfigurujte své bezserverové back-endy s daty, úložištěm, ověřováním a dalšími funkcemi pomocí inteligentních pracovních postupů.

Připojte mobilní a webové aplikace ke stávajícím nebo novým zdrojům AWS s menším počtem řádků kódu. Pomocí několika kliknutí můžete hostovat a nasazovat jednostránkové webové aplikace, aplikace vykreslované na straně serveru a statické weby. Umožňuje také snadno spravovat obsah a uživatele aplikací.

AWS Amplify pomáhá špičkovým vývojářům mobilních a webových aplikací rychleji vytvářet kompletní aplikace na AWS a přizpůsobovat aplikaci, kdykoli je to potřeba. Amplify podporuje mnoho webových frameworků, jako je React, Angular, JavaScript, Vue.js, Next.js atd., a mobilní platformy jako iOS, Ionic, Flutter, Android a React Native.

Můžete se integrovat s mnoha komponentami uživatelského rozhraní Amplify a urychlit vývoj aplikací. Získejte mnoho funkcí a nástrojů, jako je ověřování, interakce, funkce, DataStore, správa uživatelů, API (REST, GraphQL), analýzy, AI/ML predikce, úložiště, PubSub, push notifikace atd. pro vývoj. Kromě toho máte k dispozici Managed Hosting, PR náhledy, CI/CD, vlastní domény a monitorování pro nasazení.

Midway

Získejte bezserverový framework Node.js pro vytváření tradičních aplikací na straně serveru, malých programů, mikroslužeb a tvorbu bezserverových služeb s Midway. Je napsán v TypeScriptu a používá mechanismus IoC (Inversion of Control) pro oddělení logiky aplikace a usnadňuje přirozenější vývoj velkých aplikací Node.js.

Midway může používat Express, EggJS nebo Koa jako základní frameworky. Poskytuje základní řešení jako GRPC, Dubbo.js, RabbitMQ a Socket.io pro nezávislé použití. Midway navíc funguje jako bezserverový webový framework Node.js pro full-stack nebo front-end vývojáře.

Midway vám umožňuje vytvářet aplikace nové generace, které běží na kontejnerech, VM, Alibaba Cloud, AWS a Tencent Cloud. Můžete jej také snadno integrovat s Vue a React. Najdete zde mnoho funkcí, jako jsou:

  • Seskupitelné a škálovatelné pluginy
  • Pokročilá skupinová kompatibilita a architektura middlewaru
  • Možnost oddělení a vrstvení aplikací
  • Zkušenosti s vývojem nové generace
  • Podporuje Koa middleware a zásuvné moduly Egg.

Webiny

Získejte vše potřebné pro architekturu, nasazení a sestavení bezserverových aplikací s Webiny, bezserverovým aplikačním frameworkem. Je určen pro různé případy použití. Můžete upravit architekturu, technologický stack a přizpůsobit se potřebám vaší organizace a projektu.

Vytvářejte obchodní weby a aplikace založené na SEO, směrování, předběžném vykreslování, zabezpečení, nasazení, sdružování a dalších funkcích. Vytvořte interní nebo externí rozhraní API extrahováním překladačů GraphQL. Nenechte se omezovat jednou aplikací; vytvářejte aplikace využívající různé databáze. Pro interakci s externími databázemi můžete použít ovladače databáze NodeJS.

Webiny poskytuje sdružování kódu, IaC (Infrastructure as Code), mechanismy nasazení a organizaci projektu. Přidejte produkt na začátek seznamu a nabídněte SaaS celému světu. Zabezpečte část nebo celé aplikace pomocí ACL (Access Control Lists) s vestavěným AWS Cognito a bezpečnostním rámcem.

Přidejte podporu pro Auth0, OKTA a další. Získáte bezhlavý CMS, tvůrce stránek, tvůrce formulářů, správce souborů a mnoho dalšího. Generujte standardní kód pomocí pluginů CLI z funkcí lambda do nových rozhraní API GraphQL.

Administrační UI Webiny obsahuje více než třicet různých komponent React. Získáte také DDoS ochranu, CDN a odolnost dat 11 9. Webiny šetří váš čas s pokusy, omyly a výzkumem.

AWS Chalice

Hledáte framework pro psaní bezserverových aplikací v Pythonu?

Vyzkoušejte AWS Chalice, který vám umožňuje vytvářet a nasazovat aplikace pomocí AWS Lambda.

Chalice poskytuje nástroj příkazového řádku pro vytváření, nasazení a správu vaší aplikace, rozhraní API založené na dekorátorech pro integraci s Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS a dalšími službami AWS.

Umožňuje vytvářet REST API, provádět periodicky spouštěné úlohy, propojovat funkce lambda s událostmi S3 a frontou SQS a další zdroje AWS. Po napsání kódu vám Chalice umožní rychle spustit a nasadit vaši aplikaci. Chalice podporuje všechny verze Pythonu, které AWS Lambda podporuje, včetně Pythonu 2.7, 3.6, 3.7 a 3.8.

Před nasazením aplikace nakonfigurujte všechny přihlašovací údaje. Pokud jste je ale už nakonfigurovali pro spuštění AWS CLI nebo boto3, můžete tento krok přeskočit. Po nasazení můžete provádět úpravy kdekoli je to potřeba a znovu nasadit změny. Získejte výukové programy, témata a reference API pro rozšíření vašich znalostí.

Zappa

Zappa je bezserverový framework pro vytváření aplikací v Pythonu. Usnadňuje tvorbu a nasazování bezserverových aplikací v Pythonu a událostmi řízených aplikací do API Gateway a AWS Lambda. Využijte nulovou údržbu, nulové prostoje a neomezenou škálovatelnost s minimálními náklady na aktuální nasazení.

Před instalací a konfigurací se ujistěte, že máte Python 3.x a účet AWS se správně nainstalovaným souborem přihlašovacích údajů AWS. Zappu můžete snadno nainstalovat pomocí pip.

Zappa automaticky nastaví nastavení nasazení. Jakmile je nastavení správně nakonfigurováno, nasaďte aplikaci do produkční fáze pomocí jediného příkazového řádku. Pokud chcete šablonu API Gateway CloudFormation, použijte příkaz `template`. Nasaďte Zappa na vlastní subdomény a doménová jména s certifikáty SSL, certifikáty AWS Certificate Manager a certifikáty Let’s Encrypt.

Povolte zabezpečené koncové body na API Gateway, jako je API klíč, zásady IAM, lambda autorizace API Gateway, autorizátor Cognito User Pool a zásady prostředků API Gateway. Navíc můžete nastavit proměnné prostředí, jako je lokální prostředí, vzdálené prostředí AWS a vzdálené prostředí prostřednictvím souboru S3.

Architect

Vytvářejte, nasazujte a udržujte novou generaci bezserverové infrastruktury postavené na cloudových funkcích AWS s kompletními lokálními, offline pracovními postupy a dalšími funkcemi.

Jedná se o poměrně propracovaný projekt, který vyžaduje, abyste si přečetli filozofii projektu a stránku s dokumentací jako celek.

Up

Up je framework, který vám pomáhá nasazovat bezserverové aplikace s neomezeným potenciálem škálovatelnosti. Můžete také použít Up pro nasazení statických webů, rozhraní API a dalšího. To vám dává flexibilitu pracovat na tom, co je pro vás skutečně důležité.

Naštěstí Up nasazuje tradiční instance HTTP serveru, takže se od vás nevyžaduje učit se nový protokol. Místo toho můžete použít svůj oblíbený framework, jako je Django nebo Express, abyste mohli začít.

Claudia.js

Claudia.js poskytuje vývojářům nástroje pro nasazování projektů založených na Node.js do systémů Lambda a API. Claudia automatizuje úlohy nasazení, konfiguraci a automaticky nastavuje vaše JavaScriptové prostředí pro moderní vývoj.

Co to pro vás znamená? S Claudií můžete nastartovat svou cestu k mikroslužbám během několika minut. To vám dává mnohem méně starostí a více času soustředit se na řešení skutečných problémů.

Mezi hlavní důvody, proč používat Claudii, patří:

  • Nasazujte, aktualizujte a spravujte své instance jediným příkazem
  • Bezproblémově funguje s balíčky NPM
  • Integrovaná základní struktura, která vám dává více prostoru soustředit se na své úkoly
  • Správa verzí, takže můžete pracovat na více verzích současně
  • Malá křivka učení

Jets

Máte rádi Ruby?

Pak by se vám mohl líbit Jets – bezserverový framework pro Ruby pro vytváření a zavádění mikroslužeb. Framework obsahuje všechny potřebné nástroje, které vám pomohou generovat struktury API a nasazovat je do lambda.

Jets také funguje pro psaní samostatných funkcí, které můžete použít pro propojení různých služeb a zdrojů poskytovaných AWS.

Jets funguje tak, že framework převádí váš stávající kód na funkce pro Lambda a další služby AWS. Díky tomu můžete přeskočit kroky jako nasazení a zajištění a věnovat více času psaní funkčního kódu.

Pulumi

Pulumi poskytuje bezproblémovou sadu SDK, která vám pomůže vytvářet a nasazovat software na jakékoli cloudové platformě. Sada SDK podporuje kontejnery, hostované služby, základní infrastrukturu a kontejnery.

Můžete psát kód v libovolném jazyce, který máte rádi; Pulumi zajistí a spravuje vaše zdroje u poskytovatelů služeb, jako jsou GCP, AWS, Kubernetes a Azure.

Serverless

Vím, co si myslíte: „Někdo měl to štěstí, že získal doménu Serverless.com a teď si jen užívá to štěstí!“, ale musím vás ujistit, že tomu tak není.

Serverless Framework má na GitHubu 30 000 hvězd, což z něj dělá nejoblíbenější bezserverový framework, který můžete najít.

Co tedy můžete s tímto frameworkem dělat? V první řadě můžete vytvářet aplikace, které využívají mikroslužby jako prostředek k reakci na události atd. Vaše aplikace reagují pouze tehdy, když dojde k definitivnímu volání, a škálují se nahoru a dolů podle poptávky. Díky tomu můžete ušetřit spoustu peněz, které by jinak byly vynaloženy na udržování nečinných služeb.

Framework využívá nové výpočetní služby řízené událostmi, jako je AWS Lambda, Google Cloud Functions a další. Je to nástroj příkazového řádku, který poskytuje rozhraní, automatizaci pracovních postupů a osvědčené postupy pro vývoj a nasazení vaší bezserverové architektury. Je také plně rozšiřitelný pomocí pluginů.

Sigma

Sigma je nové cloudové IDE postavené na myšlence vývoje bez serveru. Není to jen základní textový editor s některými vylepšenými funkcemi, ale plně vybavené IDE, které vám umožní psát kód a publikovat ho jako živou aplikaci v reálném čase.

Sigma IDE může komunikovat obousměrně s vámi vybranou bezserverovou (FaaS) platformou, pouze s požadavkem na konfigurační soubor. Díky tomu si můžete ušetřit nekonečné hodiny jinak nudných úkolů.

Na rozdíl od jiných nástrojů, které se snaží dosáhnout podobného výsledku, je Sigma sama o sobě bez serveru. IDE běží výhradně z prohlížeče a nevyžaduje žádnou back-end službu, aby fungovala pro všechny funkce kromě několika. Konkrétně je back-end potřeba pro ověřování uživatelů a sběr analytických dat.

Tenhle nástroj stojí za to sledovat a vyzkoušet na vlastní kůži.

Auth0

Pokud vás nadchl koncept Serverless, pravděpodobně jste již slyšeli o Serverless Framework, o kterém jsme se zmiňovali dříve v článku.

Auth0 spojilo své úsilí a vytvořilo Webtask Auth0, efektivní doplněk pro všechny uživatele Serverless Framework. Projekt se nazývá Webtask a domovskou stránku najdete zde.

V podstatě lze Webtask použít pro vytváření aplikací bez nutnosti starat se o kompatibilitu vaší infrastruktury. Napište logiku na straně serveru a nasaďte všechny své funkce pomocí CLI poskytovaného Webtask. Poté můžete přistupovat k back-endu pomocí protokolu HTTP.

Aktualizace: Webová stránka Webtask byla od té doby vypnuta.

Příklady bez serveru

O Serverless Framework jsme hovořili dříve v příspěvku. Následující zdroj představuje mnoho různých případů použití Serverless Framework.

I když jsou tyto příklady zaměřeny na jeden konkrétní framework, můžete si užít proces učení se o nových konceptech bez serveru.

Příklady jsou dostupné pro platformy jako AWS, Azure, Kubeless, Google Cloud a OpenWhisk. Dále je zde podpora šesti různých jazyků: nodeJS, Python, Go, Java, PHP a Swift.

Podívejte se na některé z oblíbených příkladů, jako je Twitter Joke Bot a OAuth Dropbox API.

Pokud hledáte praktické učení, vyzkoušejte tento online kurz.