UC Bekeley, su visión de serverless
CLOUD NATIVE, DESARROLLO WEB.La universidad de California – Berkeley ha publicado su guía de Serverless titulada “Cloud Programming Simplified: A Berkeley View on Serverless Computing".
UC Berkeley es un importante referente académico en el área de computación. La publicación de su paper sobre cloud en 2008 fue un importante hito para darle perspectiva al fenómeno desde un punto de vista académico y no-comercial, ahora en 2019 se evalúan los avances y se corrobora el potencial de esta tecnología.
En esta entrada exploramos algunos de los puntos principales del documento, especialmente los orígenes de serverless, las limitaciones de serverless y una visión de su desarrollo a futuro.
Puede descargar el documento aquí: Cloud Programming Simplified: A Berkeley View on Serverless Computing.
Computación sin servidores
"El data center es ahora el computador". - Luiz Barrozo (2007)
Explicar la emoción por lo que rodea a la computación en la nube se puede realizar identificando sus más potenciales avances:
La aparición de infinitos recursos informáticos en alta demanda.
La eliminación de un compromiso inicial por parte de los usuarios de la nube.
La habilidad de pagar por recursos informáticos a corto plazo y sólo mientras sea necesario.
Reducción de costos económicos debidos al uso de data centers.
Operaciones simplificadas y crecimiento de la utilización a través de una virtualización de los recursos.
Mayor utilización del hardware mediante la multiplexación de las cargas de trabajo de diferentes organizaciones.
En los últimos años estos avances se han visto realizados y aunque aún existen algunas complicaciones debidas a la virtualización de los servicios, la computación en la nube alivio a los usuarios de la administración de la infraestructura física.
Con el paso del tiempo el mercado adoptó enfoques de programación en la nube que asemejan hardware físico. Los usuarios pueden recrear el mismo entorno informático en la nube que el que tienen localmente, pero la gran desventaja está en tener que administrar completamente máquinas virtuales y contar con muchos requerimientos para operar un ambiente en la nube.
Ante esta necesidad AWS lanzó una opción llamada AWS Lambda que proporciona funciones cloud y generando un gran interés en computación serverless (sin servidores) que puede ser definida como la combinación de dos componentes: Función como servicio (FaaS) y Backend como servicio (BaaS).
Serverless computing = FaaS + BaaS
Para que un servicio sea considerado sin servidor, debe escalar automáticamente sin necesidad de aprovisionamiento explícito, y ser facturado según el uso.
Atractivos de la computación sin servidores
La computación sin servidor tiene beneficios para usuarios (desarrolladores), consumidores y proveedores cloud.
Desde la perspectiva de los desarrolladores, esta forma de programación les permite enfocarse en su aplicación lógica sin tener que perder mucho tiempo con lo relacionado a la infraestructura. Esto mejora la productividad y democratiza la escala.
Para los consumidores, muchas aplicaciones presentan beneficios como los ahorros en los costos debidos a que solo se debe pagar por los recursos consumidos. Y esperan que a medida que evolucione esta tecnología estos beneficios se trasladen a otros casos de uso.
Finalmente, los proveedores de servicios Cloud se pueden beneficiar de las innumerables oportunidades de optimización que llegan desde los servicios de administración para los usuarios.
Limitaciones de la computación sin servidores
Para aplicaciones de naturaleza centrada en los datos que están identificados algunos retos y limitaciones que existen con los sistemas sin servidores:
Falta de almacenamiento más detallado.
Falta de coordinación más detallada entre servicios.
Gastos generales de red debidos al número de pequeñas funciones.
Rendimiento impredecible para los “arranques en frío” para aprovisionar los recursos para la ejecución de la función.
¿En qué se debería convertir la computación sin servidores?
Para continuar con la maduración del paradigma de la computación sin servidores, existen algunos requerimientos:
Mejoras en la abstracción para automatizar la administración de recursos, como asignar solo la memoria suficiente para cada función o asignar aceleradores de hardware a las funciones sin que el usuario tenga que especificar sus requisitos.
Mejoras del sistema en torno a servicios de almacenamiento, coordinación y señalización rápidos, asequibles y elásticos.
Mejoras en la red para mejorar el manejo del flujo de datos entre funciones.
Mejoras en la seguridad relacionadas con el aislamiento y administración detallada de permisos, también la prevención de fugas a través del análisis de los patrones de tráfico de la red.
Mejoras en la administración de hardware que brindan aceleradores de hardware sin servidor como GPU o la capacidad de ejecutar código optimizado para versiones específicas de CPU.
De cara al futuro la computación sin servidores será el estándar para la construcción de aplicaciones Cloud. Las ventajas derivadas de una infraestraestructura completamente administrada y codificación de funciones detalladas, revolucionan la forma en la que los desarrolladores construyen el código, la programación sin servidores hace a los expertos más productivos y permite a los novatos construir a escala de Cloud.
El resultado final permite a los desarrolladores dividir sus aplicaciones en funciones más pequeñas (microservicios), y componerlas en grandes aplicaciones.
Cada función es más fácil de codificar, depurar, implementar y probar a escala de nube. Las funciones también se vuelven más fáciles de compartir y reutilizar dentro y entre los equipos de desarrollo.
Si su organización tiene interés en implementar estrategias de programación Cloud, microservicios o contenedores de la mano de expertos, lo invitamos a contactarnos.