Serverless: ¿Está listo?

0
17

Hasta hace unos años, los servidores físicos eran una tecnología fundamental, el corazón digital de todos los centros de datos. Luego, la nube se materializó. Hoy en día, a medida que las organizaciones continúan moviendo una cantidad cada vez mayor de servicios hacia los proveedores de nube, los servidores locales parecen estar a punto de convertirse en una especie en peligro de extinción.

La informática sin servidor está haciendo su parte para acelerar la desaparición de los servidores locales. El concepto de recurrir a un proveedor de nube para administrar de manera dinámica la asignación de recursos de los equipos, y facturar a los usuarios solo por la cantidad real de recursos consumidos por las aplicaciones, está ganando cada vez más aceptación. Una encuesta de fines del 2019, realizada por la empresa de capacitación y medios técnicos O’Reilly, encontró que cuatro de cada 10 empresas que abarcan una amplia gama de ubicaciones e industrias ya han adoptado tecnologías serverless.

Sin embargo, no se deje engañar. A pesar de su nombre, la arquitectura serverless todavía se basa en servidores. «Ésta realmente se ejecuta en un servidor, pero es su proveedor de nube el que proporciona los servicios según sea necesario; usted no posee el servidor virtual ni el servicio de aplicación», advierte Joe Wilson, propietario de Volare Systems, un desarrollador de software serverless. En esencia, serverless es una arquitectura de implementación de aplicaciones que permite a los desarrolladores escribir código y luego ejecutarlo a pedido.

Serverless no es solo una tecnología, sino una forma completamente nueva de ver las operaciones esenciales de TI. «Un gran beneficio de serverless es que lo obliga a pensar en diseñar sus sistemas de una forma cloud-native«, comenta Brent Austin, arquitecto senior de estrategia de plataforma en la nube en Liberty Mutual Insurance. «Si piensa en diseñar aplicaciones con una mentalidad sin servidor, es más probable que implemente una arquitectura rentable, escalable y resistente, sin estar limitado por opciones técnicas específicas dentro de ese sistema».

Dónde usar la informática sin servidor
Serverless se puede implementar en un número casi ilimitado de formas. Muchos casos de uso se centran en necesidades relativamente simples, tales como las aplicaciones de páginas web, que ahora son codificadas sin servidor, anota Miha Kralj, directora de estrategia, arquitectura y entrega en la nube en la firma de servicios profesionales Accenture. «Debido a que las plataformas sin servidor se amplían automáticamente cuando es necesario, las aplicaciones simples pueden ser desarrolladas rápidamente, sin tener que preocuparse por las complejidades de la infraestructura».

Serverless destaca en la coordinación de diferentes sistemas de aplicación. «Serverless es ideal para detectar [un] evento e informar a otra aplicación o sistema -por ejemplo, cuando los cambios en una base de datos desencadenarán un cambio de código o una revisión de seguridad», señala Kralj. «Serverless puede ser una excelente manera de crear este tipo de flujos de trabajo automatizados entre sistemas».

Serverless también puede ser una buena opción para las necesidades opcionales», añade Kralj. «Cuando un cliente tiene una solución grande o compleja, pero necesita agregar una capacidad de un tipo u otro, serverless es ideal». Por ejemplo, en lugar de abrir una aplicación grande para insertar una función simple, tal como agregar un registro de cliente de una nueva fuente, se podría crear fácilmente una función serverless para capturar la nueva entrada y llamar a la API de la aplicación. «Un enfoque rápido, indoloro y confiable», indica Kralj.

Ventajas económicas de la informática sin servidor
Por naturaleza, las arquitecturas serverless tienden a ser más rentables que los enfoques alternativos. «Una capacidad central de serverless es que aumenta y se reduce a cero, para que no tenga que pagar cuando no la esté usando”, señala Austin.

