{"id":21565230,"url":"https://github.com/mastercloudapps-projects/serverless-kubernetes","last_synced_at":"2026-04-17T05:02:48.839Z","repository":{"id":50767007,"uuid":"276057863","full_name":"MasterCloudApps-Projects/Serverless-Kubernetes","owner":"MasterCloudApps-Projects","description":"In this repository you will find documentation and examples of alternatives to the proprietary services of cloud providers, such as AWS, GCP, AZURE, ... for Kubernetes","archived":false,"fork":false,"pushed_at":"2021-06-07T10:08:58.000Z","size":13257,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-03T21:49:51.754Z","etag":null,"topics":["database-operators","databases","faas","knative","kubernetes","openfaas"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MasterCloudApps-Projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-30T09:40:13.000Z","updated_at":"2023-02-06T09:06:21.000Z","dependencies_parsed_at":"2022-09-04T09:51:44.582Z","dependency_job_id":null,"html_url":"https://github.com/MasterCloudApps-Projects/Serverless-Kubernetes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MasterCloudApps-Projects/Serverless-Kubernetes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasterCloudApps-Projects%2FServerless-Kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasterCloudApps-Projects%2FServerless-Kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasterCloudApps-Projects%2FServerless-Kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasterCloudApps-Projects%2FServerless-Kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MasterCloudApps-Projects","download_url":"https://codeload.github.com/MasterCloudApps-Projects/Serverless-Kubernetes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasterCloudApps-Projects%2FServerless-Kubernetes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-operators","databases","faas","knative","kubernetes","openfaas"],"created_at":"2024-11-24T10:18:56.226Z","updated_at":"2026-04-17T05:02:48.800Z","avatar_url":"https://github.com/MasterCloudApps-Projects.png","language":"JavaScript","readme":"# Serverless-Kubernetes\n\n![Master Cloud apps ](./out/masterCloudApps.png)\n\nEste repositorio guarda la documentación y pruebas realizadas para el TFM del\n\"[Máster Cloud Apps. Desarrollo y despliegue de aplicaciones en la nube](https://www.codeurjc.es/mastercloudapps/)\" de la Universidad Rey Juan Carlos.\n\nEste TFM consiste en el estudio de las alternativas en Kubernetes a los servicios Serverless\nque ofrecen los proveedores de cloud como AWS, Azure o GCP.\n\n## Servicios\n\n1. [Funciones como servicio (Faas)](#funciones-como-servicio-faas)\n1. [Gestión de archivos](#gestión-de-archivos)\n1. [Bases de datos](#bases-de-datos)\n1. [Colas de mensajería y gestión de eventos](#colas-de-mensajería-y-gestión-de-eventos)\n1. [Gestión de usuarios](#gestión-de-usuarios)\n\n### Funciones como servicio (Faas)\n\n| AWS                                         | Azure                                                              | GCP                                                   |\n|---------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------|\n| [Lambda](https://aws.amazon.com/es/lambda/) | [Functions](https://azure.microsoft.com/es-es/services/functions/) | [Cloud Functions](https://cloud.google.com/functions) |\n\n 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.\n\n- [X] [Knative](/1.faas/knative/readme.md)\n- [X] [OpenFaaS](/1.faas/OpenFaaS/readme.md)\n\u003c!-- - [ ] [Openwisk](/1.faas/openwisk/readme.md) --\u003e\n\n### Gestión de archivos\n\n| AWS                                 | Azure                                                                     | GCP                                                         |\n|-------------------------------------|---------------------------------------------------------------------------|-------------------------------------------------------------|\n| [s3](https://aws.amazon.com/es/s3/) | [Blob Storage](https://azure.microsoft.com/es-es/services/storage/blobs/) | [Cloud Storage](https://cloud.google.com/storage?hl=es-419) |\n\nOtro servicio que ofrecen los proveedores de cloud son la gestión y almacenamiento de archivos en este caso vamos a instalar y probar minio,\nque implementa un api compatible con AWS S3 y que posee un operador de Kubernetes que nos permite el autoescalado.\n\n- [X] [Minio](/2.GestionArchivos/minio/readme.md)\n\n### Bases de datos\n\n| AWS                                             | Azure                                                              | GCP                                               |\n|-------------------------------------------------|--------------------------------------------------------------------|---------------------------------------------------|\n| [dynamodb](https://aws.amazon.com/es/dynamodb/) | [Cosmos DB](https://azure.microsoft.com/es-es/services/cosmos-db/) | [Cloud Spanner](https://cloud.google.com/spanner) |\n\nLas alternativas a las bases de datos administradas por los proveedores de cloud serian los Operadores Kubernetes de bases de datos,\nen este trabajo vamos a instalar y probar 2 de ellos, el operador de MongoDB de Percona y el operador de PostgreSQL de Zalando.\n\n- [X] [Mongodb operator](/3.BasesDeDatos/perconaMongodb/readme.md)\n- [X] [Postgresql operator](/3.BasesDeDatos/zalandoPostgresOperator/readme.md)\n\n### Colas de mensajería y gestión de eventos\n\n| AWS                                                    | Azure                                                                       | GCP                                                   |\n|--------------------------------------------------------|-----------------------------------------------------------------------------|-------------------------------------------------------|\n| [SQS](https://aws.amazon.com/es/sqs/)                  | [Service Bus](https://azure.microsoft.com/es-es/services/service-bus/)      | [Cloud Pub/Sub](https://cloud.google.com/pubsub/docs) |\n| [SNS](https://aws.amazon.com/es/sns/)                  | [Queue Storage](https://azure.microsoft.com/es-es/services/storage/queues/) |                                                       |\n| [Event Bridge](https://aws.amazon.com/es/eventbridge/) | [Event Grid](https://azure.microsoft.com/es-es/services/event-grid/)        |                                                       |\n\nHasta ahora las pruebas que hemos hecho han lanzado las funciones ante una petición http\nen esta sección vamos a comprobar com podemos ejecutar estas funciones por otros mecanismos.\nConcretamente probaremos los sistemas de colas integradas dentro de Knative y OpenFaaS y también\ninstalaremos y probaremos Argo Events, un orquestador de eventos que nos permite ejecutar entre otras cosas funciones OpenFaaS.\n\n- [X] [Knative](/4.ColasEventos/Knative/events.md)\n- [X] [OpenFaaS](/4.ColasEventos/OpenFaaS/events.md)\n- [X] [Argo Events](/4.ColasEventos/ArgoEvents/readme.md)\n\n### Gestión de usuarios\n\n| AWS                                           | Azure                                                                                                        | GCP                                       |\n|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------|-------------------------------------------|\n| [cognito](https://aws.amazon.com/es/cognito/) | [Active Directory B2C](https://azure.microsoft.com/es-es/services/active-directory/external-identities/b2c/) | [Cloud IAM](https://cloud.google.com/iam) |\n\nEn 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,\nademás vamos a implementar varios ejemplos de cómo integrarlos en las funciones OpenFaaS que hemos desarrollado anteriormente.\n\n- [X] [Keycloak](/5.Usuarios/Keycloak/readme.md)\n\n## Aplicación de Ejemplo\n\nPara terminar hemos desarrollado una pequeña aplicación de ejemplo donde ponemos en común alguno de los servicios que hemos probado anteriormente.\n\n- [X] [App](/6.app/readme.md)\n\n## Próximos pasos\n\n- Otros operadores de bases de datos\n  - [MongoDB Enterprise Kubernetes Operator](https://github.com/mongodb/mongodb-enterprise-kubernetes)\n  - [Scylla Alternator](https://docs.scylladb.com/using-scylla/alternator/)\n  - [Otros](https://operatorhub.io/?category=Database)\n- Herramientas para integrar funciones en workflows\n  - [Argo Workflows](https://argoproj.github.io/projects/argo)\n  - [Faas Flows](https://github.com/s8sg/faas-flow)\n- Probar herramientas de CI/CD para el despliegue de funciones\n  - [OpenFaaS cloud](https://github.com/openfaas/openfaas-cloud)\n  - [ci/cd for knative with concourse](https://medium.com/aptomi/ci-cd-for-knative-serverless-apps-on-kubernetes-with-concourse-54bafef51767)\n- Otras herramientas\n  - [OpenFaaS Ingress Operator](https://github.com/openfaas/ingress-operator)\n\n\u003c!-- TODO remplazar los png de los UML --\u003e\n\n\u003chttps://github.com/dcasati/kubernetes-PlantUML\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmastercloudapps-projects%2Fserverless-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmastercloudapps-projects%2Fserverless-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmastercloudapps-projects%2Fserverless-kubernetes/lists"}