Devops Pipeline
The image below defines the code/compile/deploy model used in the io{hub} team.
No (current) project has the scale requirements for a Kubernetes-based deployment, so we use docker-compose for simple container-based architecture orchestration.
1. Development
- This is the code component of the build.
- All code is developed and pushed to a relevant branch in devops.iohub.cloud
- Once the developer is ready, the code is then merged into the main/master branch using an approved merge request.
Commands such as the below are useful
2. Build/Compilation
No development/customisation should happen in the build stage.
- Simply pull the current master branch (
git pull) - Build/package the container image based on the pulled code (
package_<module_name>) - Push the container image/s into the gitlab hosted container registry (
push_all)
3. User Acceptance Testing (UAT)
No development/customization should happen in the UAT stage.
- Pull the latest container image/s (
docker compose pull) - Update to the latest version (
docker compose up -d) - Run tests (unit tests, user acceptance tests, penetration tests and any other pre-prod testing)
4. Production
Only after a UAT release has been active and tested against for 14 days, where all tests have succeeded, can the build be considered production-ready.