Rebuild a containerized version of the Knowledge Commons IDMS stack that is suitable for local development and deployment to production
Background
The current IDMS stack is composed of several services distributed across 3 EC2 instances (Miro diagram).
Main Services
Proxy
SATOSA
Registry
COmanage
Shibboleth (It might simplify things to replace this with SimpleSAMLphp?)
OpenLDAP
IDPOLR
SimpleSAMLphp
AWS RDS
Registry Database
These services have various configurations and plugins / modules / microservices specific to our setup. These customizations are not consistently in version control or synchronized between development and production. Many are out-of-date. We would like to change that.
There are currently two copies of this stack---dev and prod. We would like to move to a model with local development, and cloud-based staging and production. We might consider moving production and / or staging to a serverless solution, if that is more cost-effective than EC2.
Deliverables
All Commons IDMS code should exist in a single repository (this one).
The configurations, custom code, and plugins for services should be organized by directory. Eg:
Each necessary service should exist in a container.
Where possible, containers should be based on standard production or development containers (eg. on Docker Hub).
The build process (eg. docker compose up or lando start) should build containers for each service and mount the Commons code and configurations appropriately. The containers should network together and operate in (local) dev, staging, and production environments.
Environment variables should control the build process to target each environment.
There should be a way to test the stack locally without WordPress (eg. static HTML pages with links for registering & logging-in test users, and reporting successful logins).
The stack should work with the containerized Commons WordPress stack (which will be developed in parallel).
Description
Rebuild a containerized version of the Knowledge Commons IDMS stack that is suitable for local development and deployment to production
Background
The current IDMS stack is composed of several services distributed across 3 EC2 instances (Miro diagram).
Main Services
These services have various configurations and plugins / modules / microservices specific to our setup. These customizations are not consistently in version control or synchronized between development and production. Many are out-of-date. We would like to change that.
There are currently two copies of this stack---dev and prod. We would like to move to a model with local development, and cloud-based staging and production. We might consider moving production and / or staging to a serverless solution, if that is more cost-effective than EC2.
Deliverables
docker compose up
orlando start
) should build containers for each service and mount the Commons code and configurations appropriately. The containers should network together and operate in (local) dev, staging, and production environments.Target Timeline
Responsibilities
Development Leads: Dimitris & Brian