La computación sin servidores es un modelo de ejecución de computación en la nube que asigna recursos de máquinas según el uso. Con un modelo sin servidores, los desarrolladores pueden compilar y ejecutar aplicaciones sin tener que administrar servidores y pagar solo por la cantidad exacta de recursos usados. En cambio, el proveedor de servicios en la nube es responsable de aprovisionar, administrar y escalar la infraestructura de nube que ejecuta el código de la aplicación.
La computación sin servidores, a pesar de su nombre, no elimina los servidores. En cambio, optimiza el desarrollo de aplicaciones abstrayendo las tareas de infraestructura de rutina. Esto significa que no ves, configuras, administras ni escalas las máquinas subyacentes que ejecutan tus aplicaciones. Esencialmente, pagas por el servicio del servidor, no por el servidor en sí.
Desde la perspectiva del desarrollo, es como si no hubiera servidores: los desarrolladores escriben el código, lo implementan en producción y el proveedor de servicios en la nube se encarga del resto.
Cuando se trata de compilar aplicaciones, los desarrolladores suelen tener una serie de otras tareas de administración de servidores que deben realizar a fin de implementar su código, como definir recursos para el procesamiento y el almacenamiento, la aplicación de parches, el balanceo de cargas y más. Todos estos elementos adicionales generan tiempos de aprovisionamiento más largos y una sobrecarga operativa adicional que, en última instancia, ralentiza los equipos de desarrollo.
La computación sin servidores intenta proporcionar una experiencia invisible “sin servidores” a los desarrolladores, lo que elimina la necesidad de pensar en los servidores o en algo que una aplicación podría necesitar para ejecutarse. En cambio, el proveedor de servicios hace todo el trabajo en segundo plano a fin de garantizar que tengas los recursos para ejecutar tu código y cumplir con los requisitos sin que se te cobre por la capacidad inactiva.
Piensa en el modelo sin servidores como llevar agua a tu casa. Podrías excavar bien, probar la calidad del agua e instalar y mantener todas las tuberías externas necesarias para llevarla a la casa. También puedes conectarte a la red principal de agua de tu ciudad. Solo debes abrir la llave y obtener la cantidad que quieras exactamente cuando la necesites, y la ciudad te enviará una factura mensual por la cantidad exacta de agua que consumas.
Del mismo modo, los proveedores de servicios en la nube inician automáticamente los recursos de infraestructura y los entornos de ejecución necesarios para ejecutar tus apps sin servidores y reducir la escala verticalmente a cero automáticamente cuando se complete la ejecución. Por lo general, se te cobrará en función de los recursos durante el tiempo de ejecución. Sin embargo, esto puede variar según el servicio y el proveedor.
Pero espera, ¿no hay otros tipos de computación en la nube que proporcionan recursos a pedido y con modalidad de pago por uso? Es cierto que los modelos de servicio en la nube, por ejemplo, infraestructura como servicio (IaaS) y plataforma como servicio (PaaS) también proporcionan acceso según demanda a los recursos de procesamiento.
Sin embargo, la infraestructura de nube que se te asignó permanece activa incluso si no la estás usando. También es tu responsabilidad escalar la capacidad del servidor o configurar tus aplicaciones para escalar verticalmente o reducir la escala en respuesta a la demanda del usuario.
Las arquitecturas sin servidores, por otro lado, se basan en eventos. Con este modelo, el proveedor solo te brinda recursos cuando un evento activa la ejecución de tu código y escalará instantáneamente y automáticamente a las solicitudes.
Definiciones clave:
Sin servidores
PaaS
Contenedores
VMs
En la computación en la nube sin servidores, suele haber dos tipos de servicios: la función como servicio (FaaS) y el backend como servicio (BaaS).
Durante el desarrollo, el término “sin servidores” suele usarse para describir las ofertas de FaaS. Sin embargo, es importante tener en cuenta que FaaS es técnicamente un subconjunto de tecnología sin servidores. La computación sin servidores incluye cualquier tipo de servicio en el que la administración, la configuración, el escalamiento y la facturación del servidor se abstraen del usuario final. Esto puede incluir bases de datos, almacenamiento, transmisión de eventos, mensajería y puertas de enlace de API.
Estos son algunos de los ejemplos de computación sin servidores más comunes y emergentes:
Mayor productividad de los desarrolladores
Los desarrolladores que usan la tecnología sin servidores se enfocan en escribir código y optimizar la lógica empresarial en lugar de preocuparse por el aprovisionamiento, la administración o el escalamiento de la infraestructura.
Escalabilidad lista para usar
Las arquitecturas sin servidores aumentan o reducen la escala de forma inherente. A diferencia del ajuste de escala automático en otros tipos de computación en la nube, que requiere reglas de ajuste, el ajuste de escala automático sin servidores es instantáneo y puede reducirse a cero.
Precios flexibles
Los modelos de precios sin servidores suelen cobrarse en función del uso real y el tiempo que lleva ejecutar una función. Tampoco debes pagar por la capacidad inactiva, lo que ayuda a reducir los costos operativos asociados con la ejecución y la administración de tus propios servidores.
Implementación más rápida
La computación sin servidores puede ayudar a reducir la fricción de la definición de infraestructura para los equipos de DevOps cuando se trata de integración, pruebas, entrega e implementación. Luego, pueden enfocarse en escribir e implementar el código directamente en producción.
Usa cualquier lenguaje
Los entornos sin servidores admiten cualquier lenguaje o framework, lo que permite que los equipos desarrollen en el lenguaje o con el framework (Go, Python, Java, Node.js, .NET y más) que más les acomode.
Una de las mayores desventajas de la computación sin servidores es que sigue siendo una tecnología relativamente nueva. Como resultado, aún no es adecuado para todos los casos de uso posibles.
También está claro que algunas de las debilidades actuales que existen se resolverán con el tiempo a medida que la computación sin servidores continúe evolucionando. En particular, ya se está trabajando en implementaciones de código abierto de servidores sin servidores y en la búsqueda de formas de hacer que los servicios en la nube sean más abiertos a fin de que las soluciones sean portátiles entre diferentes plataformas y entornos.
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.