DATORNTILLBEHÖR

De bästa serverlösa datorlösningarna

modern-cloud-technology-background-banner-illustration-id1202009412.jpgBild: sigoisette, Getty

Vad är serverlös datoranvändning?

Wikipedia beskriver serverlös datoranvändning som: “en molnberäkningsmodell där molnleverantören allokerar maskinresurser på begäran och tar hand om servrarna på uppdrag av sina kunder.” Även om detta är korrekt, är det lite torrt och kräver en hel del teknisk kunnighet att tyda. Å andra sidan hade jag för några år sedan lyckan att höra serverlös datoranvändning beskrivas för en grupp studenter vid Notre Dame University av en briljant ung ingenjör som använder en tvättanalogi. Det gick ungefär så här.

Moln: Måste läsa täckning

När det kommer till tvätt, har du ett par alternativ för att få det gjort. Du kan köpa din egen tvättmaskin, installera den i ditt hem och därmed ta på dig bekvämligheterna vid sidan av utgifterna och underhållet av apparatens ägande. Ett annat alternativ är att ta dina kläder till en tvättomat, vilket inte kräver att du äger en tvättmaskin, men du måste fortfarande tillhandahålla tvål och torktumlare och en korg. Slutligen kan du välja att lämna dina kläder på en kemtvätt, låta dem veta hur mycket stärkelse du vill ha och sedan komma tillbaka senare för att hämta den färdiga produkten.

I den här tvättanalogin liknar köp av din egen tvättmaskin traditionella datoralternativ på plats. Du lägger upp lite kapital och ansvarar sedan inte bara för koden som körs på servern, utan även hårdvaran, nätverket och OS-nivåbördan som följer med den servern.

Exemplet med tvättstuga passar bra ihop med att köra en virtuell eller containermiljö för att vara värd för din applikation i molnet. Tänk på AWS EC2. Du behöver inte oroa dig för att städpersonalen snubblar över en kabel och tar ner hela din applikation, men du är fortfarande ansvarig för saker som att konfigurera operativsystemet, säkerhetskorrigeringar, etc.

Slutligen kommer vi till kemtvättsmetaforen och poängen med denna artikel. Med serverlösa datorer oroar du dig normalt inte mycket om “hur tvätten blir gjord.” Du tillhandahåller dina instruktioner (dvs koden), lämnar över den till din leverantör och väntar sedan på att få tillbaka den färdiga arbetsprodukten. Även om det inte är perfekt för alla situationer, har det definitivt en växande lista med fördelar för utvecklare, såväl som de företag de stödjer.

Vilka är fördelarna med serverlös datoranvändning?

Ingen serverhantering

Även om serverlös datoranvändning faktiskt körs på en server – det är inte din server. Det hanteras av en tjänsteleverantör som är specialiserad på att hantera servrar i stor skala. Det betyder att de kommer att vara mer effektiva och kostnadseffektiva i dessa uppgifter än de flesta företag, och utvecklare kan koncentrera sig på det de verkligen är bra på: att utveckla kod.

Betala när du går/inneboende skalbarhet

Med tanke på vissa telefonabonnemang körs serverlös datoranvändning vanligtvis under en pay as you go-modell. Din kod körs bara när den behövs, och du betalar inte för minne, lagring eller CPU när din applikation är inaktiv. Dessutom är serverlös beräkning “horisontellt skalbar”. Det betyder att om 10 personer försöker köra din applikation samtidigt, “snurras” 10 separata instanser av dina serverlösa funktioner samtidigt för att möta efterfrågan.

Snabbare iterationer

Med serverlösa arkitekturer finns det inget behov av att göra massapplikationer eller någon form av “backend”-konfiguration. Utvecklare kan uppdatera delar av eller hela applikationen som oberoende funktioner. Detta kan avsevärt minska tiden det tar att uppdatera, korrigera och lägga till nya funktioner.

SE: AWS Lambda, ett serverlöst datorramverk: Ett fuskark (gratis PDF) (TechRepublic)

