13 ramar för att skapa serverlösa appar

By rik

Brinner du för serverlös teknologi? Är du angelägen om att starta ett nytt projekt, men känner dig osäker på var du ska börja?

Här presenteras en sammanfattning av några av de mest populära serverlösa ramverken som du kan utforska!

Serverlös databehandling har blivit alltmer populärt bland dem som uppskattar tanken på att hantera mindre och samtidigt ha mer tid att skapa. Trots att tekniken fortfarande är relativt ny, anstränger sig många utvecklare och ingenjörer för att bygga innovativa lösningar för framtiden inom serverlös drift.

Som du säkert redan vet, betyder ”serverlöst” inte bokstavligen att det inte finns någon server. Det innebär snarare färre servrar och fler funktioner. Om du söker en pålitlig FaaS-plattform (Functions as a Service) för ditt nästa projekt, kan du ta del av vår tidigare översikt över de bästa serverlösa plattformarna.

Låt oss nu granska de tillgängliga ramverken. Vi kommer också att avsluta med några spännande projekt som utvecklas inom det serverlösa området, så stanna kvar till slutet!

AWS Amplify

Med AWS Amplify kan du snabbt bygga skalbara, serverlösa applikationer för webb och mobil, med oändlig flexibilitet. Genom att använda intelligenta arbetsflöden kan du konfigurera dina serverlösa backend-system med data, lagring, autentisering och mycket mer.

Anslut mobil- och webbapplikationer till befintliga eller nya AWS-resurser med färre rader kod. Du kan vara värd för och distribuera webbapplikationer på en sida, server-renderade appar och statiska webbplatser med bara några få klick. Det ger dig också möjligheten att enkelt hantera innehåll och applikationsanvändare.

AWS Amplify hjälper front-end mobil- och webbutvecklare att snabbare skapa fullstack-applikationer på AWS och anpassa dem efter behov. Amplify stöder flera webbramverk som React, Angular, JavaScript, Vue.js, Next.js, och mobila plattformar som iOS, Ionic, Flutter, Android och React Native.

Du kan integrera med en mängd UI-komponenter i Amplify för att påskynda applikationsutvecklingen. Få tillgång till många funktioner och verktyg som autentisering, interaktioner, funktioner, DataStore, användarhantering, API:er (REST, GraphQL), Analytics, AI/ML-förutsägelser, lagring, PubSub, pushnotiser, etc. för utveckling. Dessutom ingår Managed Hosting, PR-förhandsvisningar, CI/CD, anpassade domäner och övervakning för implementering.

Midway

Med Midway får du ett serverlöst ramverk för Node.js som hjälper dig att skapa traditionella server-side-applikationer, små program, mikrotjänster och bygga serverlösa tjänster. Det är skrivet i TypeScript och använder en IoC-injektionsmekanism för att separera applikationslogiken, vilket underlättar utvecklingen av stora Node.js-applikationer.

Midway kan använda Express, EggJS eller Koa som grundläggande ramverk. Det erbjuder grundläggande lösningar som GRPC, Dubbo.js, RabbitMQ och Socket.io för oberoende användning. Dessutom fungerar Midway som ett serverlöst webbramverk för Node.js för fullstack- eller front-end-utvecklare.

Midway gör det möjligt att bygga nästa generations applikationer som körs på containers, virtuella maskiner, Alibaba Cloud, AWS och Tencent Cloud. Du kan också enkelt integrera det med Vue och React. Du hittar många funktioner som:

  • Gruppera och skalbara plugins
  • Avancerad grupp-middleware-kompatibilitet och arkitektur
  • Frikopplingsförmåga och applikationsskiktning
  • Nästa generations utvecklingserfarenhet
  • Stöd för Koa middleware och Egg plugins.

Webiny

Få allt du behöver för att designa, distribuera och bygga serverlösa applikationer med Webiny, ett serverlöst applikationsramverk. Det är designat för en mängd olika användningsfall. Du kan modifiera arkitekturen, teknikstacken och anpassa till behoven i din organisation och ditt projekt.

Bygg företagswebbplatser och applikationer baserade på SEO, routing, förrendering, säkerhet, distribution, paketering och mer. Skapa interna eller externa API:er genom att extrahera GraphQL-resolvers. Begränsa dig inte till en enda applikation; bygg applikationer som använder olika databaser. Du kan använda NodeJS databasdrivrutiner för att interagera med externa databaser.

