Hasta hace unos años, los servidores físicos eran una tecnología fundamental, el corazón digital de todos los centros de datos. Entonces la nube se materializó. Hoy, a medida que las organizaciones continúan pagando una cantidad cada vez mayor a los proveedores de servicios en la nube, los servidores locales parecen estar a punto de convertirse en una especie en peligro de extinción, para ser reemplazados de esta manera por serverless computing.
La informática sin servidor está haciendo su parte para acelerar la desaparición de la arquitectura basada en servidores locales. El concepto de recurrir a un proveedor de la nube para administrar dinámicamente la asignación de recursos pagar a partir de una estimación real del consumo de recursos de cómputo de las aplicaciones, está ganando cada vez más aceptación.
Una encuesta de finales de 2019 realizada por O’Reilly descubrió que cuatro de cada 10 empresas, que abarcan una amplia gama de ubicaciones e industrias, ya han adoptado tecnologías sin servidor.
Sin embargo, no te dejes engañar. A pesar de su nombre, la informática sin servidor todavía se basa en servidores. “La informática sin servidor realmente se está ejecutando en un servidor, pero tu proveedor de la nube proporciona los recursos según sea necesario; no posees el servidor virtual o el servicio de aplicación”, observa Joe Wilson, propietario de Volare Systems , un desarrollador de software para este tipo de arquitecturas. En esencia, sin servidor 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 fundamentales de TI. “Una ventaja importante de esta arquitectura es que te obliga a pensar en diseñar tus sistemas de forma nativa en la nube”, dice Brent Austin, arquitecto senior de estrategia de plataforma en la nube en Liberty Mutual Insurance . “Si piensas en diseñar aplicaciones con una mentalidad sin servidor primero, es más probable que implementes una arquitectura rentable, escalable y resistente, sin estar sujeto a elecciones técnicas específicas dentro de ese sistema”.
La computación sin servidor se puede implementar en un número casi ilimitado de formas. Muchos casos de uso se centran en necesidades relativamente simples, como las aplicaciones de páginas web, que ahora se codifican comúnmente sin servidor, detalla Miha Kralj, directora gerente de estrategia, arquitectura y entrega en la nube en la firma de Accenture . “Debido a que las plataformas sin servidor se escalan automáticamente cuando es necesario, las aplicaciones simples se pueden desarrollar rápidamente sin tener que preocuparse por las complejidades de la infraestructura”.
Serverless sobresale en la coordinación de diferentes sistemas de aplicación. “La informática sin servidor 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. “Sin servidor puede ser una excelente manera de crear este tipo de flujos de trabajo automatizados entre sistemas”.
Sin servidor también puede ser una buena opción para las necesidades “atornilladas”, dice Kralj. “Cuando un cliente tiene una solución grande o compleja pero necesita agregar una capacidad de un tipo u otro, sin servidor puede ser ideal”. Por ejemplo, en lugar de abrir una aplicación grande para insertar una función simple, como agregar un registro de cliente de una nueva fuente, se puede crear fácilmente una función sin servidor para capturar la nueva entrada y llamar a la API de la aplicación. “Un enfoque rápido, indoloro y confiable”, dice Kralj.
Por naturaleza, las arquitecturas de computación sin servidor tienden a ser más rentables que los enfoques alternativos. “Una capacidad central de sin servidor es que se escala hacia arriba y hacia abajo a cero, de modo que cuando no se usa no se paga”, aconseja Austin.
Con tecnología sin servidor, el cliente paga por el consumo, no por la capacidad, dice 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 compartir el viaje, si quería ir del punto A al B de manera confiable, probablemente tenía un automóvil, pagaba el seguro y tenía que mantenerlo”, explica. “Con el viaje compartido, ya no tiene que preocuparse por el automóvil, solo puede pagar para ir de A a B cuando lo desee, simplemente paga por el trabajo que debe hacerse en lugar de la infraestructura y el mantenimiento adicionales”.
La informática sin servidor 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, observa Craig Tavares, jefe de nube de la empresa de gestión de servicios de TI en 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 lanzamiento al mercado, lo que permite a las organizaciones centrarse en mejoras continuas y la satisfacción del cliente”, agrega Tavares.
Gracias a los precios de pago por uso, no hay costo de tiempo de actividad, dice 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 decir que para mi compañía … por lo general, nunca quedaremos fuera del nivel gratuito de AWS, por lo que nuestro alojamiento web cuesta casi cero”.
La informática sin servidor puede aligerar las cargas de trabajo de TI de varias maneras, sobre todo al liberar al personal de la gestión rutinaria de las tareas de rendimiento, confiabilidad, mantenimiento y seguridad del servidor. “La necesidad de implementar comprobaciones de estado para garantizar el tiempo de actividad 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 suficiente capacidad para manejar las cargas de trabajo máximas, son cosas que esencialmente son manejadas por ti la plataforma sin servidor “, dice Austin.
Sin servidor también aligera las cargas de trabajo de los desarrolladores. “Escribir menos código, particularmente código de infraestructura, es atractivo para el resultado final de TI”, señala Austin. “Tener más desarrolladores que implementen la funcionalidad empresarial, al tiempo que permite que la tecnología sin servidor maneje el aprovisionamiento de infraestructura, es un poderoso 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. Sin servidor es la forma más rápida de convertir una idea en una solución funcional, dice Kralj. “El enfoque es perfecto para el desarrollo rápido de aplicaciones; ahora puedes lograrlo con solo unas pocas líneas de código”.
Paradójicamente, serverless puede aumentar las cargas de trabajo, aunque no en la medida en que anule los muchos beneficios de la tecnología. “Habrá más trabajo involucrado en la creación de funcionalidades … y uniendo API para lograr lo que el negocio necesita”, advierte Greg Cox, arquitecto senior y CTO del proveedor de servicios de recuperación ante desastres, Sungard Availability Services .
Los errores de eliminación también pueden agregarse a las cargas de trabajo. “Sin seguridad estandarizada, pruebas, monitoreo y administración de configuración, los errores sin servidor son insidiosos”, advierte Bert Johnson, consultor principal, nube, en el desarrollador de plataformas de negocios digitales AHEAD . Señala 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 misiones de búsqueda y reparación.
Para todos sus beneficios, la informática sin servidor también presenta algunos inconvenientes importantes. La tecnología no es particularmente buena, por ejemplo, para soportar operaciones prolongadas. “Sin servidor no sería el enfoque correcto si estás ejecutando una tarea o proceso que requiere mucho tiempo de cálculo”, dice 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 provocar quebraderos de cabeza en algunos adoptantes sin servidor. “Un inicio en frío es el período de tiempo, generalmente unas pocas docenas de milisegundos, necesario para activar una función para ejecutarla”, explica McMahon. “Para la gran mayoría de los casos de uso esto puede ser insignificante, pero hay algunos casos de uso en los que este retraso es inaceptable y la computación sin servidor no sería ideal”.
Los posibles adoptantes también pueden ser disuadidos por la posibilidad de que el proveedor cierre. “Los líderes de TI y desarrollo … deben ser conscientes de que los principales sistemas sin servidor (AWS Lambda, Azure Functions y Google Cloud Functions) no son intercambiables”, advierte Kralj.
Desde una perspectiva de seguridad, sin servidor 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 host subyacente”, señala Rani Osnat, vicepresidente de estrategia para el desarrollador de software de seguridad Aqua Security . “Por otro lado, las funciones a menudo se aprovisionan con demasiados permisos o con componentes vulnerables, lo que puede hacer que las funciones sin servidor se utilicen como un paso intermedio en un ataque para obtener acceso a otros recursos”, dice. Sin servidor debe configurarse de forma segura y monitorearse para detectar anomalías y abuso, aconseja Osnat.
Los interesados en serverless deben ser cautelosos al calcular sus necesidades de capacidad. “Los servidores tradicionales se caen cuando superan la capacidad, lo que evita el sobrecosto”, dice Growney. “Sin servidor tiende a escalar de manera relativamente ilimitada, lo que puede generar errores muy costosos si no se tiene cuidado”.
Finalmente, los conversos sin servidor también pueden ver aumentar sus nóminas. “Si tu empresa está centrada en la tecnología, uno de los desembolsos más importantes se asignará a la contratación de desarrolladores”, dice Patrick Navarro, vicepresidente ejecutivo y jefe de nube en la agencia de reclutamiento de TI Jefferson Frank . “Los desarrolladores calificados son delgados en el terreno y, a su vez, caros de contratar y retener”.
A medida que los proveedores de la nube continúan introduciendo nuevos servicios, los líderes de TI enfrentan el desafío de unir todo para formar 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. La computación sin servidor es ideal para este tipo de nuevos desafíos de integración, dice Kralj. “Con su naturaleza reactiva e impulsada por eventos, sin servidor permite el tipo de conexiones en tiempo real entre servicios que demandan las soluciones modernas”.
Los recién llegados deberían acercarse a los “servidores sin servidor” de la misma manera que evaluarían cualquier tecnología disruptiva. “Tómate el tiempo para aprender y comprender el producto [sin servidor] antes de la implementación”, aconseja John Kovolski, arquitecto en la nube de la firma de consultoría de TI Anexinet . “Como mínimo, tener un proceso de reversión”, dice. 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 sin servidor planificado.
Growney sugiere ir gradualmente a la tecnología serverless. “Sin servidor no es necesariamente una tecnología ‘completa’”, explica. “Se puede usar tan poco como sea necesario”.
Fuente: The Standard CIO