Waar CDS in uw landschap past
CDS is een compile-time laag boven uw runtime. U beschrijft een dataplatform als profiel plus modules, en CDS rendert daar deployment-artefacten van. Het is geen orchestrator en geen vervanging van Kubernetes, Compose of uw CI/CD. Het draait zelf geen containers. cds up roept de echte docker compose aan.
Wat u krijgt
- Eén gevalideerde bron van waarheid per omgeving, in YAML en in Git.
- Gegenereerde output (Docker Compose, en een Kubernetes-renderer in ontwikkeling) die u in uw bestaande pijplijnen gebruikt.
- Een vaste golden path voor data-stacks, zonder dat elk team zijn eigen Compose-bestanden onderhoudt.
Workflow in CI/CD
python3 -m venv .venv && source .venv/bin/activate
python -m pip install -e .
cds validate # vorm, graph, secrets, contracten
cds test # validate + security-regels + plan + render
cds render –output
Elke wijziging valideert eerst in de pijplijn. Fouten komen terug als diagnostics met een stabiele code en een exact datapad, zodat ze goed te parsen en te tonen zijn in een pull request.
Modules en contracten
- Een module ( module.yaml ) bevat een gesloten configuratieschema met defaults, de contracten die hij levert en gebruikt, en een Compose-template.
- Modules verwijzen nooit naar elkaars servicenamen. Bindings lopen via contracten ( contractRef: . ). dependsOn bepaalt alleen de opstartvolgorde.
- Eigen modules en profielen kunt u buiten de repository plaatsen via CDS_MODULE_PATH en CDS_PROFILE_PATH .
- Interpolatie: ${config.} , ${bindings.} , ${service.host} .
Secrets
Secret-waarden komen nooit in plannen of gerenderde artefacten. Profielen mappen aliassen naar CDS_* -omgevingsvariabelen, en alleen ${CDS_*} -placeholders worden gegenereerd. Uw secret-manager of CI-runner levert de waarde pas bij runtime. Houd .env en gegenereerde Compose-bestanden buiten Git.
Beveiliging en hardening
- Regels staan als data ( rule-set.json ) en zijn uit te breiden zonder Python.
- Baseline voor images: vastgezette versies, non-root, read-only root, dropped capabilities, resource limits, netwerksegmentatie. Hash-locked dependencies zijn in uitvoering.
- Image-scanresultaten in de GitHub Security-tab (SARIF) staan op de planning.
Beheer en onderhoud
- cds get haalt profielen en modules op. Bijwerken met cds update en tracking-metadata staan gepland, evenals een melding bij nieuwe CDS-releases (in uitvoering).
- Monitoringmodules (zoals Grafana, log- en trace-verzameling) komen als modules in de stack. Ze zijn nog niet allemaal beschikbaar.
- Lifecycle, schaling en monitoring van de draaiende omgeving blijven bij uw runtime en tooling.
Beperkingen om rekening mee te houden
- Formaat is v1alpha1 , dus schemawijzigingen zijn mogelijk.
- Kubernetes-renderer, back-up/herstel en TLS-contracten staan nog niet allemaal op productieniveau. GitOps-ondersteuning (zoals FluxCD) staat op de planning.
- Tests zijn onafhankelijk van Docker ( unittest ). Runtime-smoketests draaien apart.
Aanbevolen aanpak
- Draai cds test op een referentieprofiel in uw CI.
- Zet een eigen module-root op voor uw platformstandaarden.
- Laat teams profielen via pull requests aanpassen, met cds test als verplichte check.
- Koppel uw secret-manager aan de CDS_* -variabelen.
Ook uitgelegd voor
Terug naar Composable Data Stack (CDS) · Broncode op GitHub · Contact