Con tecnología serverless, el cliente paga por el consumo, no por la capacidad, anota Kevin McMahon, director ejecutivo de tecnologías móviles y emergentes en la consultora SPR. Compara el modelo sin servidor con tener un automóvil versus usar un servicio de transporte compartido. «Antes de la opción de compartir un viaje, si quería ir del punto A al B de manera confiable, debía tener un automóvil, pagar el seguro y mantenerlo», explica. «Con el viaje compartido ya no tiene que preocuparse por el automóvil, solo tiene que pagar para ir de A a B cuando lo desee -simplemente paga por el trabajo que debe hacerse, en lugar de pagar también por la infraestructura y el mantenimiento adicionales”.

Serverless también puede ayudar a los adoptantes a evitar los costos relacionados con la sobreasignación de recursos, asegurando que los gastos estén en línea con el consumo real, afirma Craig Tavares, jefe de la nube en la empresa de administración de servicios de TI Aptum. Además, al segmentar las aplicaciones en funciones simples y orientadas a un propósito, se pueden implementar y distribuir de manera rápida y económica dentro de la nube. «El aumento de la velocidad en el ciclo de desarrollo también mejora el go to market, lo que permite a las organizaciones centrarse en las mejoras continuas y la satisfacción del cliente», agrega Tavares.

Gracias a los precios de pago por uso no hay costo por tiempo de actividad, indica Tim Growney, CTO de Medinas, que opera un mercado para equipos médicos de segunda mano. «Su millaje definitivamente variará dependiendo de su caso de uso, pero puedo hablar por mi empresa que, por lo general, nunca cae fuera del nivel gratuito de AWS, lo que hace que alojamiento web cueste casi cero».

¿Serverless afecta la carga de trabajo de TI?
La informática sin servidor puede aligerar las cargas de trabajo de TI de varias maneras, sobre todo liberando al personal de la gestión rutinaria de las tareas de rendimiento, confiabilidad, mantenimiento y seguridad del servidor. «La necesidad de implementar controles para garantizar el tiempo de funcionamiento de la aplicación, administrar el sistema operativo subyacente con respecto a la aplicación del último parche de seguridad, o garantizar que la infraestructura subyacente haya sido aprovisionada con la suficiente capacidad para manejar las cargas de trabajo máximas, son cosas que no son manejadas por usted, sino por la plataforma serverless«, explica Austin.

Serverless también aligera las cargas de trabajo de los desarrolladores. «Escribir menos código, especialmente código de infraestructura, es atractivo para el resultado final de TI», señala Austin. «Tener más desarrolladores implementando la funcionalidad empresarial, mientras que permite que la tecnología serverless maneje el aprovisionamiento de infraestructura, es un gran beneficio para una organización de TI».

Acelerar la velocidad de desarrollo también puede hacer que las organizaciones sean más ágiles e innovadoras. Serverless es la forma más rápida de convertir una idea en una solución funcional, anota Kralj. «El enfoque es perfecto para el desarrollo rápido de aplicaciones, y ahora puede lograrlo con solo unas pocas líneas de código».

Paradójicamente, serverless a veces también puede aumentar las cargas de trabajo, aunque no al punto de anular los muchos beneficios de la tecnología. «Habrá más trabajo involucrado en la creación de funcionalidades y en la unión de APIs para lograr lo que el negocio necesita», advierte Greg Cox, arquitecto senior CTO en Sungard Availability Services, proveedor de servicios de recuperación de desastres.

Los errores de eliminación también pueden agregarse a las cargas de trabajo. «Sin seguridad estandarizada, pruebas, monitoreo y administración de la configuración, los errores serverless pueden ser insidiosos», advierte Bert Johnson, consultor principal AHEAD, empresa desarrolladora de plataformas de negocios digitales. Esto se debe a que los errores aumentan las deficiencias en el proceso de desarrollo de software, al tiempo que obligan a los desarrolladores a abandonar tareas críticas para unirse a las misiones de búsqueda y reparación.

