LFCA: Aprenda la informática sin servidor, los beneficios y las dificultades - Parte 15


La tecnología sin servidor ha generado mucho entusiasmo en la comunidad tecnológica, lo que ha provocado mucha curiosidad y ha recibido algunas reacciones negativas. Es una tecnología que comenzó con el lanzamiento de AWS Lamba en 2014, que pronto fue seguida por Azure Functions más adelante en 2016.

Más tarde, Google siguió su ejemplo con el lanzamiento de las funciones de Google Cloud en julio de 2018. Entonces, ¿qué es la tecnología sin servidor? Para responder mejor a esta pregunta, volvamos a la informática tradicional basada en servidor.

En el modelo de TI tradicional, usted estaba a cargo básicamente de todo. Como propietario de un negocio, tendría que presupuestar los servidores y otros equipos de red, como enrutadores e interruptores, y bastidores para el duelo de los servidores.

También tendría que preocuparse por obtener un centro de datos prístino y seguro y asegurarse de que pueda proporcionar refrigeración y energía redundante y servicio de Internet de manera suficiente. Una vez configurado, deberá instalar el sistema operativo y luego implementar sus aplicaciones. Además, se le requeriría utilizar firewalls y sistemas de prevención y detección de intrusiones.

Como habrás adivinado, esto requiere muchos recursos, es costoso y agotador.

Luego, la computación en la nube irrumpió en el mundo de la tecnología, revolucionando por completo la forma en que implementamos y administramos servidores y aplicaciones. Presagiaba una nueva era en la que los desarrolladores podían preparar fácilmente bases de datos y servidores en la nube en poco tiempo y empezar a trabajar en sus aplicaciones. No se preocupe por los problemas asociados con la informática de TI tradicional, como el tiempo de inactividad, los equipos costosos y el alquiler de centros de datos.

Si bien la computación en la nube trajo consigo la conveniencia y las economías de escala en la implementación de recursos de TI, algunas empresas comprarían en exceso unidades de espacio de servidor y recursos como RAM y CPU en previsión de un aumento en el tráfico o la actividad de la red que podría abrumar a las aplicaciones.

Si bien es una medida prudente, el resultado no deseado es la subutilización de los recursos del servidor, que a menudo se desperdician. Incluso con el ajuste de escala automático, un aumento repentino e imprevisto podría resultar costoso. Además, aún deberá realizar otras tareas, como configurar balanceadores de carga, que probablemente también aumenten los costos operativos.

Es evidente que, a pesar de hacer un cambio a la nube, algunos cuellos de botella aún persisten y tienen el potencial de aumentar los costos y provocar el desperdicio de recursos. Y aquí es donde entra en juego la informática sin servidor.

¿Qué es la informática sin servidor?

La computación sin servidor es un modelo en la nube que brinda servicios de backend a los usuarios mediante el pago por uso. En términos simples, el proveedor de la nube asigna recursos informáticos y cobra solo por el tiempo en que se ejecutan las aplicaciones. Esto es el equivalente a cambiar de un plan mensual de pago por cable a pagar solo cuando está viendo sus programas de televisión.

El término "sin servidor" puede ser un poco engañoso. ¿Hay servidores involucrados? Sin embargo, en este caso, los servidores y la infraestructura subyacente son manejados y mantenidos exclusivamente por el proveedor de la nube. Como tal, no necesita preocuparse por ellos. Como desarrollador, su enfoque se centra exclusivamente en desarrollar sus aplicaciones y asegurarse de que funcionen satisfactoriamente.

Al hacerlo, la informática sin servidor elimina el dolor de cabeza de administrar servidores y le ahorra un tiempo precioso para trabajar en sus aplicaciones.

Servicios de backend proporcionados por la informática sin servidor

Un ejemplo perfecto de servicio backend sin servidor es la plataforma Function-as-a-Service (FaaS). FaaS es un modelo de computación en la nube que permite a los desarrolladores desarrollar, ejecutar y administrar código en respuesta a eventos sin la complejidad de construir y administrar una infraestructura subyacente generalmente asociada con la implementación de microservicios.

Faas es una subcategoría de la informática sin servidor con diferencias sutiles. La computación sin servidor abarca una amplia gama de servicios que incluyen computación, base de datos, almacenamiento y API, por mencionar algunos. FaaS se centra únicamente en un modelo informático impulsado por eventos en el que las aplicaciones se ejecutan bajo demanda, es decir, en respuesta a una solicitud.

