Tras capitalizar los logros del enfoque de microservicios, democratizado durante la última década, la computación serverless o Cloud native representa la última etapa de la transición a la nube. Esta evolución está transformando radicalmente la forma de desarrollar soluciones de aplicaciones con una promesa contundente: maximizar el uso de los modernos entornos en la nube y sus servicios gestionados, permitiendo desplegar el código sin que haya que preocuparse por los recursos informáticos o de almacenamiento subyacentes. Además del autoescalado, la alta disponibilidad y la facturación basada en el pago por uso, el modelo de desarrollo serverless también representa una inversión de futuro, ya que acelera el time to market de futuras funcionalidades. Asimismo, hace que las aplicaciones sean más escalables y fáciles de mantener.
Optimización de recursos sin gestión de infraestructura
Serverless es la culminación del modelo DevOps, o incluso el advenimiento de NoOps, un ideal que busca automatizar completamente el despliegue, la supervisión y la administración de las aplicaciones, así como de la infraestructura en la que se ejecutan. En una arquitectura serverless, el proveedor Cloud(como AWS, Google Cloud Platform, Microsoft Azure, etc.) se encarga de ejecutar el código, asignando dinámicamente los recursos según sea necesario. Esto permite a los desarrolladores centrarse en su actividad principal, aunque les exige trabajar de forma diferente, por ejemplo, dividiendo la aplicación en microservicios y dominando el ecosistema FaaS (con su amplia gama de más de 200 servicios en AWS) y la forma en que los bloques de construcción interactúan entre sí a través de eventos. Representa un avance significativo.
Históricamente, las aplicaciones se basaban en la programación síncrona: llamada → resultado. Con el modelo Cloud native y la computación serverless, las acciones se desencadenan por uno o varios eventos. Por ejemplo, al subir un archivo se desencadenará la ejecución del código y, por tanto, la función; es decir, la escritura en una base de datos”
CTO de la práctica Digital Apps en Claranet Francia
Como resultado, la aplicación se beneficia de un entorno de ejecución que ofrece aprovisionamiento y escalados automáticos (gestión de los aumentos de carga), alta disponibilidad de servicios y datos, y seguridad impecable en las capas inferiores. Todo ello sin inversión inicial, costes fijos ni las competencias requeridas para gestionar una infraestructura y su ciclo de vida, ya que la facturación se basa en el consumo de recursos, hasta el milisegundo o el byte. "Estos entornos de ejecución garantizan los mejores estándares del mercado, en términos de SLA y seguridad de los datos. Este nivel de servicio es difícil de alcanzar con una infraestructura local o en un Cloud privado; la puesta en común operada por el proveedor Cloud y la industrialización de la gestión de las instalaciones hacen que estas tecnologías sean accesibles para todos.” Y aunque sigue siendo aconsejable establecer una copia de seguridad, esta no es tanto para protegerse contra un posible error humano que, contra un fallo de la infraestructura, responsabilidad que recae en el proveedor Cloud.
Reducción del tiempo de comercialización e innovación en el desarrollo
El enfoque de microservicios, junto con la transición de máquinas virtuales a contenedores, ya ha reducido el tiempo necesario para entregar aplicaciones en comparación con el diseño monolítico que era la norma anteriormente. Ahora, los equipos de desarrollo pueden trabajar de forma independiente en diferentes áreas funcionales y entregarlas sobre la marcha. El modelo de desarrollo serverless, que sigue los principios de Cloud native, aporta aún más agilidad y extiende el enfoque de despliegue continuo a la infraestructura a través de lo que se conoce como Infrastructure as a Code (gestión y aprovisionamiento de una infraestructura mediante líneas de código). Pero esa no es su única ventaja. La explotación de servicios PaaS (Platform as a Service) y, sobre todo, FaaS (Function as a Service) que los proveedores Cloud, con AWS a la cabeza, han potenciado en los últimos años, permite acceder fácilmente a las últimas innovaciones tecnológicas, especialmente en áreas como el aprendizaje automático y la Inteligencia Artificial: reconocimiento de caracteres, conversión de voz a texto, visión por ordenador, etc.
Además, expandirse a una nueva zona geográfica acercando los servicios a los usuarios ya no requiere cambios en el código ni preocupaciones por replicar datos entre diferentes infraestructuras geográficamente distantes. Ahora es simplemente una opción que se puede activar con unos pocos clics desde el proveedor Cloud.
Modernización rentable, pero con nuevas exigencias
Aunque este modelo de arquitectura serverless es adoptado naturalmente por las startups y numerosos proyectos emergentes, también es posible convertir en él las aplicaciones existentes, pasando progresivamente las áreas funcionales al modo sin servidor, e implantando un gestor de API. Se trata de una forma eficaz y rentable de modernizar las aplicaciones sin tener que volver a desarrollarlas desde cero. Podemos avanzar gradualmente y apoyar el cambio necesario en la forma de trabajar de nuestros equipos, sin hipotecar el futuro con opciones técnicas irreversibles.
Sin embargo, este modo de desarrollo no es para todos: requiere un cierto grado de madurez en la transición a la nube, y algunos pueden temer, con razón, la dependencia de un único proveedor Cloud. Esto se debe a que los proyectos desarrollados de este modo son difíciles de trasladar del ecosistema de un proveedor a otro. Por otra parte, si bien la facturación por uso supone un beneficio inmediato para los proyectos que experimentan variaciones significativas de uso, a menudo implica la necesidad de racionalizar las aplicaciones y hacerlas más seguras para evitar, por ejemplo, llamadas a API innecesarias o malintencionadas.
El desarrollo en modo serverless no es menos exigente, al contrario. Con la facturación bajo demanda, el rendimiento del código tiene un impacto económico directo en el proyecto. Mientras que la seguridad de las capas inferiores corre a cargo del proveedor Cloud, la seguridad de la capa de aplicación sigue siendo prerrogativa vuestra, de acuerdo con el principio de responsabilidad compartida y en virtud de las obligaciones que incumben a cualquier organización que maneje datos personales o cumpla con normas o certificaciones. El seguimiento y la depuración también son más complejos que con una aplicación secuencial. Y la estrategia de desacoplamiento, especialmente cuando se trata de modernizar una aplicación existente para pasar de una solución tradicional de ecommerce a una arquitectura headless (sin front office), no se improvisa.
Estas son solo algunas de las razones por las que necesitas el apoyo adecuado para abordar esta revolución y sacarle el máximo partido, más allá de lo que podría parecer una moda pasajera para quienes no comprenden del todo lo que está en juego.
Para obtener más información sobre nuestros servicios Cloud para tu organización, puedes escribirnos a través del formulario de contacto: /es/contacto