¿Cómo conseguir un entorno seguro, tolerante a fallos y fácilmente escalable para ejecutar código sin una gran inversión económica? Una forma es crear este entorno basado en servicios de plataforma en la nube con soporte de computación sin servidor (serverless computing). De este modo, no tendrás que pensar en mantener la infraestructura informática ni en encontrar empleados altamente especializados. Los recursos informáticos se escalarán automáticamente a medida que las cargas de trabajo aumenten o disminuyan. Veamos con más detalle este modelo de PaaS.
Qué es la Informática sin Servidor o Serverless Computing
La computación sin servidor o serverless computing es un método de provisión de recursos de servidor en el que el usuario obtiene de forma remota un entorno simplificado de programación. En él puedes escribir y desplegar el código sin preocuparte de la infraestructura básica. La peculiaridad de la computación sin servidor es que los recursos informáticos en la nube se proporcionan automáticamente, en el volumen necesario para el cumplimiento de una tarea específica. Por recursos entendemos no sólo los servidores, sino también los sistemas de almacenamiento, las redes, el software y los servicios de plataforma.
No te confundas con la palabra «sin servidor«, los scripts se ejecutan en servidores. La diferencia es que el desarrollador no tiene control sobre el proceso. El proveedor de la nube administra y mantiene la infraestructura. Sus tareas incluyen preparar, escalar y administrar la infraestructura necesaria para la ejecución del código, así como garantizar su seguridad.
La nube asigna automáticamente los recursos entre los clientes, proporcionando a cada uno la cantidad adecuada de capacidad o servicios. Así, el desarrollador puede centrarse en la lógica empresarial, acelerar la salida al mercado de los productos y aumentar su rentabilidad. Y la empresa puede optimizar los recursos y dedicar tiempo a la innovación.
Normalmente, la computación sin servidor la ofrecen los proveedores de servicios en la nube. Los principales proveedores son Amazon AWS (AWS Lambda), Microsoft (Azure Functions), Google Cloud Platform (Cloud Functions) e IBM Cloud (Apache OpenWhisk).
Cuál es la Diferencia entre PaaS y la Computación sin Servidor
La arquitectura sin servidor es similar a la PaaS tradicional en muchos aspectos, pero existen importantes diferencias entre ambas.
PaaS, o Plataforma como Servicio, implica el acceso a un entorno de nube en el que se pueden crear y ejecutar aplicaciones. La infraestructura informática es mantenida por un proveedor de la nube, lo que da al desarrollador más opciones. Por ejemplo, puede crear aplicaciones totalmente personalizables sin tener que construir la arquitectura, sin tener que pensar en la compatibilidad de hardware y software, sin tener que obtener licencias. Menos responsabilidades de gestión: más atención al desarrollo. Otras ventajas de PaaS son el desarrollo sencillo y rentable, la fácil escalabilidad y un alto grado de automatización.
La computación sin servidor es un tipo de PaaS. La principal diferencia es que la potencia para procesar una solicitud se asigna automáticamente en respuesta a un evento. Mientras que PaaS permite controlar los cambios en las aplicaciones que se crean en este entorno, la computación sin servidor prácticamente priva al desarrollador de esta capacidad. Aquellos para los que un alto grado de control es crucial deberían elegir PaaS.
Cómo Funciona la Computación sin Servidor
El proveedor de la nube asigna recursos informáticos y de almacenamiento de datos para la ejecución de un código específico. Cuando llega una solicitud de un usuario, se crean en el servidor contenedores con un entorno ya preparado. Para cada evento, se despliega un contenedor independiente, cuyo número crece y se reduce automáticamente.
Un tiempo después de la ejecución de la solicitud, el contenedor se destruye. Es el proveedor de la nube quien decide cuándo será esto. Con esta estructura, los recursos informáticos aumentan o disminuyen automáticamente en función de la carga del usuario. El enfoque flexible simplifica la experiencia en la nube.
La arquitectura sin servidor incluye servicios FaaS y BaaS:
- FaaS (Framework-As-A-Service) es una función o marco de trabajo como servicio. El proveedor proporciona todo lo necesario para crear y ejecutar el código, ofreciéndolo como un único servicio automatizado.
- BaaS (Backend-As-A-Service) es un backend como servicio. Este modelo permite a los desarrolladores vincular las aplicaciones al almacenamiento en la nube del lado del servidor.
Qué tareas realiza la Computación sin Servidor
La facilidad de uso, la economía, la flexibilidad y la escalabilidad de las aplicaciones sin servidor permiten resolver con la misma eficacia las tareas del sistema informático interno y las aplicaciones con un millón de usuarios. En otras palabras, se necesitan siempre que sea necesario optimizar los procesos empresariales, acelerar el lanzamiento de productos y procesar rápidamente los datos.
La computación sin servidor simplifica la nube. Las empresas ya no necesitan contratar especialistas dedicados para gestionar la infraestructura de la nube. El tiempo de comercialización se reduce porque el desarrollador no tiene que preocuparse de gestionar una infraestructura compleja.
Qué más se puede hacer con la computación sin servidor:
- Reduce el tiempo de inactividad de los recursos con cargas de trabajo intermitentes. La computación sin servidor proporciona tanta potencia de cálculo como se necesite en un momento dado.
- Ahorra dinero. Los usuarios sólo pagan por el tiempo que utilizan la infraestructura.
- Garantizar el cumplimiento de las normas de seguridad. El proveedor de la nube es responsable de la seguridad de la infraestructura.
Dónde se utiliza la informática sin servidor
La computación sin servidor es adecuada para la mayoría de las empresas. Hoy en día, se utiliza en muchos ámbitos: comercio minorista, finanzas, medios de comunicación, medicina y redes sociales.
Este modelo es el elegido por grandes empresas digitales como Facebook, Slack, Zoom, Netflix, Amazon. Por ejemplo, Netflix utiliza el servicio AWS Lambda, que divide el vídeo en fragmentos y los codifica en 60 flujos paralelos. Esto permite a Netflix ofrecer una transmisión estable a 167 millones de abonados en todo el mundo.
La infraestructura sin servidor se utiliza principalmente en el desarrollo de software, para el análisis de big data o para proyectos que implican inteligencia artificial.