Este nuevo modelo (sin-servidores) en el diseño de arquitecturas en la nube, surge de la mano con el paradigma de los microservicios para el diseño de sistemas, en el cual se evita la implementación de sistemas monolíticos separando los servicios en pequeños procesos interconectados entre sí. Dentro de este modelo, una capa de servicios API se convierte en el punto de central de comunicación entre los microservicios, y con soluciones como API Gateway es posible implementar esta capa de manera automática y gestionada por Amazon Web Services.
Arquitectura base sin-servidores en Amazon Web Services
En los meses pasados tuvo lugar el webcast de Amazon “Building Serverless Backends with AWS Lambda and Amazon API” en donde se hizo una demostración muy práctica de la implementación de un «backend CRUD» utilizando los servicios de API Gateway y Lambda. Y siguiendo esas buenas prácticas, hay un ejemplo muy didáctico sobre la implementación de un sistema en la nube llamado SquirrelBin en el que observamos de una forma aplicada las ventajas de las arquitecturas de microservicios sin servidores en ámbitos de modularidad, simplicidad, despliegues puntuales e integración con otros servicios en la nube.
Otras ventajas de este tipo de arquitecturas tienen que ver con la expansión del concepto de pago-por-uso (evitando cargos por instancias y discos que almacenan a los sistemas operativos) y la integración con servicios de contenedores como Docker. La capa API en este caso redirige las llamadas a servicios de código bajo demanda como Lambda o bien a servicios en ejecución en contenedores Docker gestionados por servicios como Kubernetes o EC2 Container Service, que a su vez gestionan la interacción con las bases de datos y repositorios en la nube.
Las arquitecturas sin-servidores en la nube maximizan el «enfoque en el producto» y «en la funcionalidad» para cada vez preocuparnos menos por las limitaciones físicas de la infraestructura y la configuración.
Los administradores de sistemas dentro de este nuevo modelo podrán enfocarse en la integración continua y el funcionamiento óptimo de los distintos recursos y servicios integrados (¿convertirse en DevOps?). Si bien los nuevos paradigmas no reemplazan a los modelos tradicionales en la arquitectura de sistemas (más bien los complementan), ese miedo al cambio y a utilizar nuevas tecnologías se ve minimizado por la facilidad y el bajísimo coste de probar e implementar las arquitecturas sin-servidores en nuevos proyectos.