Webiny erbjuder kodbuntning, IaC, distributionsmekanismer och projektorganisation. Placera produkten högst upp på listan och erbjud SaaS till hela världen. Säkra delar av eller hela applikationer med ACL med hjälp av inbyggd AWS Cognito och säkerhetsramverk.

Lägg till stöd för Auth0, OKTA och andra. Du får ett huvudlöst CMS, sidbyggare, formulärbyggare, filhanterare och mycket mer. Generera boilerplate-kod med hjälp av CLI-plugins, från lambda-funktioner till nya GraphQL-API:er.

Webinys Admin UI innehåller fler än trettio olika React-komponenter. Du får även DDoS-skydd, CDN och 11 9:s hållbarhet för data. Webiny sparar tid i försök och misstag och forskning.

AWS Chalice

Letar du efter ett ramverk för att skriva serverlösa applikationer i Python?

Prova AWS Chalice som låter dig bygga och distribuera applikationer via AWS Lambda.

Chalice erbjuder ett kommandoradsverktyg för att skapa, distribuera och hantera din applikation, ett dekoratörsbaserat API för att integrera med Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS och fler AWS-tjänster.

Det låter dig skapa REST-API:er, utföra schemalagda uppgifter, koppla lambda-funktioner till en S3-händelse och SQS-kö, samt fler AWS-resurser. Direkt efter att du har skrivit din kod låter Chalice dig köra och distribuera din applikation snabbt. Chalice stöder alla versioner av Python som AWS Lambda stöder, inklusive Python 2.7, 3.6, 3.7 och 3.8.

Konfigurera alla autentiseringsuppgifter innan du distribuerar programmet. Men om du redan har konfigurerat det för att köra AWS CLI eller boto3, kan du hoppa över detta. Efter implementeringen kan du göra ändringar och distribuera om dem. Utforska guider, ämnen och API-referenser för att förbättra din förståelse.

Zappa

Zappa är ett serverlöst ramverk för att skapa Python-applikationer. Det förenklar arbetet med att bygga och distribuera serverlösa och händelsedrivna Python-applikationer på API Gateway och AWS Lambda. Använd det för att dra nytta av noll underhåll, noll driftstopp och oändlig skalning till en minimal kostnad för dina nuvarande distributioner.

Innan du påbörjar installationer och konfigurationer, säkerställ att du har Python 3.x, ett AWS-konto och korrekt installation av AWS-autentiseringsfilen. Du kan även enkelt installera Zappa med hjälp av pip.

Zappa ställer automatiskt in distributionsinställningarna. När inställningarna är korrekt konfigurerade distribuerar du applikationen till ett produktionssteg med en enda kommandorad. Använd mallkommando om du vill ha en API Gateway CloudFormation-mall. Distribuera Zappa till anpassade underdomäner och domännamn med SSL-certifikat, AWS Certificate Manager-certifikat och Let’s Encrypt-certifikat.

Aktivera säkra slutpunkter på API-gatewayen som API-nyckel, IAM-policy, API Gateway Lambda Authorizers, Cognito User Pool Authorizer och API Gateway Resource Policy. Dessutom kan du konfigurera miljövariabler som lokal miljö, fjärransluten AWS-miljö och fjärrmiljö via S3-fil.

Architect

Skapa, distribuera och underhåll nästa generations AWS molnfunktionsbaserade serverlösa infrastruktur med fullständiga lokala, offline-arbetsflöden och mycket mer.

Detta är ett ganska sofistikerat projekt som kräver att du läser om projektfilosofin och dokumentationssidan som helhet.

Up

Up är ett ramverk som hjälper dig att distribuera serverlösa applikationer med oändlig skalbarhetspotential. Dessutom kan du använda Up för att distribuera statiska webbplatser, API:er och mer. Allt detta ger dig flexibiliteten att arbeta med det som verkligen betyder något för dig.

Up distribuerar traditionella HTTP-serverinstanser, vilket innebär att du inte behöver lära dig ett nytt protokoll. Använd istället ditt favoritramverk som Django eller Express för att komma igång.

Claudia.js

Claudia.js ger utvecklare ett sätt att flytta sina Node.js-baserade projekt till Lambda-system och API:er. Claudia automatiserar distributionsuppgifter, konfiguration och ställer automatiskt in din JavaScript-miljö för modern utveckling.

Vad innebär detta för dig? Genom att använda Claudia kan du påbörja din mikroserviceresa på bara några minuter. Du har därmed mindre att tänka på och mer tid att fokusera på att lösa verkliga problem.