Desventajas del serverless
La informática sin servidor también presenta algunos inconvenientes importantes. La tecnología no es particularmente buena, por ejemplo, para soportar operaciones prolongadas. «Serverless no sería el enfoque correcto si está ejecutando una tarea o proceso que se demora mucho en calcular», indica McMahon. «Actualmente, Azure Functions y AWS Lambda solo pueden ejecutarse durante un máximo de 10 y 15 minutos, respectivamente».

Los arranques en frío también pueden verse afectados. «Un arranque en frío es el periodo de tiempo -generalmente unas pocas docenas de milisegundos- necesario para activar una función con el fin de ejecutarla», explica McMahon. «Para la gran mayoría de los casos de uso, este periodo de tiempo es insignificante; pero hay algunos en los que este retraso es inaceptable y serverless no sería ideal».

Los posibles adoptantes también pueden ser disuadidos por la posibilidad de depender del proveedor. «Los líderes de TI y de desarrollo deben ser conscientes de que los principales sistemas serverless -AWS Lambda, Azure Functions y Google Cloud Functions- no son intercambiables», advierte Kralj.

Desde una perspectiva de seguridad, serverless presenta un desafío único. «Por un lado, el riesgo está limitado por las cortas duraciones de tiempo de ejecución y el aislamiento del sistema operativo subyacente del host», señala Rani Osnat, vicepresidente de estrategia del desarrollador de software de seguridad Aqua Security. «Por otro lado, las funciones a menudo se proporcionan con demasiados permisos o con componentes vulnerables, lo que puede llevar a que las funciones serverless se utilicen como un paso intermedio en un ataque para obtener acceso a otros recursos», indica. Serverless debe configurarse de forma segura y monitorearse para detectar anomalías y abusos, aconseja Osnat.

Los adoptantes de una arquitectura serverless también deben ser cautelosos al calcular sus necesidades de capacidad. «Los servidores tradicionales se caen cuando superan la capacidad, evitando el sobrecosto», indica Growney. «Serverless tiende a escalar de manera relativamente ilimitada, lo que puede generar errores muy costosos si no se tiene cuidado».

Finalmente, los conversos a serverless también pueden ver aumentar sus nóminas. «Si su empresa está centrada en la tecnología, uno de los gastos más importantes se asignará a la contratación de desarrolladores», señala Patrick Navarro, vicepresidente ejecutivo y jefe de nube en la agencia de reclutamiento de TI, Jefferson Frank. «Los desarrolladores calificados son escasos y, caros de contratar y retener».

Mirando hacia el futuro: Serverless ayuda a los esfuerzos de integración
A medida que los proveedores de la nube continúan introduciendo nuevos servicios, los líderes de TI se enfrentan al desafío de unir todo para construir una solución coherente que sea capaz de integrarse con las aplicaciones heredadas que se ejecutan en la nube o en el centro de datos. Serverless es ideal para este tipo de nuevos desafíos de integración, indica Kralj. «Con su naturaleza reactiva y dirigida por eventos, serverless permite el tipo de conexiones en tiempo real entre servicios que demandan las soluciones modernas».

Los recién llegados deberían acercarse a serverless de la misma manera que evaluarían cualquier tecnología disruptiva. «Tómese el tiempo para aprender y comprender el producto [serverless] antes de la implementación», aconseja John Kovolski, arquitecto de la nube en la consultora de TI Anexinet. «Como mínimo, tener un proceso de reversión», añade. Para obtener información sobre los posibles beneficios operativos y de costos, Kovolski sugiere medir el rendimiento de los sistemas actuales, para compararlos con el reemplazo hacia serverless.

Growney sugiere pasarse gradualmente a la tecnología serverless. «Esta no es necesariamente una tecnología ‘completa'», explica. «Se puede usar tan poco o tanto como sea necesario».

John Edwards, NetworkWorld.com