Este repositorio guarda la documentación y pruebas realizadas para el TFM del "Máster Cloud Apps. Desarrollo y despliegue de aplicaciones en la nube" de la Universidad Rey Juan Carlos.
Este TFM consiste en el estudio de las alternativas en Kubernetes a los servicios Serverless que ofrecen los proveedores de cloud como AWS, Azure o GCP.
- Funciones como servicio (Faas)
- Gestión de archivos
- Bases de datos
- Colas de mensajería y gestión de eventos
- Gestión de usuarios
AWS | Azure | GCP |
---|---|---|
Lambda | Functions | Cloud Functions |
En esta sección vamos a instalar y probar varias opciones de faas basadas en Kubernetes. Para intentar sustituir las funciones de proveedor como AWS Lambda o Azure Function.
AWS | Azure | GCP |
---|---|---|
s3 | Blob Storage | Cloud Storage |
Otro servicio que ofrecen los proveedores de cloud son la gestión y almacenamiento de archivos en este caso vamos a instalar y probar minio, que implementa un api compatible con AWS S3 y que posee un operador de Kubernetes que nos permite el autoescalado.
AWS | Azure | GCP |
---|---|---|
dynamodb | Cosmos DB | Cloud Spanner |
Las alternativas a las bases de datos administradas por los proveedores de cloud serian los Operadores Kubernetes de bases de datos, en este trabajo vamos a instalar y probar 2 de ellos, el operador de MongoDB de Percona y el operador de PostgreSQL de Zalando.
AWS | Azure | GCP |
---|---|---|
SQS | Service Bus | Cloud Pub/Sub |
SNS | Queue Storage | |
Event Bridge | Event Grid |
Hasta ahora las pruebas que hemos hecho han lanzado las funciones ante una petición http en esta sección vamos a comprobar com podemos ejecutar estas funciones por otros mecanismos. Concretamente probaremos los sistemas de colas integradas dentro de Knative y OpenFaaS y también instalaremos y probaremos Argo Events, un orquestador de eventos que nos permite ejecutar entre otras cosas funciones OpenFaaS.
AWS | Azure | GCP |
---|---|---|
cognito | Active Directory B2C | Cloud IAM |
En esta sección vamos a instalar Keycloak para la gestión de usuarios dentro del ecosistema kubernetes, como alternativa a los sistemas de identidad y acceso de los proveedores de cloud, además vamos a implementar varios ejemplos de cómo integrarlos en las funciones OpenFaaS que hemos desarrollado anteriormente.
Para terminar hemos desarrollado una pequeña aplicación de ejemplo donde ponemos en común alguno de los servicios que hemos probado anteriormente.
- Otros operadores de bases de datos
- Herramientas para integrar funciones en workflows
- Probar herramientas de CI/CD para el despliegue de funciones
- Otras herramientas