Deployment and release management are are based on the following principles and models:
GitOps and IaC
Deployments and infrastructure provisioning follow GitOps principles and an infrastructure as code (IaC) approach:
GitOps with Flux: All Kubernetes application manifests are versioned in Git and deployed via Flux.
Pull request workflow: Changes are introduced through pull requests, ensuring full traceability and auditability.
IaC with Terraform/Terragrunt: Infrastructure components (AKS, SQL MI, storage, networking, etc.) are defined using Terraform/Terragrunt.
Reproducible environments: Preview, qualification, and production environments can be reliably recreated and remain well-documented through version control.
Release model
Grassfish’s release model is based on planned releases and update mechanisms:
Release frequency: Currently, two CMS releases are delivered per year, with a target of up to four releases annually in the medium term.
Rolling updates: The container-based architecture enables rolling deployments, often with zero downtime.
Independent player updates: Player software updates are decoupled from CMS releases and can be rolled out gradually, including staged rollouts and rollback options.