Ejemplos de modelos de computación FaaS incluyen:

  • AWS Lambda de AWS
  • Funciones de Azure de Microsoft
  • Funciones en la nube de Google
  • Trabajadores de Cloudflare de Cloudflare

En resumen, hemos visto que con FaaS, solo paga por el tiempo que su aplicación se está ejecutando y el proveedor de la nube prácticamente hace todo por usted, incluido el manejo de la infraestructura subyacente. La gestión de servidores es la menor de tus preocupaciones.

Beneficios de la informática sin servidor

A estas alturas, ya tiene una buena idea de algunos de los méritos que aporta la informática sin servidor. Profundicemos en las ventajas de adoptar la tecnología.

Esta es quizás una de las mayores ventajas de adoptar el modelo de computación sin servidor. Aunque el término "sin servidor" podría malinterpretarse para implicar que no hay servidores involucrados, el hecho es que las aplicaciones aún se ejecutan en servidores. El quid de la cuestión es que la administración de servidores es completamente asunto del proveedor de la nube, y esto le otorga más tiempo para trabajar en sus aplicaciones.

La infraestructura sin servidor proporciona escalado automático de aplicaciones en respuesta a un aumento en el uso, la demanda o el crecimiento de la base de usuarios. Si la aplicación se ejecuta en varias instancias, los servidores se iniciarán y se detendrán cuando sea necesario. En una configuración tradicional de computación en la nube, un pico en el tráfico o la actividad puede sobrecargar fácilmente los recursos del servidor y generar inconsistencias con la aplicación que se está ejecutando.

Como desarrollador, no necesita crear ninguna infraestructura especial para que sus aplicaciones tengan una alta disponibilidad. La informática sin servidor le proporciona alta disponibilidad incorporada para garantizar que sus aplicaciones estén en funcionamiento cuando sea necesario.

La informática sin servidor asigna recursos en función de su uso. Su aplicación solo requerirá funciones de backend cuando el código se ejecute y se escalará automáticamente en función de la cantidad de carga de trabajo.

Esto proporciona economías de escala, ya que solo se le factura por el tiempo que se ejecutan las aplicaciones. En el modelo de servidor tradicional, debe pagar por el espacio del servidor, las bases de datos, entre otros recursos, independientemente de si la aplicación está en ejecución o inactiva.

La arquitectura sin servidor elimina la necesidad de configurar el backend y cargar manualmente el código a los servidores como en la configuración tradicional. Es fácil para los desarrolladores cargar pequeñas pilas de código de manera eficiente y lanzar un gran producto.

La facilidad de implementación también permite a los desarrolladores parchear y actualizar fácilmente ciertas características del código sin alterar toda la aplicación.

Errores de la informática sin servidor

¿Existen inconvenientes asociados con el modelo sin servidor? Vamos a averiguar.

Las aplicaciones mal configuradas representan uno de los mayores riesgos asociados con la informática sin servidor. Si opta por AWS, por ejemplo, es prudente configurar diferentes permisos para su aplicación que, a su vez, determinarán cómo interactuarán con otros servicios dentro de AWS. Cuando los permisos son vagos, una función o un servicio pueden tener más permisos de los necesarios, lo que deja un amplio margen para las violaciones de seguridad.

Optar por un modelo sin servidor puede presentar desafíos al migrar a otro proveedor. Esto se debe principalmente a que cada proveedor tiene sus propias características y flujos de trabajo que varían ligeramente del resto.

Otro desafío que plantea el modelo sin servidor es la dificultad de reproducir un entorno sin servidor para probar y monitorear el rendimiento del código antes de su implementación. Esto se debe principalmente a que los desarrolladores carecen de accesibilidad a los servicios de backend que son propiedad exclusiva del proveedor de la nube.

Monitorear aplicaciones sin servidor es una tarea compleja por las mismas razones por las que la depuración y las pruebas son una tarea ardua. Esto se ha visto agravado por la falta de disponibilidad de herramientas con integración a servicios backend como AWS Lamba.

La informática sin servidor continúa ganando terreno y aceptación entre las empresas y los desarrolladores por 3 razones clave. Uno es la asequibilidad que implica costos operativos reducidos. En segundo lugar, la computación sin servidor facilita el escalado automático y rápido y, finalmente, los desarrolladores no tienen que preocuparse por la infraestructura subyacente que maneja el proveedor.

Mientras tanto, los proveedores de la nube están trabajando las 24 horas del día para abordar algunos de los problemas asociados con la computación sin servidor, como la dificultad para depurar y monitorear las aplicaciones.