Computación sin servidor y modelo FaaS: la próxima etapa en la computación en la nube

Al escuchar el término Informática sin servidor, la mayoría de nosotros puede malinterpretar que estamos entrando en una nueva era de la informática, en la que no necesitamos un servidor para ejecutar las aplicaciones. Aunque el término es inapropiado, la computación sin servidor representa una nueva etapa en la maduración de la nube. Esta característica está dedicada a aquellos desarrolladores interesados ​​en conocer el siguiente nivel de computación en la nube. Profundicemos en las siguientes secciones.

Serverless-Computing-and-FaaS-Model-–-The-Next-Stage-in-Cloud-Computing

  • Informática sin servidor
  • Modelo FaaS
  • Ventajas y limitaciones de la informática sin servidor
  • Plataforma sin servidor de AWS

Informática sin servidor

La computación sin servidor es un modelo de ejecución de computación en la nube que brinda flexibilidad para desarrollar, implementar y ejecutar aplicaciones sin preocuparse por el aprovisionamiento de servidores. Ayuda a los desarrolladores a centrarse en su producto principal en lugar de dedicar tiempo a aprovisionar, escalar y administrar servidores. 

Este modelo de ejecución de computación en la nube no elimina la necesidad de un servidor. Pero proporciona una infraestructura completa que requiere ejecutar su aplicación agregando una capa de abstracción sobre la infraestructura de la nube. Algunos de los proveedores de servicios en la nube que brindan un marco sin servidor son AWS, Microsoft Azure y Google Cloud Platform (GCP).

Características de la informática sin servidor

  • La informática sin servidor le permite ejecutar código sin administrar servidores, y las funciones se ejecutan en función de un evento en lugar de ejecutarse todo el tiempo.
  • Puede ejecutar cualquier tipo de aplicación, independientemente de los lenguajes o los marcos que se utilicen.
  • Facilita el escalado automático de una función en función de la solicitud. No es necesario realizar ninguna configuración adicional.
  • Las funciones pueden activarse mediante diferentes tipos de eventos y también mediante el uso de puertas de enlace API.
  • Modelo FaaS

La mejor manera de entender la computación sin servidor es explicando el modelo FaaS. La mayoría de nosotros estamos familiarizados con los términos SaaS, IaaS y PaaS. Echemos un vistazo a estos términos antes de entrar en FaaS.

El software como servicio (SaaS) es un servicio de computación en la nube en el que el software se aloja de forma centralizada y el servicio se entrega a través de Internet mediante una suscripción. Algunos de los ejemplos de SaaS son Google Apps, Dropbox, WebEx, etc.

La infraestructura como servicio (IaaS) proporciona recursos de infraestructura y también administra y amplía el recurso. Aquí solo pagas por lo que usas. Algunos de los ejemplos de IaaS son AWS EC2, máquinas virtuales de Azure, etc.

La plataforma como servicio (PaaS) proporciona tanto el software como la infraestructura necesarios para el desarrollo de aplicaciones. AWS Beanstalk, los servicios de aplicaciones de Azur son algunos de los ejemplos.

Entonces, entremos en el modelo FaaS. Es un modelo de función como servicio que permite a los desarrolladores desarrollar, ejecutar y administrar aplicaciones sin preocuparse por la infraestructura de la aplicación. Se basa en el concepto del bloque de código de propósito único llamado funciones . Aquí, el modelo utiliza una arquitectura basada en eventos para procesar estas funciones, en la que cada función se ejecuta desenstringndo un evento, como requests de API, eventos en la base de datos, eventos programados, etc. Y las aplicaciones sin servidor se crean combinando múltiples funciones (FaaS).

Otro punto a tener en cuenta relacionado con el modelo FaaS es que es apátrida . Dado que las funciones del modelo FaaS se ejecutan en contenedores efímeros, no podrá acceder al estado de una ejecución anterior. Sin embargo, puede utilizar fuentes externas como Amazon S3 para almacenar y recuperar las instancias de datos. Estos datos se pueden compartir dentro de las funciones.

Si mira descuidadamente, puede sentir que PaaS y FaaS son casi similares. Pero un análisis detallado te ayudará a diferenciar entre PaaS y FaaS. Tomemos un momento para entender la diferencia entre ellos.

  • Aunque Paas ofrece facilidad en la implementación y administración de aplicaciones web, no proporciona la flexibilidad para subir y bajar toda su aplicación para cada solicitud. Por otro lado, FaaS brinda la flexibilidad para hacer lo mismo.
  • En la infraestructura PaaS, debe depender de otras soluciones basadas en PaaS, como AWS Elastic Beanstalk, para gestionar el escalado de aplicaciones. Pero estas soluciones no son lo suficientemente flexibles para manejar requests individuales, mientras que la infraestructura FaaS ofrece formas eficientes de manejar el escalado de aplicaciones.

Ventajas y limitaciones de la informática sin servidor

Hasta ahora, hemos discutido la computación sin servidor y el modelo FaaS. Ahora, veamos las ventajas y limitaciones de la computación sin servidor.

Ventajas de la informática sin servidor

