Platform Architectuur
Een opinionated stack die proven tooling combineert voor zero-ops microservices.
High-Level Overview
graph TB
Dev[Developer] -->|git push| GH[GitHub]
GH -->|webhook| CI[CI/CD Pipeline]
CI -->|build & scan| Reg[Container Registry]
CI -->|update manifest| GitOps[Argo CD]
GitOps -->|sync| K8s[Kubernetes Cluster]
K8s -->|enforce| Kyverno[Policy Engine]
K8s -->|metrics/logs/traces| OTel[OTel Collector]
OTel -->|store| Prom[Prometheus]
OTel -->|store| Loki[Loki]
OTel -->|store| Tempo[Tempo]
Prom --> Grafana[Grafana]
Loki --> Grafana
Tempo --> Grafana
style Dev fill:#3b82f6
style GH fill:#3b82f6
style K8s fill:#10b981
style Kyverno fill:#f59e0b
style OTel fill:#8b5cf6
style Grafana fill:#ec4899 StrixHQ combineert best-in-class cloud native tooling in een samenhangend platform. Geen custom glue code, alleen declarative configuration.
Component Stack
GitOps Layer
Git als single source of truth. Declarative deployments met automated sync en drift detection.
- Continuous reconciliation
- App-of-apps pattern voor platform bootstrap
- Sync waves voor dependency ordering
- Health checks voor custom resources
- SSO integration (roadmap)
Policy Layer
Kubernetes-native admission control. YAML policies, geen Rego. Enforce mode voor hard rules.
- Mandatory resource limits
- Non-root containers
- Registry restrictions
- Label compliance
- Policy exceptions met TTL (Pro tier)
Observability Layer
Unified telemetry via OpenTelemetry. Metrics, logs en traces in één pane of glass.
- Prometheus voor metrics
- Loki voor log aggregation
- Tempo voor distributed tracing
- Correlated telemetry (trace_id linking)
- Pre-configured dashboards per service
Ingress Layer
Battle-tested reverse proxy. SSL termination via cert-manager (Let's Encrypt).
- Automated TLS cert issuance
- Path-based routing
- Rate limiting
- Request buffering
- Metrics export naar Prometheus
Service Lifecycle Flow
sequenceDiagram
participant Dev as Developer
participant GH as GitHub
participant CI as CI/CD
participant GitOps as Argo CD
participant K8s as Cluster
participant Kyverno as Policies
Dev->>GH: git push
GH->>CI: trigger workflow
CI->>CI: build + test
CI->>CI: scan (Trivy)
CI->>CI: generate SBOM
CI->>GH: push image
CI->>GH: update GitOps manifest
GitOps->>GitOps: detect change
GitOps->>K8s: apply manifest
K8s->>Kyverno: admission webhook
Kyverno->>Kyverno: validate labels
Kyverno->>Kyverno: validate resources
Kyverno->>Kyverno: inject sidecars
Kyverno-->>K8s: allow/deny
K8s->>K8s: create pods
K8s-->>Dev: deployment success Key Design Decisions
Waarom Kyverno (niet OPA Gatekeeper)?
Beslissing: Kyverno voor policy enforcement
Rationale:
- Kubernetes-native YAML policies (geen Rego learning curve)
- Eenvoudiger te auditen door non-specialists
- Snellere policy development cycle
- Built-in policy reporting
Trade-off: OPA is flexibeler, maar extra complexiteit niet nodig voor PoC scope.
Waarom Grafana Stack (niet DataDog/NewRelic)?
Beslissing: Self-hosted Grafana + Prometheus + Loki + Tempo
Rationale:
- Geen vendor lock-in, 100% portable
- Zero per-seat/per-host costs
- Full control over data retention
- OpenTelemetry native support
Trade-off: Operators moeten Grafana stack beheren. Acceptabel voor PoC/MVP.
Waarom Argo CD (niet Flux)?
Beslissing: Argo CD voor GitOps
Rationale:
- Betere UI voor troubleshooting en demos
- App-of-apps pattern voor multi-tenant
- Mature RBAC en project isolation
- Broader adoption in enterprise
Trade-off: Flux is meer Kubernetes-native (CRDs only), maar UI voordeel weegt zwaarder.
Waarom kind (niet k3s/minikube)?
Beslissing: kind voor local development
Rationale:
- CI-friendly (sneller opstart dan k3s)
- Multi-node clusters voor real-world testing
- Officieel K8s project, geen custom patches
- Docker-in-Docker support voor builds
Trade-off: k3s is lighter, maar kind is industry standard voor CI.
Complete Tech Stack
Orchestration
- Kubernetes 1.28+
- Helm 3
- Kustomize
GitOps
- Argo CD
- App-of-apps
- Sync waves
Policy
- Kyverno
- Admission webhooks
- Policy reports
Observability
- Prometheus
- Loki
- Tempo
- Grafana
- OpenTelemetry
Ingress
- ingress-nginx
- cert-manager
- Let's Encrypt
CI/CD
- GitHub Actions
- Trivy scanner
- Syft (SBOM)
Runtimes
- Node.js 20
- Go 1.21+
- Python 3.11+
Tooling
- Docker
- kind
- kubectl
- yq/jq
Meer technische details nodig?
Bekijk de volledige documentatie of vraag een architecture review aan.