Cloud (Azure)¶
The Consystence cloud tier runs on Microsoft Azure in the australiaeast region. It hosts the auth service, platform API, fleet analytics, and the type marketplace.
Resource layout¶
| Resource | Type | Name |
|---|---|---|
| Resource Group | — | rg-consystence-dev-aue |
| Container Apps Environment | Azure Container Apps | cae-consystence-dev-aue |
| Container Registry | Azure Container Registry | crconsystencedevaue |
| Database | PostgreSQL Flexible Server | psql-consystence-dev-aue |
| Virtual Network | VNet | vnet-consystence-dev-aue |
Info
Development uses Azure Container Apps for simplicity. Production deployments are planned to migrate to AKS (Azure Kubernetes Service) for finer-grained control over scaling and networking.
Network architecture¶
The VNet is divided into purpose-specific subnets:
| Subnet | CIDR | Purpose |
|---|---|---|
snet-apps | 10.0.0.0/23 | Container Apps Environment |
snet-postgres | 10.0.2.0/24 | PostgreSQL Flexible Server (VNet-integrated) |
snet-pe | 10.0.3.0/24 | Private endpoints |
snet-platform | 10.0.4.0/24 | Platform services (Key Vault, monitoring) |
Database access¶
PostgreSQL is VNet-integrated with no public access. All connections go through the private VNet. The Container Apps environment is peered with the database subnet.
Container images¶
Services are packaged as container images and pushed to ACR:
| Image | Service |
|---|---|
consystence-auth | Authentication and identity |
consystence-api | Platform API |
consystence-fleet | Fleet analytics and ML model management |
consystence-marketplace | Type marketplace API |
CI/CD¶
Deployments are automated through GitHub Actions with OIDC federated credentials — no stored secrets for Azure authentication.
graph LR
GH[GitHub Push] --> GA[GitHub Actions]
GA -->|OIDC| Azure[Azure]
GA -->|Build & Push| ACR[Container Registry]
ACR -->|Deploy| CA[Container Apps] Pipeline steps¶
- Build —
dotnet buildanddotnet testfor the service. - Container —
docker buildand push to ACR. - Deploy — update the Container App revision to the new image tag.
- Verify — health check against the deployed service.
OIDC federation¶
GitHub Actions authenticate to Azure using OIDC federated credentials configured on an Azure AD app registration. No AZURE_CLIENT_SECRET is stored in GitHub — the Actions runner exchanges its GitHub-issued OIDC token for an Azure access token.
Infrastructure as code¶
All Azure infrastructure is defined using Azure Bicep templates in the consystence-infra repository:
consystence-infra/
├── main.bicep # Orchestrator
├── modules/
│ ├── container-apps.bicep
│ ├── postgres.bicep
│ ├── acr.bicep
│ ├── vnet.bicep
│ └── keyvault.bicep
└── parameters/
├── dev.bicepparam
└── prod.bicepparam
Deploy with: