BK cloud / systemen Notities Laten we kennismaken ↗
NL
English ENDeutsch DEEspañol ES中文 ZHFrançais FRPortuguês (Brasil) PT-BR日本語 JAहिन्दी HINederlands NL
← Terug naar praktijknotities

Wanneer automatisering de bottleneck wordt: wat we hebben geleerd

In Hoe deze website met prompts werd gebouwd beschreef ik hoe AI hielp een oude WordPress-installatie om te bouwen tot een statische website op AWS S3 en CloudFront. Ik had onderschat hoe snel een eenvoudige persoonlijke site in een ingewikkeld softwareproject kon veranderen.

Hoe de complexiteit groeide

We begonnen met enkele pagina’s. Daarna kwamen weersverwachtingen, trainingsgegevens, spellen, beveiligingscontroles, geautomatiseerde releases en negen talen. Naast Engels voegden we Duits, Spaans, Chinees, Frans, Braziliaans Portugees, Japans, Hindi en Nederlands toe. Dat vergrootte het bereik, maar elke taal bracht ook extra HTML, navigatielinks, feeds, metadata en mogelijke fouten mee.

Onze naïeve aanname: een statische website is goedkoop om te bouwen, dus negen complete versies opnieuw genereren kost nauwelijks iets. In werkelijkheid wachtte zelfs een kleine Engelse wijziging op lettertypen, afbeeldingen, alle taalversies van de navigatie, de sitemap en controles. We maakten alle negen talen tot één ondeelbare voorwaarde voor iedere release.

Vroeger: één blokkerende release

Elke taal moest klaar zijn vóór publicatie

ENDEESZHFRPT-BRJAHINL
9 talen
S3-origin

Het probleem waren niet de vertalingen zelf, maar onze afhankelijkheidsstructuur.

Wanneer bescherming een obstakel wordt

In de GitHub-geschiedenis liepen we vast op geheimmenscanners, verschillen in reproduceerbare builds, vastgelopen lettertype-installaties, workflowfouten en ontbrekende AWS IAM-rechten. Tijdens herstel werden 534 openbare objecten gecontroleerd: 501 klopten, 24 weken af en negen nieuwe pagina’s waren niet leesbaar.

Elke beveiliging had een goede reden. Samen maakten ze kleine wijzigingen moeilijk. Meer automatisering betekent niet automatisch betere automatisering. Een mislukte controle moet worden onderzocht, niet genegeerd.

Het nieuwe ontwerp: eerst Engels

We willen de belangrijkste taal loskoppelen van de acht vertalingen die daarna kunnen volgen.

Eerst Engels, daarna vertalingen
Eerste publicatieGoedgekeurd EngelsS3-origin
Latere beoordeling8 vertalingenS3-origin

korter is beter

Dit schema beschrijft de beoogde uitrolvolgorde, niet het bewijs dat deze al zo is uitgevoerd. Vertalingen worden aan de exacte Engelse bron gebonden via SHA-256. Als de Engelse tekst verandert, vervallen eerdere goedkeuringen. Een ontbrekende vertaling mag nooit stilzwijgend door de Engelse tekst worden vervangen.

Reproduceerbare builds, OIDC, minimale AWS-rechten, kostenlimieten en geen CloudFront-invalidaties blijven verplicht.

Wat we daadwerkelijk hebben gecontroleerd

PR’s #119–#122 leverden een compiler voor Engelse artikelen, een tweede voor acht beoordeelde talen en een testvolgorde Engels → talen → integriteitscontrole. De handmatige test heeft geen AWS-schrijfrechten. De gefaseerde publicatie blijft beveiligd met expliciete toestemmingsvariabelen; de bestaande OIDC-workflow voert vóór S3 nog steeds de volledige sitecontrole uit.

Groene CI betekent dus niet dat Engels al live was terwijl andere talen werden verwerkt. De testlogs meldden sourceToHtmlBuildComplete=false, productionDeploymentApproved=false en nul S3-schrijfacties.

De gemeten tijdwinst

We vergeleken twee vergelijkbare negen-talige wijzigingen in de changelog van 7 november 2026. Dit zijn metingen van de volledige bestaande pipeline, niet van twee echt gefaseerde productiereleases.

MaatstafEerderLaterVerschil
Offline-CI3:38 min (218 s)3:18 min (198 s)9,2% sneller
Volledige kwaliteitspoort2:55 min (175 s)2:27 min (147 s)16,0% sneller
Gitleaks56 s67 s11 s trager
Semgrep10 s11 svrijwel gelijk
pip-audit13 s12 svrijwel gelijk
PR geopend tot merge41:50 min34:29 min7:21 min korter
Gemeten volledige controles

korter is beter

Offline-CI
Eerder
218 s
Later
198 s
−9.2%
Kwaliteitspoort
Eerder
175 s
Later
147 s
−16.0%

De kwaliteitspoort zit binnen de offline-CI en moet niet worden opgeteld. Beveiligingsjobs draaien parallel. Semgrep en pip-audit sloegen hun dure scanstappen over bij deze documentatiewijzigingen. Twee runs bewijzen ook nog geen blijvende verbetering.

We verwijderden dubbele assetcontroles, hergebruikten SHA-256-hashes en navigatiegegevens, cacheten Python- en Sharp-downloads, maakten de duur van generatoren zichtbaar en introduceerden een snelle route voor alleen documentatie.

De Engelse snelle route

Een afzonderlijke schaduwbenchmark mat 0,562 seconde voor de Engelse HTML-controle: 60 pagina’s, 96 assets en 514 lokale links. De gesimuleerde Engelse merge-controles duurden 15 seconden. Alle 501 bestanden van andere talen bleven onveranderd.

Dat zijn deelmetingen en proefuitvoeringen, geen werkelijke tijd van merge tot S3-publicatie. De 15 seconden rechtstreeks vergelijken met 198 seconden volledige CI zou misleidend zijn.

Van pull request tot live pagina

Een PR is geen deployment. Na tests, beoordeling en merge controleert de release de exacte bestanden, SHA-256-manifesten, AWS-rechten en het kostenbudget. Pas daarna worden ze naar S3 geschreven. CloudFront ververst zonder betaalde invalidatie via de normale TTL.

Voor een echte gefaseerde meting leggen we T0 Engelse merge, T1 Engelse checks gereed, T2 S3-upload Engels bevestigd, T3 vertalingen gestart en afgerond en T4 upload acht talen bevestigd vast. Dan pas weten we hoeveel eerder Engelstalige lezers de inhoud ontvangen.

Debuggen met AI

ChatGPT kan mislukte PR-controles onderzoeken, logs lezen, gerichte oplossingen voorstellen en de volgende CI-run controleren. Dat is vooral ’s avonds handig. Het betekent niet dat een chatsessie zonder actieve verbinding onbeperkt blijft doorwerken. De uiteindelijke beoordeling blijft noodzakelijk.

De les

De grootste verbetering is niet alleen enkele seconden minder rekentijd. Het eerste bruikbare resultaat mag niet afhankelijk zijn van elk optioneel vervolgresultaat. Engels kan eerder worden gepubliceerd, terwijl acht andere talen met dezelfde kwaliteitsnormen later volgen. Echte productiemetingen zullen het voordeel moeten aantonen.