La informática sin servidor ofrece numerosos beneficios. Veamos algunos de ellos.

  1. Costo operativo reducido : en FaaS, los tiempos de ejecución predefinidos (la infraestructura solo se usa durante un cierto período) y compartir los mismos tiempos de ejecución contribuye a una reducción significativa en el costo operativo.
  2. Desarrollo rápido : dado que la infraestructura es administrada por el proveedor de la nube, los desarrolladores pueden concentrarse en las funciones principales.
  3. Escalado de costes : Facilita el escalado horizontal automático y también se encarga del escalado hacia arriba y hacia abajo de la infraestructura. Esta oferta da como resultado una reducción significativa en el costo de escalado, en comparación con la oferta de PaaS.
  4. Gestión operativa más sencilla : FaaS proporciona la solución más sencilla para implementar y gestionar aplicaciones. Sobre todo, puede transformar su idea de negocio en una realidad en un corto período de tiempo.

Limitaciones de la informática sin servidor

Aunque la informática sin servidor tiene numerosos beneficios, también existen ciertas limitaciones. Echemos un vistazo a los siguientes puntos.

  1. Control de la infraestructura : dado que las arquitecturas sin servidor son supervisadas por los proveedores de la nube, no tiene ningún control sobre la infraestructura.
  2. Aplicación de ejecución prolongada : no está bien adaptada para operaciones por lotes de ejecución prolongada debido a sus características de tiempo de ejecución predefinidas, donde la mayoría de los proveedores de nube tienen un período de tiempo de espera.
  3. Bloqueo del proveedor : una de las principales limitaciones es el bloqueo del proveedor, donde no puede cambiar a otro proveedor de nube del existente.
  4. Inicio en frío : dado que FaaS es una arquitectura basada en eventos, plantea la preocupación de un inicio en frío. Puede tomar un poco más de tiempo responder a un evento después de un período de inacción.
  5. Infraestructura compartida : dado que la aplicación sin servidor utiliza una infraestructura compartida, muchas aplicaciones pueden ejecutarse independientemente de la propiedad comercial. Por lo tanto, hay posibilidades de que su código se vea afectado por las funciones de generación de alta carga de las aplicaciones vecinas. Pero este problema existe no solo en las ofertas sin servidor, sino también en muchas otras ofertas de servicios compartidos.

Plataforma sin servidor de AWS

AWS proporciona una plataforma sin servidor completamente administrada para implementar y ejecutar su aplicación. Veamos los servicios proporcionados por la plataforma sin servidor de AWS. 

Cómputo : AWS proporciona servicios como   AWS Lambda para ejecutar el código sin aprovisionar ni administrar servidores, Lambda@Edge para responder a eventos generados por eventos de Amazon CloudFront y AWS Fargate facilita un motor de cómputo sin servidor para contenedores.

Almacenamiento : AWS proporciona Amazon Simple Storage Service (Amazon S3) que garantiza un almacenamiento de objetos seguro, duradero y altamente escalabley Amazon Elastic File System (Amazon EFS) proporciona un almacenamiento de archivos simple, escalable y elástico .

Almacenes de datos : Amazon DynamoDB proporciona el servicio de base de datos NoSQL y Amazon Aurora Serverless (para Amazon Aurora ) permite el inicio, el cierre y la capacidad de ampliación y reducción automáticos de la base de datos. AWS también ofrece servicios de proxy de base de datos mediante Amazon RDS Proxy .

API Proxy : el servicio Amazon API Gateway ayuda a los desarrolladores a crear, publicar, mantener y proteger las API a cualquier escala. Aquí, le permite procesar cientos de miles de llamadas API simultáneas al manejar el tráfico de manera eficiente.

Integración de aplicaciones : facilita servicios como Amazon SNS  (servicio de mensajería pub o sub), Amazon SQS (servicio de cola de mensajes), AWS AppSync (para acceder, manipular y combinar datos de forma segura) y Amazon EventBridge (para transferir datos de aplicaciones de diferentes fuentes a su entorno de AWS).

Orquestación: AWS Step Functions organiza los componentes de las aplicaciones distribuidas y los microservicios.

Análisis : AWS proporciona servicios como Amazon Kinesis (para transmisión de datos en AWS) y Amazon Athena (un servicio de consulta interactivo para analizar datos) para manejar el análisis de datos. 

Además de los servicios anteriores, también proporciona una amplia gama de herramientas para el proceso de desarrollo de aplicaciones sin servidor. Estas herramientas incluyen herramientas de integración y prueba continuas, herramientas de implementación, monitoreo y diagnóstico, marcos y complementos IDE. 

Resumen

La computación sin servidor ofrece beneficios significativos, como un desarrollo rápido, una implementación sin servidor, un menor costo operativo y una administración operativa más sencilla. Sin embargo, no significa No Ops. De hecho, no necesita un administrador del sistema para administrar la infraestructura, pero debe monitorear ciertas operaciones para asegurarse de que su aplicación se esté ejecutando. Pero no se preocupe, FaaS en sí proporciona servicios de datos de monitoreo que lo ayudan a monitorear sus aplicaciones. Y un último punto a tener en cuenta, puede que no sea el enfoque correcto para cada desafío, así que sé lo suficientemente inteligente como para elegirlo sabiamente. Prepárese para aprovechar la tecnología sin servidor y concéntrese en el proceso de codificación en lugar de aprovisionar servidores.   

Publicación traducida automáticamente

Artículo escrito por SonuGeorge y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *