Vijfentwintig containers, twee nodes en een AI-agent met een sleutel tot alles

Een AI productie-infrastructuur laten beheren is roekeloos of goed bestuurd. Het verschil zit volledig in de grenzen.

Platform engineering
Doorlopend sinds 2025

Ons eigen platform

We draaien het platform waarop ons eigen werk wordt geleverd, en we laten AI-agents het beheren. Dat vroeg om een concreet besluit over wat een agent mag aanraken, en dat blijkt dezelfde governancevraag te zijn waar elke organisatie die AI invoert binnenkort voor staat.

25
containers verdeeld over twee nodes
18
opgesomde operationele doelen
Gescheiden
hardware voor klantworkloads

Het vraagstuk

De interessante vraag over AI in beheer is niet of een model een commando kan uitvoeren. Dat kan het uiteraard. De vraag is wat er gebeurt als het voor het eerst het verkeerde uitvoert.

De meeste antwoorden daarop zijn ambities: een beleidsdocument, een reviewstap, een belofte dat er een mens meekijkt. Onder echte operationele druk brokkelen die snel af.

We wilden een omgeving waarin AI-agents echt helpen bij het beheren van infrastructuur, en waarin de gevolgen van een slechte beslissing worden begrensd door architectuur in plaats van door oplettendheid. Dat betekent dat de grenzen echt moeten zijn: gescheiden nodes, firewallregels, beperkte credentials, geaudite toegang. Dezelfde controles die een enterprise zou eisen, toegepast op een platform dat klein genoeg is om snel te veranderen.

Wat we deden

01

Eén control plane, expliciete doelen

Een Model Context Protocol-server biedt een vastgestelde set operationele doelen, zoals virtualisatie, containers, databases, DNS en monitoring, in plaats van shelltoegang te geven en er het beste van te hopen.

02

De workloads isoleren die ertoe doen

Klantgerichte workloads draaien op fysiek gescheiden hardware, met firewallregels op de grens en nauw afgebakende uitzonderingen voor de reverse proxy, zodat een fout in de ene context de andere niet kan bereiken.

03

Infrastructure as code, overal

Containers, DNS, monitoring en uitrolpaden zijn vastgelegd in versiebeheer, zodat wat een agent verandert zichtbaar is als diff in plaats van als verrassing.

04

Observability als voorwaarde

Uniforme metrics, dashboards en alerting bestaan voordat automatisering toegang krijgt. Een geautomatiseerde actie die niet waarneembaar is, is geen automatisering maar een gerucht.

05

De incidenten opschrijven

Een afhankelijkheid in de herstartvolgorde veroorzaakte een echte storing. De fout, de diagnose en de oplossing zijn gedocumenteerd, omdat ongedocumenteerde incidenten zich herhalen.

Hoe het werkt

Twee nodes, vijfentwintig containers

Een gevirtualiseerde omgeving met applicatie-, database-, monitoring- en inferentieworkloads, plus een apart backupdoel.

Gedeelde inferentiehost

Een GPU-host levert lokale modelinferentie aan elke andere dienst, zodat AI-workloads draaien op infrastructuur die we zelf beheren in plaats van elders naartoe te worden gestuurd.

Uniforme observability

Metricsverzameling, dashboards als code en alerting over de hele omgeving, gevalideerd bij elke wijziging.

Geautomatiseerde gezondheids­rapportage

Geplande controles rapporteren de toestand van de omgeving in een vast ritme, zodat afwijkingen volgens schema zichtbaar worden in plaats van tijdens een incident.

Fysieke scheiding voor klantwerk

Klantworkloads zijn geen buren van interne experimenten. Ze draaien op aparte hardware achter eigen firewallregels.

Afgebakende, opgesomde toegang

Agents bereiken een vastgestelde lijst operationele doelen. Mogelijkheden worden bewust toegekend in plaats van geërfd uit een shell.

Alles waarneembaar

Geautomatiseerde acties komen terecht in dezelfde monitoring en hetzelfde versiebeheer als menselijke, zodat beoordelen achteraf mogelijk is.

Beslissingen vastgelegd

Architectuurkeuzes worden vastgelegd als beslisdocumenten met hun context en gevolgen, niet alleen met hun uitkomst.

Technologie

Proxmox Docker Terraform PostgreSQL Prometheus Grafana Model Context Protocol Ollama

Het resultaat

De omgeving draait op twee virtualisatienodes en ongeveer vijfentwintig containers, met klantworkloads geïsoleerd op aparte hardware, infrastructuur vastgelegd in versiebeheer en uniforme monitoring over alles.

We zijn bewust transparant dat dit ons eigen platform is en geen klantopdracht. Juist dat maakt het nuttig om over te praten: het is de omgeving waarin we het geheel kunnen laten zien, de architectuur, de beslisdocumenten, en het incident dat we zelf veroorzaakten en daarna oplosten.

Zoekt u uit hoe u AI-agents in de buurt van uw infrastructuur laat zonder de sleutels uit handen te geven, dan is dit het gesprek dat we het liefst voeren.

Er worden hier geen adressen, hostnamen, container-ID's, credentials of topologiedetails gepubliceerd. Beveiligingsrelevante configuratie wordt alleen in algemene termen beschreven.

Verwant werk

Een Nederlandse zonweringinstallateur

Voordat de factuurknop live ging, bouwden we wat hem tegenhoudt

Het systeem stond op het punt klanten te gaan mailen. Niets hield het tegen om ze allemaal te mailen.

TypeScript PostgreSQL Prisma
Een Nederlandse zonweringinstallateur

De eerste automatische lezing zag er perfect uit. Elk veld dat ertoe deed, was leeg

Een extractie die een compleet ogend resultaat teruggeeft zonder iets belangrijks erin, is erger dan een extractie die faalt.

TypeScript PDF-rendering Visionmodellen