Sunbird software is containerized. The installation script installs and uses the Docker swarm orchestration engine to run the Sunbird docker images. The Docker swarm consists of manager and agent nodes. The containers run on the agent nodes and the manager nodes manage the container lifecycle.
All the stateless services in Sunbird - Portal, LMS Backend, API Gateway and Proxies - are run as docker containers inside the swarm. All stateful services consisting of Cassandra, PostgreSql, Elasticsearch and the OAuth service(Keycloak) are run on Virtual Machines (VMs) directly. The installation is automated using shell scripts and Ansible.
The following table lists the services that are set up and run as part of installation. The table also lists the optimal server count for a typical staging or production environment with thousands of users.
|Server Type||Basic Requirements||Suggested Servers per Environment||Services|
|Application||2 core||7 GB||1||3||Any||Docker Swarm Manager|
|Docker Swarm Agent|
|Database||2 core||7 GB||1||3||Any||Elastic Search|
 Recommended that Postgres slave runs on a separate server when in production
Supported application versions