De främsta anledningarna att använda Claudia inkluderar:

  • Distribuera, uppdatera och hantera dina instanser med ett enda kommando
  • Fungerar sömlöst med NPM-paket
  • Integrerad struktur som ger dig mer utrymme att fokusera på dina uppgifter.
  • Versionshantering som gör att du kan arbeta med flera versioner samtidigt
  • Liten inlärningskurva

Jets

Gillar du Ruby?

Då kanske du gillar Jets — ett serverlöst Ruby-ramverk för att skapa och distribuera mikrotjänster. Ramverket innehåller alla nödvändiga verktyg för att hjälpa dig att generera API-strukturer och distribuera dem till Lambda.

Jets fungerar även för att skriva separata funktioner som du kan använda för att koppla ihop olika tjänster och resurser från AWS.

Jets konverterar din befintliga kod till funktioner för Lambda och andra AWS-tjänster. Därmed kan du slippa distribution och provisionering och istället fokusera på att skriva funktionell kod.

Pulumi

Pulumi tillhandahåller ett smidigt SDK som hjälper dig att skapa och distribuera programvara till vilken molnbaserad plattform som helst. SDK stöder containers, värdtjänster, kärninfrastruktur och containers.

Du kan skriva kod på valfritt språk. Pulumi tillhandahåller och hanterar dina resurser hos tjänsteleverantörer som GCP, AWS, Kubernetes och Azure.

Serverless

Du kanske tänker att ”Någon hade tur som fick domännamnet Serverless.com och tjänar på det!”, men det är inte riktigt så det ligger till.

Serverless Framework har omkring 30 000 stjärnor på GitHub vilket gör detta till det mest populära serverlösa ramverket som finns.

Vad kan du göra med det här ramverket? Du kan skapa applikationer som använder mikrotjänster för att reagera på händelser. Dina applikationer svarar bara när det finns ett definitivt behov och skalas upp och ner baserat på efterfrågan. På så sätt kan du spara pengar som annars skulle gå till att underhålla inaktiva tjänster.

Ramverket använder händelsedrivna datortjänster som AWS Lambda, Google Cloud Functions med mera. Det är ett kommandoradsverktyg som tillhandahåller struktur, arbetsflödesautomatisering och bästa praxis för att utveckla och distribuera din serverlösa arkitektur. Det är också fullständigt utbyggbart med hjälp av plugins.

Sigma

Sigma är en molnbaserad IDE byggd kring idén om serverlös utveckling. Det här är inte bara en enkel textredigerare med några snygga funktioner, utan en komplett IDE som gör det möjligt att skriva kod och publicera den som en liveapplikation i realtid.

Sigma IDE kan kommunicera med den serverlösa (FaaS) plattform du väljer med endast en konfigurationsfil. Detta sparar dig många timmar av annars tråkigt arbete.

Till skillnad från andra verktyg som strävar efter ett liknande resultat är Sigma serverlöst i sig självt. IDE:n körs helt i webbläsaren och kräver ingen backend-tjänst för att fungera förutom ett fåtal funktioner. Specifikt krävs backend för att autentisera användare och samla in analytisk data.

Detta verktyg är värt att hålla ett öga på och testa själv.

Auth0

Om du är intresserad av serverlöshet, har du säkert hört talas om Serverless Framework – det vi nämnde tidigare.

Auth0 har sammanfört sina resurser för att bygga Auth0 Webtasks, ett effektivt tillägg för alla som använder Serverless Framework. Projektet heter Webtask och du hittar hemsidan här.

Webtask kan i princip användas för att skapa applikationer utan att behöva bekymra dig om infrastruktur kompatibilitet. Skriv logik på serversidan och distribuera alla dina funktioner med hjälp av CLI som tillhandahålls av Webtask. Du kan sedan navigera i backend med HTTP-protokollet.

Uppdatering: Webtask-sajten har stängts ner.

Serverlösa exempel

Vi pratade om Serverless Framework tidigare, och det här är en resurs som visar de många olika användningsfallen för Serverless Framework.

Även om dessa exempel är låsta till ett specifikt ramverk kan du ändå lära dig nya serverlösa koncept.

Exemplen är tillgängliga för plattformar som AWS, Azure, Kubeless, Google Cloud och OpenWhisk. Det finns även stöd för sex olika språk: nodeJS, Python, Go, Java, PHP och Swift.

Kolla in några av dessa favoriter som Twitter Joke Bot och OAuth Dropbox API.

Om du letar efter praktisk inlärning, kolla in den här onlinekursen.