Serverlös datoranvändning: branschens bästa verktyg

När företag och ingenjörer anammar ett serverlöst tillvägagångssätt, fortsätter antalet leverantörer som tillhandahåller serverlös kapacitet att växa. Medan de flesta är byggda med en gemensam uppsättning arkitektoniska mål, finns det några tydliga skillnader mellan tillvägagångssätt och implementering.

AWS Lambda

AWS Lambda, en pionjär inom serverlös datoranvändning, är den serverlösa lösningen för några av de största företagen i världen. Ursprungligen fokuserat mycket på Node.js, nu kan AWS Lambda stödja Node, Java, Go, PowerShell, C#, Python och Ruby direkt och har ett runtime API som låter dig lägga till fler språk om det behövs. Det är väldokumenterat, lätt att komma igång med och du får 1 miljon gratisförfrågningar till ditt resulterande API varje månad.

Google Cloud-funktioner

Google Cloud Functions fungerar på samma sätt som AWS Lambda, även om antalet stödda utvecklingsspråk inte är fullt så expansivt. Den har också en gratis nivå; i det här fallet täcks dina första 2 miljoner förfrågningar varje månad. Ett sätt på vilket Google försöker särskilja denna produkt är genom att fokusera på FaaS-ramverket med öppen källkod (function as a service) för att skydda sina kunder från leverantörslåsning. I praktiken kan de flesta serverlösa applikationer skrivas på ett leverantörsagnostiskt sätt oavsett tjänsteleverantör, men det är ofta tidskrävande och du måste balansera avvägningarna mellan tid till marknad och förmågan (och verkligheten) som du någon gång kommer att behöva för att lyfta och flytta din kod mellan tjänsteleverantörer.

Serverlösa erbjudanden som AWS Lambda har inte slagit igenom, men Kubernetes kan hjälpa (TechRepublic)

Microsofts Azure App Service

Microsofts Azure har vunnit mycket mark under de senaste åren och dess App Service är inget undantag. Precis som AWS Lambda erbjuder App Service ett brett utbud av alternativ för utvecklingsspråk. Själva programmeringsmodellen tenderar att vara lite mer sofistikerad, vilket innebär flexibilitet på bekostnad av komplexitet. Medan de flesta av dess konkurrenter arbetar utifrån en enkel modell av ingångar och utgångar (vanligtvis JSON-block), förlitar sig App Service på en rad triggers och bindningar. Uppgången kan vara lite brantare om du är van vid traditionella RESTful API:er, men när du förstår det kommer du att se att det också finns fördelar.

När det gäller prissättning stöder Azure App Service en pay as you go-modell men den har också vissa scenarier där du betalar ett timpris. Återigen kan detta ge en annan nivå av flexibilitet, men det gör att dechiffrera prisplanen till något av ett mysterium. Även om det helt klart finns någon form av gratis nivå, är det inte uppenbart utan att prata med en säljare vad den gratis nivån består av.

Luftbord

Jag kanske får lite fläck för att inkludera Airtable som ett serverlöst alternativ, eftersom det är en mycket mer ensidig lösning jämfört med en allmän serverlös datorleverantör. Som sagt, om du bara letar efter enkla serverlösa CRUD-operationer, erbjuder Airtable ett alternativ med låg kod/no-kod som du kanske vill kolla in.

Sista tankar om serverlösa datoralternativ

De serverlösa leverantörerna som listas i den här artikeln representerar bara en handfull av vad som finns tillgängligt på marknaden. Det finns många andra där ute, och vilken som är bäst för dig beror på din utvecklingserfarenhet, din större datormiljö och dina slutmål. Serverlös arkitektur är ingen magisk kula. Men antalet situationer där det kan ge omedelbar skala, låga investeringar i förväg och snabbare utvecklingscykler är betydande och växer för varje dag.

Botón volver arriba

Ad blocker detected

You must remove the AD BLOCKER to continue using our website THANK YOU