Kubernetes · platform engineering

Kubernetes-platformen die 24/7 draaien. Van ontwerp tot productie.

We ontwerpen en bouwen platformen voor on-prem en hybride cloud waar meerdere teams hun applicaties op draaien. Volledig geautomatiseerd, van het aanmaken van een cluster tot het roteren van secrets. En we blijven erbij tot het in productie draait: architectuur die alleen op papier bestaat, is niet af.

Nu actief als platformarchitect voor een mission-critical Kubernetes-platform bij Rijkswaterstaat.

01 / Wat we leveren

Alles wat een Kubernetes-platform nodig heeft om in productie te draaien

Een cluster opzetten is het makkelijke deel. Het verschil zit in alles eromheen: hoe teams erop komen, hoe je het veilig houdt, hoe je ziet wat er gebeurt en hoe je het upgradet zonder dat iemand het merkt.

Platformarchitectuur

Kubernetes on-prem en in hybride cloud, ingericht voor meerdere teams. We ontwerpen het tenancy-model (namespaces, RBAC, network policies, quota), de beschikbaarheid en de manier waarop het platform upgradet en herstelt.

KubernetesRBACNetworkPolicymulti-tenancy

GitOps en automatisering

Git is de bron van waarheid voor alles: platformcomponenten, teamconfiguratie en applicaties. ArgoCD houdt de clusters in lijn met Git. Geen handwerk met kubectl, wel elke wijziging reviewbaar en terug te draaien.

ArgoCDGitOpsCI/CDIaC

Self-service voor teams

Teams vragen een database, bucket of andere voorziening aan met één manifest. Crossplane-composities vertalen die aanvraag naar de echte infrastructuur, inclusief backups, netwerk en monitoring. Het platform als product, met de teams als klant.

CrossplaneXRDCompositions

Security en policy as code

Secrets komen uit Vault en worden automatisch geroteerd; applicaties krijgen geen statische wachtwoorden. Kyverno dwingt beleid af bij admission: valideren, standaardwaarden invullen en ontbrekende resources genereren. Beleid staat in Git, net als de rest.

VaultKyvernosecret-rotatie

Observability

Metrics, logs en traces in één samenhangend beeld. Applicaties en platform zijn geïnstrumenteerd met OpenTelemetry; in Grafana spring je van een trage request in Tempo naar de bijbehorende logregels in Loki. Elke applicatie krijgt een eigen collector, met dashboards en alerts per team.

OpenTelemetryGrafanaLokiTempo

DevOps in de organisatie

Een platform werkt pas als de teams ermee werken. We helpen afdelingen de DevOps-werkwijze in te voeren, begeleiden teams bij de overstap en zorgen voor runbooks en documentatie, zodat de kennis in huis blijft.

DevOpsplatform-as-productrunbooks

02 / Onder de motorkap

Een platform in lagen

Zo ziet een platform eruit dat we bouwen. Elke laag is declaratief beschreven en staat in Git. Een nieuw cluster is daardoor een kwestie van uitrollen, niet van een week handwerk, en een upgrade een pull request.

We kiezen gangbare tooling uit het Kubernetes-ecosysteem. Geen eigen frameworks waar je aan vastzit: elke ervaren platformengineer kan ermee verder.

  1. Teams en applicatiesSelf-service via Git

    Applicationsclaimsnamespaces
  2. DeliveryGit → cluster

    ArgoCDGitOpsCI/CD-pipelines
  3. VoorzieningenDatabases, opslag, netwerk

    CrossplaneCompositions
  4. Security en beleidSecrets, admission, toegang

    VaultKyvernoRBACNetworkPolicy
  5. ObservabilityMetrics, logs, traces

    OpenTelemetryGrafanaLokiTempo
  6. FundamentOn-prem en hybride cloud

    Kubernetescontainersinfrastructure as code

03 / Voorbeeld

Een eigen OpenTelemetry-collector per applicatie

Elke applicatie krijgt een eigen collector, gemaakt met een eigen CRD. Applicatiebouwers hoeven niet te weten hoe een collector in elkaar zit. Ze beschrijven alleen welke logs eruit mogen en waar ze naartoe moeten. Het platform doet de rest.

  1. Het team zet een AppCollector in de eigen Git-repository, met alleen filtering en routering.
  2. ArgoCD ziet de wijziging en synchroniseert de resource naar het cluster.
  3. Kyverno controleert bij admission dat het team alleen naar toegestane bestemmingen routeert, binnen de eigen namespace.
  4. Het platform genereert de complete collectorconfiguratie: receivers, batching, geheugenlimieten, resource-attributen en exporters. Het stukje van het team wordt daarin ingevoegd.
  5. De collector draait naast de applicatie. Die stuurt OTLP naar het eigen endpoint en hoeft verder niets te configureren.
  6. De logs komen gefilterd en gerouteerd in Loki terecht. Een andere route instellen? Dat is een pull request.
