Sobre el estado actual del ‘serverless’: sus ventajas, retos y futuro
Todos los que estábamos desarrollando aplicaciones antes de la introducción de Amazon Web Services a principios de la década de 2000, tenemos recuerdos de quemar el aceite de medianoche, luchando contra las primeras capas del modelo OSI para hacer que nuestro código sea ejecutable. en servidores.
En aquel entonces, la idea de que podíamos crear y ejecutar aplicaciones sin preocuparnos por los servidores habría parecido nada menos que ciencia ficción.
Y con razón, considerando que en más de 10 años, tuvieron que ocurrir seis avances críticos para que surgiera la tecnología sin servidor.
(Erwin van Eyk, et al., 2018)
En la informática sin servidor, los programadores crean aplicaciones utilizando abstracciones de alto nivel que ofrece el proveedor de la nube (Schleier-Smith, 2021). Las implementaciones más comunes de serverless en la actualidad son Backend-as-a-Service (BaaS) y Function-as-a-Service (FaaS).
FaaS es una forma de informática sin servidor en la que el proveedor de la nube gestiona los recursos, el ciclo de vida y la ejecución basada en eventos de las funciones proporcionadas por el usuario.
(Erwin van Eyk, et al., 2018).
En BaaS, la oferta abarca desde…
- almacenamiento de objetos sin servidor,
- colas de mensajes,
- bases de datos de almacenamiento de clave-valor,
- sincronización de datos de clientes móviles,
- etc.
(Schleier-Smith, 2021).
La ventaja sin servidor
Entre las ofertas cada vez mayores a través de FaaS y BaaS por parte de los principales proveedores de nube, el paradigma sin servidor tiene tres cualidades esenciales:
- Una abstracción que oculta los servidores,
- un modelo de costo de pago por uso
- y un excelente escalado automático.
(Schleier-Smith, 2021)
El paradigma sin servidor proporciona una solución simple, rápida, asequible y escalable para lanzar microservicios escritos en los lenguajes de programación de alto nivel más comunes.
Sin servidor: ¿más compensaciones para Dev que para Ops?
Hoy en día, serverless está integrado en casi todas las discusiones de diseño de sistemas, a veces constituyendo un requisito arquitectónico incluso antes de que se analice el problema comercial.
Esto plantea algunos desafíos, principalmente para los desarrolladores, quienes a veces necesitan adaptarse a este paradigma, incluso cuando no es para su propósito.
Por el contrario, la computación en la nube lo ha cambiado todo para los operadores y administradores de sistemas, y mucho menos para los desarrolladores.
(Schleier-Smith, 2021)
Particularmente en FaaS, con las capas adicionales de abstracción, surgieron nuevas restricciones: vidas limitadas, estado no persistente y redes restringidas.
(Joseph M. Hellerstein, et al., 2018)
Como desarrolladores, debemos diseñar nuestras aplicaciones en torno a esas restricciones, especialmente el tiempo de espera (15 minutos).
Este límite estricto fue el factor que llevó a la decisión de abandonar el uso de Lambdas para una aplicación. No podíamos asegurar que en ciertos contextos no se superaría el tiempo de espera.
Los proveedores de la nube están ofreciendo soluciones a algunos de estos desafíos, generalmente acompañadas de pasar al cliente los costos adicionales. Por ejemplo, provisión de simultaneidad para compensar los arranques en frío de lambda.
El futuro de la computación sin servidor
A principios de la década de 2000, desarrollé un servicio de marketing por SMS. Ofrecimos dos versiones:
- una API que permitía a los clientes desarrollar sus integraciones
- un portal web que brindaba toda la funcionalidad para la gestión de campañas de marketing por SMS.
- Si bien el software era complejo, el hardware era la fuente de todas las pesadillas.
Como empresa nueva, no podíamos permitirnos utilizar el espacio del centro de datos. Por lo tanto, la única solución viable terminó siendo mi sala llena de servidores, antenas y cables.
En última instancia, los altos costos de electricidad y las inevitables interrupciones del servicio debido a Internet o cortes de energía de una instalación doméstica llevaron al final del negocio.
Serverless ofrece una gran diferencia para las pequeñas empresas en las primeras etapas de intentar lanzar un producto o servicio al mercado. Con los avances de la computación sin servidor hoy en día, mi plataforma de SMS sería económica y prácticamente viable.
Mi humilde predicción es que, para las grandes empresas, las mejoras sin servidor darán lugar a un aumento de la confianza para ampliar sus plataformas a través de microservicios.
Las empresas cambiarán hacia el desarrollo interno en lugar de la tendencia actual de aprovechar los productos SaaS (se espera que el mercado SaaS alcance $172 mil millones, de $ 145,5 mil millones anteriormente).
(Gilbert, 2022)
La computación en la nube ahora está entrando en una segunda fase en la que su crecimiento continuo estará impulsado por una nueva propuesta de valor: la programación en la nube simplificada
(Schleier-Smith, 2021).
Serverless continuará evolucionando en formas que no podemos anticipar hoy, ya que más y más avances tecnológicos continuarán permitiendo una mayor innovación, no solo en la tecnología en sí, sino también para resolver los desafíos y limitaciones actuales de las prácticas de desarrollo de software en la nube.
Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel: