Historia detrás de la creación de los servicios en la nube
- Data Centers
- Requerían un tiemplo de despliegue de 10 días promedio.
- IAAS (Infrastructure As A Service)
- Amazon introdujo EC2 y fue entonces posible provisionar servidores a través de la consola de EC2.
- PASS (Platform As A Service)
- Herramientas como Beanstalk pueden analizar tu código y provisionar este basado en el.
- Containers (Contenedores)
- Basados en contenedores (la mayoría de los casos utilizando Docker).
- Serverless (Lambda)
- Solo es necesario el uso de código para hacerse cargo.
¿Que es lambda serverless y para que sirve?
AWS Lambda es un servicio de procesamiento basado en funciones, cuando se envía el código se crea una función Lambda. Lambda toma control de provisionar y manejar los servidores que utilizas para ejecutar el código. No es necesario preocuparse acerca de los sistemas operativos, parches, escalamiento, etc. Es posible utilizar lambda de las siguientes maneras.
Como un servicio de computo basado en eventos en donde Lambda ejecuta el código como respuesta a eventos. Estos pueden ser cambios en los Buckets S3 de Amazon o cualquier tabla de DynamoDB.
Como un servicio de computo que ejecuta en respuesta a peticiones HTTP utilizando Amazon API Gateway o llamadas echas utilizando AWS SDKs.
Lambda maneja de forma automática
- Los Data Centers.
- El Hardware.
- El ensamblado de código/los protocolos.
- El lenguaje de alto nivel.
- Los sistemas operativos.
- La capa de aplicación/AWS API.
¿Cómo se calculan los costos de Amazon AWS Lambda?
Los costos de AWS Lambda se calculan basados en:
- Por numero de peticiones
- El primer millón de peticiones es gratis, después cada millón adicional cuesta 20 centavos.
- Duración de la ejecución
-
La duración es calculada desde el tiempo que tu código requiere para devolver una respuesta o realizar una terminación del proceso. Este precio depende del monto de memoria asignado a la función Lambda.Tiene un costo de 1667 x10-8 por faca GB/segundo utilizado.
-
Es importante que cada función tenga un tiempo máximo de ejecución, este tiempo es por default 5 minutos, por lo que se recomienda que cuando exista un proceso complejo, este se descomponga en subfunciones de Lambda.
¿Por qué Lambda es atractivo para los desarrolladores y empresas?
- No requiere servidores
- Escala de manera continua.
- Es muy económico.
Algunos tips para el uso correcto de Lambda
- Lambda escala de manera automática.
- Las funciones de lambda son independientes, un evento equivale a una función.
- Lambda es serverless (no requiere de servidores).
- Algunos servicios son serverless en AWS (S3, api gateway, lambda, DynamoDB).
- Una función puede disparar otra(s) funciones.
- Las arquitecturas pueden volverse muy complicadas, para ello AWS X-Ray permite realizar debug de que es lo que esta sucediendo.
- Lambda puede realizar operaciones globales (backups de buckets de S3 en otros buckets de S3).
- El tiempo de duración máximo es de 5 minutos para cada una de las funciones lambda.