La computación sin servidor es un modelo de ejecución de cloud computing que asigna los recursos de las máquinas según se usan. Con este modelo sin servidor, los desarrolladores pueden crear y ejecutar aplicaciones sin tener que gestionar ningún servidor y pagar solo por la cantidad exacta de recursos que utilicen. En su lugar, el proveedor de servicios en la nube se encarga de aprovisionar, gestionar y escalar la infraestructura en la nube en la que se ejecuta el código de la aplicación.
La computación sin servidor, a pesar de su nombre, no elimina los servidores. En lugar de eso, optimiza el desarrollo de aplicaciones abstrayendo las tareas rutinarias de infraestructura. Esto significa que no ves, configuras, gestionas ni escalas las máquinas subyacentes que ejecutan tus aplicaciones. Es decir, pagas por el servicio de un servidor, no por el servidor en sí.
Desde la perspectiva del desarrollo, es como si no hubiera ningún servidor: los desarrolladores escriben el código, lo despliegan en la fase de producción y el proveedor de servicios en la nube se encarga del resto.
Cuando se trata de crear aplicaciones, los desarrolladores normalmente tienen un host de otras tareas de gestión del servidor que deben realizar para desplegar su código, como la definición de recursos para el procesamiento y el almacenamiento, la aplicación de parches, el balanceo de carga, etc. Todos estos elementos adicionales reducen el tiempo de aprovisionamiento y la sobrecarga operativa, lo que, en última instancia, ralentiza a los equipos de desarrollo.
El objetivo de la computación sin servidor es proporcionar a los desarrolladores una experiencia invisible "sin servidor", lo que elimina la necesidad de pensar en servidores o en cualquier otro elemento que pueda necesitar una aplicación para ejecutarse. En lugar de eso, el proveedor de servicios se encarga de todo el trabajo interno para garantizar que tengas los recursos necesarios para ejecutar tu código y cumplir los requisitos sin que se te cobre por la capacidad de inactividad.
Utilizar una solución sin servidor es como conseguir tener agua en tu casa. Puedes cavar tu propio pozo, comprobar la calidad del agua e instalar y mantener todos los elementos de fontanería externos necesarios para que llegue a la casa. O también puedes conectarte al suministro de agua principal de tu ciudad. Solo tienes que abrir el grifo para obtener la cantidad de agua que quieres, justo cuando la necesitas, y la administración te envía una factura mensual por la cantidad exacta de agua que consumes.
Del mismo modo, los proveedores de servicios en la nube reactivan automáticamente los recursos de infraestructura y los entornos de ejecución necesarios para ejecutar tus aplicaciones sin servidor y, una vez completada la ejecución, reducen su tamaño a cero de forma automática. Normalmente, se te cobra en función de los recursos durante el tiempo de ejecución. No obstante, esto puede variar según el servicio y el proveedor.
Pero un momento, ¿no existen otros tipos de cloud computing que ofrecen recursos bajo demanda en un modelo de pago por uso? Efectivamente, algunos modelos de servicio en la nube, como la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS), también ofrecen acceso bajo demanda a los recursos de computación.
Sin embargo, la infraestructura en la nube que tienes asignada sigue activa aunque no la estés utilizando. También eres responsable de escalar la capacidad del servidor o de configurar tus aplicaciones para que puedan escalarse o reducirse verticalmente en función de la demanda de los usuarios.
Por otro lado, las arquitecturas sin servidor se basan en eventos. En este modelo, el proveedor solo te proporciona recursos cuando un evento activa la ejecución de tu código y se escala de forma instantánea y automática a las solicitudes.
Definiciones clave:
Soluciones sin servidor
PaaS
Contenedores
VMs
En las soluciones de cloud computing sin servidor, suele haber dos tipos de servicios: función como servicio (FaaS) y backend como servicio (BaaS).
En desarrollo, el término "sin servidor" se suele utilizar para describir las soluciones de FaaS. Sin embargo, es importante tener en cuenta que FaaS es técnicamente un subconjunto de la tecnología sin servidor. La computación sin servidor incluye cualquier tipo de servicio en el que la gestión, la configuración, el escalado y la facturación del servidor se abstraen del usuario final. Algunos ejemplos son las bases de datos, el almacenamiento, el streaming de eventos, mensajes y las pasarelas de APIs.
Entre los ejemplos de computación sin servidor más habituales y emergentes se incluyen los siguientes:
Mayor productividad de los desarrolladores
Los desarrolladores sin servidor se centran en escribir código y optimizar la lógica empresarial, en lugar de preocuparse por el aprovisionamiento, la gestión o el escalado de la infraestructura.
Escalabilidad desde el primer momento
Las arquitecturas sin servidor se pueden escalar tanto verticalmente como horizontalmente de forma intrínseca. A diferencia del autoescalado de otros tipos de cloud computing, que requiere reglas de ajuste, el autoescalado sin servidor es instantáneo y se puede reducir verticalmente a cero.
Precios flexibles
Los modelos de precios sin servidor se suelen cobrar en función del uso real y del tiempo que se tarda en ejecutar una función. Tampoco pagas por la capacidad inactiva, lo que te ayuda a reducir los costes operativos asociados a la ejecución y a la gestión de tus propios servidores.
Implementación más rápida
La computación sin servidor puede ayudar a reducir la fricción de la definición de infraestructura para los equipos de DevOps en lo que respecta a la integración, las pruebas, la entrega y la implementación. De esta forma, pueden centrarse en escribir y desplegar código directamente en producción.
Utiliza cualquier idioma
Los entornos sin servidor admiten cualquier lenguaje o framework, lo que permite a los equipos desarrollar en el lenguaje o con el framework (Go, Python, Java, Node.js o .NET, entre otros) que les resulte más cómodo.
Una de las principales desventajas de la computación sin servidor es que se trata de una tecnología relativamente nueva. Por lo tanto, aún no es adecuada para todos los casos prácticos.
También está claro que algunos de los puntos débiles que existen actualmente se resolverán con el tiempo a medida que la computación sin servidor siga evolucionando. En concreto, ya se está trabajando mucho en las implementaciones de código abierto sin servidor y en buscar formas de hacer que los servicios en la nube sean más abiertos para que las soluciones puedan aplicarse en diferentes plataformas y entornos.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.