Soluciones tecnológicas
Soluciones tecnológicasLa inteligencia artificial generativa pasa a ser parte como un pilar fundamental de la ...
Open Banking, powered by Generative Artificial Intelligence (GenAI), is redefining the ...
SANTA CLARA, Calif.–January 10, 2025–GlobalLogic Inc, una empresa del Grupo...
GlobalLogic establecerá un centro de desarrollo de ingeniería de software automotriz en...
GlobalLogic ofrece una combinación única de experiencia y conocimientos en la intersección entre datos, diseño e ingeniería.
ContáctanosEl término «Serverless» produce algún grado de confusión debido a que en la implementación y puesta en marcha de toda aplicación se complementan hardware de servidor y procesos ejecutándose en algún lugar. La diferencia en comparación con los enfoques normales es que la organización que crea y da soporte a una aplicación «Serverless» no se ocupa de ese hardware o esos procesos.
Una empresa externa se encarga del duro trabajo de aprovisionar, administrar y escalar servidores. Al implementar una arquitectura Serverless, no se administra ni aprovisiona nada.
La arquitectura serverless a menudo incorpora dos componentes:
Functions-as-a-Service (FaaS) es un modelo relativamente nuevo de computación en la nube. El modelo se basa en tecnologías y arquitecturas informáticas sin servidor que permiten a los desarrolladores de software implementar fácilmente aplicaciones en la nube sin tener que administrar servidores.
Backend-as-a-Service (BaaS) es un modelo de servicio en la nube en el que los desarrolladores subcontratan todos los aspectos detrás de escena de una aplicación web o móvil para que solo tengan que escribir y mantener la interfaz. Los proveedores de BaaS proporcionan software prescrito para actividades que tienen lugar en servidores, como autenticación de usuarios, administración de bases de datos, actualización remota y notificaciones push (para aplicaciones móviles), así como almacenamiento y alojamiento en la nube.
Una función es una tarea u operación dentro de una aplicación que puede escribirse como un fragmento de código y ejecutarse de forma independiente.
Las funciones Lambda son pequeñas operaciones del negocio estructuradas en forma de funciones que son disparadas por eventos (event driven). Estas funciones efímeras y altamente escalables pueden ser desarrolladas en varios lenguajes como Python, Javascript, Java, Go, etc.
Se pueden utilizar especialmente para:
AWS Lambda es un servicio informático donde se puede cargar el código, crear funciones independientes y vincularlas a eventos específicos en la infraestructura de la nube.
AWS administra toda la infraestructura en la que se ejecutan nuestras funciones y realiza toda la administración de los recursos informáticos, incluido el mantenimiento del servidor y del sistema operativo, el aprovisionamiento de capacidad y el escalado automático, la supervisión de código y el registro. Cuando la función tiene una gran demanda, AWS aumenta automáticamente el recuento de máquinas subyacentes para garantizar que la función funcione con el mismo rendimiento.
Es posible escribir funciones en AWS Lambda en uno de los lenguajes admitidos de forma nativa.
Algunos lenguajes de programación son ampliamente compatibles con todas las principales plataformas serverless y también se adaptan bien al paradigma impulsado por eventos de la arquitectura serverless.
Los más usados son Node.js y Python; también hay soporte para Java y .NET en todos estos entornos en este momento.
Por otro lado existe un patrón común en este tipo de arquitectura que incluye los siguientes conceptos básicos:
La estructura del documento de evento es diferente para cada tipo de evento y contiene datos sobre el recurso o solicitud que activó la función. Los tiempos de ejecución de Lambda convierten el evento en un objeto y lo pasan a su función.
Las funciones de AWS Lambda se pueden invocar manualmente o respondiendo a diferentes eventos.
Después de implementar una función serverless, la función en sí debe tener una forma de ser invocada. Hay tres formas principales de invocar una de estas funciones:
Se invoca la función interactuando con ella a través de un endpoint HTTP.
Muchos proyectos comparten bibliotecas comunes en torno a diferentes funciones.
La gestión de dependencias es importante en cualquier proyecto, ya que necesita tener dependencias consistentes en todas sus funciones.
Una Layer Lambda es un archivo ZIP que contiene las bibliotecas. Las capas son muy útiles si tiene varias funciones de Lambda que utilizan las mismas dependencias, ya que las dependencias se importarán a la función de Lambda en tiempo de ejecución.
Un punto muy importante en la implementación de estas funciones es la posibilidad de manejar configuraciones de ambientes, versionado de código, deploy y pruebas de ejecución locales. Para estos fines existen herramientas como SAM y Terraform que permiten gestionar estas operaciones de una forma más prolija y eficiente.
Como resumen aplica correctamente lo especificado en la página de AWS:
«AWS Lambda le permite ejecutar código sin aprovisionar ni administrar servidores. Paga solo por el tiempo de cómputo que consume.
Con Lambda, puede ejecutar código para casi cualquier tipo de aplicación o servicio backend sin tener que realizar tareas de administración. Solo tiene que cargar el código y Lambda se encargará de todo lo necesario para ejecutar y escalar el código con alta disponibilidad»
https://martinfowler.com/articles/serverless.html
https://docs.aws.amazon.com/es_es/lambda/?id=docs_gateway
https://aws.amazon.com/es/serverless/developer-tools/
https://read.acloud.guru/serverless-functions-in-depth-507439b4be88