AWS Lambda: què és i 5 aplicacions pràctiques
18/10/2022
Les màquines virtuals, els contenidors, les instàncies puntuals i la computació sota demanda només són alguns exemples d'aquestes ofertes. En aquest article, farem una ullada a un més d'aquests serveis: Amazon Web Services (AWS) Lambda.
El núvol és la nova normalitat de la informàtica. S'ha convertit en la base per al desenvolupament i el lliurament de programari en general, i una varietat de serveis relacionats amb la informàtica s'ofereixen ara com a serveis al núvol. Aquests serveis al núvol tenen molts sabors diferents, i cadascú es dirigeix a un cas dús o tecnologia específics.
Què és AWS Lambda?
Lambda és un servei informàtic ofert per Amazon Web Services (AWS). Els desenvolupadors poden utilitzar-lo per crear i executar aplicacions sense servidor. Una funció lambda és una peça de codi que s'executa en resposta a un esdeveniment. Aquest esdeveniment pot ser tan simple com una sol·licitud HTTP, o tan complex com la recepció de dades a una aplicació SaaS.
Les funcions lambda sempre s'invoquen al núvol i es poden escriure en qualsevol llenguatge que es pugui executar a AWS, com Java, Node.js, Python o C#. Fins i tot, en versions recents, permet l'execució de contenidors. Lambda es basa en esdeveniments i no té estat, cosa que significa que cada vegada que s'activa una funció, comença amb una tabula rasa. En aquest sentit, és semblant a un treball cron, però té alguns avantatges.
Per què utilitzar AWS Lambda?
La principal raó per utilitzar Lambda és que us allibera d'haver de gestionar la infraestructura del servidor. Com ja hem comentat, les funcions de Lambda s'invoquen sempre al núvol. Això vol dir que de l'únic que us heu de preocupar és d'escriure el codi d'aquestes funcions.
No cal aprovisionar un servidor, instal·lar un sistema operatiu, ni realitzar cap de les altres tasques associades a la configuració i el manteniment d'un servidor. Lambda també és altament escalable. Tot el que heu de fer és configurar la seva funcióper utilitzar una quantitat suficient de memòria i Lambda l'escalarà automàticament per satisfer la demanda.
Això significa que la vostra aplicació romandrà en línia fins i tot durant els períodes dalt trànsit. Així doncs, un dels grans avantatges d'utilitzar Lambda són la seva alta disponibilitat, la baixa latència i la facilitat d'integració.
Simplement es paga pel que s'utilitza, així que si una funció no s'utilitza, no genera cap cost.
5 aplicacions practiques per a AWS Lambda
Les funcions d'AWS Lambda es basen en esdeveniments, cosa que significa que es desencadenen per esdeveniments específics, com ara una sol·licitud HTTP, o l'arribada de dades a una aplicació SaaS. Això fa que siguin molt adequades per a un gran nombre de casos dús, entre ells
- Processament de dades en flux: Lambda es pot utilitzar per processar dades que s'ingereixen en temps real. Això pot ser útil en una varietat de casos d'ús, com ara l'auditoria, la supervisió i el registre d'esdeveniments.
- Processament per lots: Lambda també es pot utilitzar per processar grans quantitats de dades. Això pot ser útil en una varietat de casos d'ús, com ara la neteja de dades, l'ETL i l'anàlisi de dades.
- Construcció de microserveis: Les funcions Lambda es poden combinar per formar microserveis. Això facilita la creació de grans aplicacions, ja que els microserveis es poden desenvolupar, provar i desplegar de manera independent.
- Integració: Lambda es pot utilitzar per crear una àmplia varietat d'integracions, com ara API personalitzades, webhooks i correus electrònics activats. Això facilita la integració de diversos serveis de tercers amb la seva aplicació.
- Recuperació de desastres: Lambda es pot utilitzar per implementar un pla de recuperació de desastres per a aplicacions crítiques. Això pot ser útil quan una aplicació es trasllada a un nou centre de dades, o quan una aplicació es canvia a un nou servei o tecnologia.
Limitacions d'AWS Lambda
Tot i tots els avantatges i funcionalitats esmentades anteriorment, AWS Lambda té algunes limitacions.
Per començar, les funcions de Lambda no poden ser invocades directament – només poden ser activades per esdeveniments específics. Això vol dir que no es poden utilitzar per implementar aplicacions en temps real. Afortunadament, moltes aplicacions en temps real es poden construir utilitzant microserveis basats en esdeveniments, cosa que facilita la integració de les funcions Lambda amb ells.
Les funcions Lambda tenen un temps màxim d'execució de cinc minuts. Això vol dir que no són adequades per a tasques de llarga durada. Afortunadament, les tasques de llarga durada es poden dividir en trossos més petits mitjançant una tasca cron, o fent servir disparadors que executin la funció Lambda diverses vegades.
Les funcions Lambda també tenen una sol·licitud màxima d'execució d'1 GB. Això vol dir que no es poden utilitzar per processar grans quantitats de dades. Això es pot mitigar dividint les tasques de llarga durada en trossos més petits, o fent servir disparadors que executin la funció Lambda diverses vegades.
També hi ha un problema amb Lambda que triga molt de temps a crear un contenidor temporal. Això triga entre 100 mil·lisegons i 2 minuts i es coneix com a arrencada en fred. Tot i així, això té solució. Per assegurar-vos que el contenidor no es destrueix, simplement feu un ping a la seva Lambda cada 5 minuts. Només la primera sol·licitud trigarà una mica a processar-se, totes les sol·licituds posteriors es processaran molt més ràpid i sense retard.
Conclusió
Hi ha una gran recompensa en l'ús d'una arquitectura sense servidor com AWS Lambda per desplegar alguna funcionalitat en un entorn de producció sense invertir en infraestructura i pagant només quan s'utilitza.
Les plataformes sense servidor estalvien temps i diners, a més d'augmentar-ne la seguretat i la fiabilitat.
Abans d'adoptar una arquitectura sense servidor, cal avaluar amb cura si és o no l'enfocament adequat per al problema en qüestió.