teams/orders/collector.yaml
apiVersion: platform.example.nl/v1alpha1
kind: AppCollector
metadata:
  name: orders-api
  namespace: team-orders
spec:
  logs:
    filter:
      # ruis niet doorsturen
      drop:
        - 'attributes["http.route"] == "/healthz"'
        - 'severity_number < SEVERITY_NUMBER_INFO'
    routing:
      - when: 'attributes["event.domain"] == "audit"'
        to: audit
      - default: team-orders
Vereenvoudigd voorbeeld. Filters en routes zijn OTTL-expressies. Receivers, processors, exporters en de bestemmingen (zoals audit) beheert het platform.

04 / Hoe we werken

Architectuur die bewezen is in code

Geen PowerPoint-architectuur. We ontwerpen het platform en blijven erbij terwijl het gebouwd wordt: we schrijven code, debuggen pipelines en automatiseren infrastructuur, samen met de teams.

  1. 01

    Verkennen

    Wat draait er al, welke eisen gelden er (beschikbaarheid, beveiliging, aantal teams) en waar zit de pijn? Je krijgt een concreet beeld en een plan in stappen.

  2. 02

    Ontwerpen in code

    Geen dik document, maar zo snel mogelijk een werkend skelet van het platform. Keuzes leggen we vast in architectuurbeslissingen (ADR's), naast de code.

  3. 03

    Bouwen met het team

    We werken in het team, niet ernaast. Alles gaat via Git en pull requests, en wat twee keer met de hand gebeurt, wordt geautomatiseerd.

  4. 04

    Productie en overdracht

    Observability, alerts en runbooks staan er voordat het live gaat. We oefenen upgrades en herstel, zodat het team het platform zelf kan blijven draaien.

“Architectuur die niet bewezen is in code en niet in productie draait, is niet af.”

Jeroen Peeters, oprichter
  • Productie is de maatstaf. Ontworpen voor 24/7: upgrades zonder downtime en herstel dat getest is.
  • Alles geautomatiseerd. Van het aanmaken van voorzieningen tot het roteren van secrets.
  • Pragmatisch. De eenvoudigste oplossing die werkt, en die het team zelf begrijpt en kan onderhouden.
  • AI als versneller. We zetten AI in door de hele cyclus: bij ontwerpkeuzes, het schrijven en reviewen van code en het maken van runbooks. Geen gimmick, maar gereedschap in handen van ervaren engineers.

05 / Ervaring

Twintig jaar bouwen, op elke laag van de stack

Van Java-engineer en vroege gebruiker van containers, via DevOps naar platformarchitectuur. Bij de overheid en in het bedrijfsleven, voor systemen die dag en nacht moeten werken.

Portret van Jeroen Peeters

Jeroen Peeters

Oprichter · Solution architect en platform engineer

Een solution architect die nooit is gestopt met engineeren. Jeroen ontwerpt platformen en systemen en blijft erbij terwijl ze gebouwd worden.

LinkedIn

  1. 2023 – nu

    Platformarchitect

    Rijkswaterstaat, Watermanagement

    Een geautomatiseerd, schaalbaar Kubernetes-platform voor mission-critical toepassingen die 24/7 draaien. Automatische provisioning van voorzieningen voor meerdere teams, met ArgoCD, Vault, Crossplane, Kyverno en OpenTelemetry. Daarnaast de DevOps-werkwijze in de afdeling verankeren.

  2. 2023

    BPM-specialist en senior software engineer

    FMO, Nederlandse ontwikkelingsbank

    Bedrijfsprocessen ontwerpen en implementeren met de Camunda BPMN-suite.

  3. 2018 – 2022

    Senior full stack software engineer

    Rijkswaterstaat, Digitaal Stelsel Omgevingswet

    Gebruikersapplicaties voor het DSO, van vergunningcheck tot het indienen van aanvragen.

  4. 2018 – 2019

    Medeoprichter en technisch directeur

    HyperDev

    Een continuous-development-platform op basis van container-orchestratie, toen containers nog nieuw waren. CI/CD voor DevOps-teams in een veilige cloudomgeving.

  5. 2012 – 2018

    Software engineer en technical lead

    ICTU

    Continuous delivery, softwarekwaliteit en Docker voor overheidsprojecten. Eigen tooling om applicaties met Docker samen te stellen, en cursussen over Docker voor externe partijen.

  6. 2008 – 2012

    Software developer

    Collis (nu UL)

    Testtooling voor betaalterminals (EMV) en software voor de PKI-infrastructuur van het Nederlandse e-paspoort.

Een platform dat dag en nacht moet draaien?

Of je nu een nieuw Kubernetes-platform opzet, een bestaand platform volwassen wilt maken of teams wilt laten overstappen: vertel waar je staat, dan denken we mee.