Deployment Architecture Overview - project-sunbird/sunbird-devops GitHub Wiki
Logical View
images/Sunbird Solution Deployment.png
Image: Edit Link
Deployment architecture guidelines
- Docker swarm is the orchestration engine chosen for running containers. Docker swarm is simpler and easier to learn compared to kubernetes as it has APIs similar to other docker tools like docker compose.
- All the stateless services are run as docker containers inside swarm
Note: Keycloak is an exception, due to challenges faced in dockerizing keycloak
- All stateful services like databases are run on VMs directly
Note: Monitoring services - prometheus & grafana are an exception as it is easier to monitor the services using service discovery provided by docker swarm
Deployment environments view
images/Sunbird deployment environments.png
Image: Edit Link
Note: Jenkins slaves are run inside each environment. Please look at build and pipeline docs for details