AWS ha dejado de dar soporte a Internet Explorer. Ahora, los navegadores aceptados son Chrome, Firefox, Edge y Safari. Serverless es una tecnología que AWS presentó en 2014 y abrió al público en 2016. Con Serverless, todo se trata de escribir tu propio código. Luego, el proveedor de nube, en este caso AWS, lo ejecutará cuando sea necesario.1 Cambiarte a Serverless tiene ventajas como no necesitar servidores. También se ajusta muy bien a lo que tu aplicación necesita. Además, ofrece más seguridad, está siempre disponible y solo pagas por lo que usas.1
Puntos Clave
- La tecnología Serverless eliminó la necesidad de administrar servidores.
- Serverless se alinea mejor con los requisitos de la aplicación al escalar automáticamente.
- Serverless ofrece seguridad y alta disponibilidad integradas.
- Serverless cobra por uso, sin costos fijos.
- AWS introdujo Serverless en 2014 y se volvió disponible al público en 2016.
¿Qué es Serverless y una introducción a AWS Lambda?
Serverless es una idea nueva que AWS presentó en 2014. Lo hizo disponible para todos en 2016. Con Serverless, escribe su código y Amazon Web Services (AWS) lo ejecuta cuando sea necesario.2
Hay muchas maneras diferentes de activar este código. Pueden ser cambios en archivos guardados en Amazon S3, modificaciones en su base de datos, o incluso eventos de IoT. En resumen, hoy en día es muy fácil crear sistemas avanzados sin necesidad de administrar servidores.
Beneficios de la transición a Serverless
Cambiarse a Serverless tiene ventajas claras. La principal es que usted olvida de los servidores. No hace falta preocuparse por la infraestructura.3
Además, el sistema se adapta solo a lo que la aplicación necesita. Esto significa que escala de acuerdo a sus requerimientos sin que usted tenga que hacer nada extra. Otra ventaja importante es la seguridad.
Puede establecer estrictas reglas de seguridad para proteger su app, sus datos y los usuarios. AWS garantiza que su código se ejecute desde diferentes lugares, así usted sigue operando si uno falla. Finalmente, solo paga por lo que usa, lo cual es muy conveniente.
Novedades de Serverless 4 años después
Desde su lanzamiento, vemos cómo los desarrolladores y empresas han adoptado el servidor sin servidor. Este cambio ha llegado a diversos casos, tamaños de proyecto y arquitecturas.4 Ahora, muchas start-ups han creado sus productos sin un solo servidor. Y grandes empresas manejan sistemas complejos con muchísimas solicitudes de funciones Lambda diariamente.
Cada día, surgen nuevas formas de usar esta tecnología. Esto sucede con cada nueva herramienta o servicio de terceros que se integra.4
Cambios específicos en AWS Lambda
En los últimos 4 años, AWS Lambda ha evolucionado mucho. Por ejemplo, al principio, una función solo podía ejecutarse por un máximo de 5 minutos. Hoy en día, ese límite ha crecido a 15 minutos por función.4 Además, la memoria que pueden usar las funciones se ha duplicado, de 1,5 GB a 3 GB.
Actualmente, existen más de 20 formas de activar las funciones de Lambda, y se siguen sumando opciones. Entre ellas, la API Gateway de Amazon ha mejorado mucho. Agregando soporte para WebSockets y un servicio de API HTTP más sencillo y accesible.4
Además, Lambda ahora es compatible con más lenguajes de programación que en cualquier otro momento. Incluso si el lenguaje que necesitas no es soportado oficialmente, puedes crear tu propio entorno de ejecución.4
Introducción a Serverless: AWS Lambda y Funciones en la Nube
Serverless es una tecnología de AWS que cambió mucho desde su introducción en 2014. Para el 2016, ya había salido de la etapa de pruebas y estaba disponible para todos.2 Con esta tecnología, ya no necesitas preocuparte por los servidores, simplifica la aplicación de reglas esenciales, mejora la seguridad y garantiza disponibilidad. Además, solo pagas por lo que utilizas.2
El AWS SAM CLI simula un entorno de Lambda para desarrollo y pruebas en tu propio equipo.2 CodePipeline facilita las actualizaciones rápidas y seguras de tu infraestructura gracias a su automatización.2 Amazon SQS permite a las aplicaciones comunicarse entre sí de manera escalable y sin complicaciones.2
Con AWS Lambda, no necesitas servidores para ejecutar tu código, sea cual sea tu aplicación.2 Step Functions te ayuda a gestionar múltiples servicios en flujos específicos. Esto acelera la creación y actualización de apps.2 Por otro lado, SNS asegura que tus microservicios o apps sin servidor se comuniquen de manera fiable.2
AWS SAM simplifica la creación de apps sin servidor con una estructura clara.2 Fargate facilita la ejecución de contenedores sin necesidad de clústeres.2 CodeCommit ofrece un espacio seguro para tu código, y es muy escalable.2
CodeBuild prepara tu software para funcionar de forma impecable después de compilarlo.2 CodeDeploy facilita el despliegue de tu software en varias plataformas.2 CloudWatch te ayuda a monitorear todo, desde un lugar diseñado por expertos.2
En 2014, AWS comenzó a desarrollar la tecnología Serverless, la cual maduró en 2016.1 Inicialmente, las funciones Lambda tenían un límite de tiempo de 5 minutos, que luego se extendió a 15 minutos.1 También aumentaron la memoria disponible hasta 3 GB.1 Se pueden activar con más de 20 eventos diferentes.1 Amazon API Gateway, importante para Lambda, ha mejorado con el tiempo. Ahora ofrece soporte para WebSockets y servicios HTTP más asequibles.1
Startups y grandes empresas utilizan arquitecturas sin servidor para todo tipo de proyectos.1 El pago es por uso, lo que hace a este modelo muy atractivo.1 La tecnología ha progresado para soportar varios lenguajes de programación. Incluso, si necesitas un lenguaje adicional, puedes añadirlo.1
Hay tres tipos de nubes principales: públicas, privadas y híbridas.5 La nube cambia el enfoque de costos de capital a operativos. Esto significa que no necesitas invertir en servidores.5 Te beneficia de precios más bajos gracias a las economías de escala.5 Evitas tener que adivinar tus necesidades futuras ya que solo pagas por lo que utilizas.5
El corazón del modelo Serverless en AWS es Lambda, eliminando la necesidad de servidores.5 API Gateway es clave para ofrecer y manejar tus APIs de forma eficiente.5 DynamoDB es una base de datos sin igual para proyectos ágiles, asegurando velocidades ultrarrápidas y confiabilidad.5
S3 provee un espacio ilimitado para tus archivos, desde los más pequeños hasta 5 terabytes.5 SNS te notifica sobre eventos importantes usando distintos métodos de comunicación.5
Marcos para el desarrollo sin servidor
El mundo del desarrollo sin servidor ha avanzado mucho en poco tiempo. Hay varias herramientas y marcos que lo hacen más fácil. Algunos de los favoritos son:
AWS Serverless Application Model (AWS SAM)
AWS SAM ayuda a hacer aplicaciones sin servidor con un marco de código abierto. Te deja definir funciones, API y bases de datos de forma sencilla.2 Esto ayuda mucho al momento de lanzar y cuidar estas apps.
AWS Cloud Development Kit (AWS CDK)
El AWS CDK deja que definamos recursos en la nube usando lenguajes como TypeScript o Python.6 Así, podemos describir de manera más específica lo que queremos hacer en AWS.
Otros marcos populares
Además de los anteriores, hay más herramientas para apps sin servidor. Por ejemplo, el framework Serverless y su CLI te ayudan a manejar el ciclo de vida de tus aplicaciones.2
También está serverless.tf, que sirve para hacer, desplegar y asegurar aplicaciones en AWS con Terraform. Chalice permite escribir apps sin servidor en Python. Arc.codes es bueno para hacer apps que escalen fácilmente. Y Claudia.js simplifica poner en marcha proyectos de Node.js en AWS.
Herramientas para la integración y entrega continuas
Las aplicaciones sin servidor se ven grandemente beneficiadas por la automatización de sus ciclos de desarrollo y despliegue. AWS pone a disposición servicios que permiten a los equipos llevar a cabo estas tareas de forma eficiente y confiable. Algunos de los servicios principales incluyen:
AWS CodeCommit
AWS CodeCommit proporciona un sistema de control de código fuente seguro y escalable, basado en Git.2 Esto facilita la gestión de versiones y la colaboración en proyectos de aplicaciones sin servidor.
AWS CodePipeline
AWS CodePipeline es una herramienta de entrega continua que automatiza los procesos de lanzamiento.2 Permite realizar actualizaciones de forma rápida y segura en aplicaciones y en la infraestructura subyacente.
AWS CodeBuild
AWS CodeBuild sirve para la integración continua. Compila código, realiza pruebas y prepara el software para su implementación.2 De esta forma, garantiza que las aplicaciones sin servidor se construyan y prueben automáticamente en cada etapa de su creación.
AWS CodeDeploy
AWS CodeDeploy es una herramienta de despliegue que trabaja con varios servicios computacionales, como Amazon EC2 y AWS Lambda.2 Facilita la implementación continua de actualizaciones en las aplicaciones sin servidor.
AWS CodeArtifact
AWS CodeArtifact funciona como un repositorio de artefactos. Ayuda a almacenar y compartir paquetes de software de manera segura.2 Esencial para centralizar y administrar los componentes clave en el desarrollo de aplicaciones sin servidor.
Monitoreo, registros y diagnóstico de aplicaciones sin servidor
En un entorno sin servidor, es vital monitorear para asegurar que las aplicaciones funcionen bien. AWS tiene herramientas poderosas para esto.7
AWS X-Ray
AWS X-Ray ayuda a los desarrolladores a buscar problemas en aplicaciones distribuidas. Esto es importante para aplicaciones que usan microservicios.7 Con X-Ray, puedes ver las solicitudes en todos los componentes. Así, identificar problemas de rendimiento o buscar fallos es más fácil.
Amazon CloudWatch
Amazon CloudWatch fue creado por expertos y recoge datos de los servicios de AWS.7 Esta herramienta los analiza para ayudarte a mejorar tu aplicación.
Herramientas de terceros
Además de las herramientas de AWS, hay herramientas como Dashbird para monitorear y solucionar problemas.7 Empresas como DataDog, Lumigo, New Relic y Splunk también ofrecen opciones útiles. Complementan lo que AWS brinda.
Creación y desarrollo de aplicaciones sin servidor
Puede autorizar código para funciones de AWS Lambda desde su entorno de desarrollo integrado. Esto se logra con los complementos de IDE.2
AWS SAM CLI
AWS SAM CLI ofrece un entorno como el de Lambda. Aquí puede desarrollar, verificar, corregir errores e implementar funciones localmente usando plantillas de SAM.2
AWS Cloud9
AWS Cloud9 es un IDE en la nube. Permite escribir, ejecutar y depurar código desde cualquier navegador. Incluye un editor, un depurador y un terminal.2
Servicios clave de AWS para el desarrollo sin servidor
AWS tiene muchos servicios para crear sin esfuerzo apps sin servidor. Algunos sobresalen por su utilidad:
Amazon API Gateway
El Amazon API Gateway ayuda a los creadores a hacer, publicar y proteger APIs. Lo hace fácil y en grande escala.3
Amazon EventBridge
Con Amazon EventBridge, conectar apps es más sencillo. Usa datos de apps propias, de SaaS y AWS.3
Amazon SNS y SQS
Amazon SNS y SQS son perfectos para separar apps y hacerlas más eficientes. Son servicios de mensajería y colas que ayudan a escalar.3
AWS Fargate
AWS Fargate permite correr contenedores sin gestión. Es parte de Amazon ECS, sin necesidad de preocuparse por clústeres.3
AWS Lambda
AWS Lambda ejecuta código para apps y backends. Sin gestionar servidores, es genial para agilizar el proceso.3
AWS Step Functions
AWS Step Functions une servicios para flujos de trabajo sin servidor. Así, actualizar apps es rápido y fácil.3
Recursos de aprendizaje para principiantes
Hay muchos recursos gratis para quienes empiezan a usar tecnologías sin servidor. Esto incluye tutoriales, blogs y cursos. Con estos, es fácil aprender a hacer aplicaciones sin servidor con AWS. Se usan servicios como Lambda8, API Gateway4, y EventBridge4.
Además, hay otros servicios útiles como SNS y SQS4. Y no podemos olvidar Fargate4 y Step Functions4. Se usan también herramientas como AWS SAM y AWS CDK. Estas hacen más sencillo el desarrollo de aplicaciones.
A través de estos recursos, se aprende lo básico de la computación sin servidor. Por ejemplo, cómo hacer que el código funcione sin servidores. También, se entiende cómo funciona el pago por uso. Y se ve cómo conectar diferentes servicios de AWS para hacer apps más fuertes y expandibles.
Para principiantes, es clave aprender a usar ciertas herramientas. Por ejemplo, AWS SAM y AWS CDK ayudan a definir y lanzar aplicaciones. También es importante saber cómo mantener y supervisar estas aplicaciones. Para eso se usan servicios como AWS CodeCommit, AWS CodePipeline y AWS X-Ray.
Con estos recursos, los programadores se preparan para usar la computación sin servidor. Aprenden a hacer aplicaciones nuevas y eficientes en la nube.
Enlaces de origen
- https://spainclouds.com/blog/que-es-serverless-y-una-introduccion-a-aws-lambda
- https://aws.amazon.com/es/serverless/getting-started/
- https://docs.aws.amazon.com/es_es/lambda/latest/dg/welcome.html
- https://aws.amazon.com/es/developer/language/net/badges-and-training/aws-lambda/module-one/
- http://luislizama.com/2022/09/13/Introduccion-a-Serverless-AWS/
- https://docs.aws.amazon.com/es_es/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/serverless-deployment-and-management.html
- https://aws.amazon.com/es/blogs/aws-spanish/como-habilitar-logs-en-los-servicios-de-aws-parte-1/
- https://aws.amazon.com/es/lambda/