In sync houden TAP-straat
En de idealistische toekomst
Auteur: Joeri Bekker | Status: In voorbereiding
TODO:
Utrecht zit op de handmatigere lijn
Den Haag zit op de automatische CI/CD lijn
Wiebe vind dat het om een tijdspad is: van wat werkt nu, wat we willen in de toekomst.
Disclaimer
Op deze pagina wordt ingegaan op specifieke problemen uit de praktijk. Dit zegt niet perse iets over de organisaties, personen, producten, patronen, achterliggende concepten of Common Ground, maar wel wat er beter kan en waar aan gewerkt moet worden.
Inleiding
Voor problemen in de praktijk moeten er vaak snel oplossingen gerealiseerd worden om de dienstverlening niet in gevaar te brengen. Dit kan in sommige gevallen leiden tot suboptimale oplossingen. Het is niet erg dat suboptimale oplossingen worden toegepast maar het moet wel inzichtelijk worden wat de ideale oplossing is, en hoe we daar naar toe werken.
Ultieme doel
Een functioneel beheerder behoeft enkel op de testomgeving wijzigingen te maken. Als dat klaar is, is het aan het CI/CD team om dit op acceptatie en productie te krijgen.
De volgende aspecten moeten van omgeving A naar B :
Installatie / Softwarecomponenten -> Platform beheer
Technische configuratie (koppelingen) -> Platform beheer
Inrichting / Artefacts / Functionele inrichting -> (Functionele) ontwikkelteams
Scope
Datgeen dat nodig is om een zaakproces met al haar afhankelijkheden van een testomgeving naar een volgende omgeving te brengen.
Buiten scope
Koppelingen die eenmalig gelegd moeten worden, zijn buiten scope. Koppelingen die wijzigen door toevoegingen of wijzigingen aan processen.
Archiefbeheercomponent, behoeft (straks, zie kaartje) geen aanvullende configuratie bij een nieuw zaaktype
Open Klant, behoeft geen aanvullende configuratie bij een nieuw zaaktype
Authenticatie, behoeft geen aanvullende configuratie per zaaktype
Kiss, behoeft geen aanvullende configuratie per zaaktype
FSC, NLX
NotifyNL
Conceptbesluiten
Ieder artifact moet een unieke identifieer, liefst human readable en een versionering hebben.
Woordenboek
A: Artefact: gegevensset die altijd meeverhuist naar een nieuwe omgeving
P: Probleem: gegevensset die nader bekeken moet worden
C: Configuratie: gegevensset die niet meeverhuist naar een nieuwe omgeving
HRI: Human readable identifier
Vraagstukken
Versionering van componenten
Iets rondom uniformiteit van uuid’s
Onderscheid tussen handmatige configuratie vs geautomatiseerde configuratie
Inventarisatie per component
Open Formulieren
Formulierdefinitie A
Vormgeving AP
Formuliercategorieen AP
Herbruikbare formulierstappen AP
Objecttypen mapping AP
Technische koppeling CP
Objectregister
Objecttype definitie A
Autorisaties AP
Bevat api-key
Open Notificaties
Abonnementen AP
Kanalen A
Credentials?
GZAC
Casedefinitie (zip-baar)
BPMN A
DMN tabellen A
Dossierdefinitie A
Plugin actions A HRI
Formulierdefinities A
Form flow A
PBAC A ..
Dossier werklijstindeling A
Proceskoppelingen A
Technische koppelingen (zaaktypen, etc)
Knelpunt bouwblokken / gedeelde artifacts P
Widgets A
Kotlin-code A
Noot: verzoek om álle plug-in actions
Bedrijfsregels
DMN A
Autorisaties?
Documentcreatie
Template A
Autorisatie P
Open Zaak
Catalogus A
Zaaktypedefinitie A
Besluittype A
Documenttype A
Autorisaties AP
Verbinding met Open Notificaties
Mail
Templates A
Afzenders A
Adressen C
Klantportaal
Vertalingen A
Thema’s P
Archiefbeheercomponent
Zaaktypespecifieke archieveringsparameters P
Liefst verwerken in ZTC
Referentielijsten API
De lijst AP
IAM
eHerkenning Machtiging P
Rollen P
Best practices en werkpakketten die daaruit volgen
Deployments moeten artefacten inlezen vanaf een volume
Volume bevat ALLE artefacten (of niet, boeit niet), laad alle gewijzigde artefacten in. Bepaal of iets gewijzigd is op basis van een hash.
PROBLEEM: Versies pas bij export ophogen? Wat als je versie 18 van een objecttype hebt op O, en acceptatie draait nu versie 3. Welke versie nummer krijgt dit objecttype op acceptatie? 4 of 18? Indien 18, dan zijn de oude versies ook nodig? Hebben we een platform versie en een meta-versie?
Proces: Iedereen levert de export aan van het UI werk op de O-omgeving. Als de overkoepelend projectmanager alle exports aangeleverd heeft, dan wordt het geheel uitgerold, waarna keten testen kunnen plaatsvinden. Op de T-omgeving mag je natuurlijk ook tussendoor uitrollen.
Voorbeeld mapjes op het volume voor de T-omgeving
Proces Stadspas aanvragen (dit totaal heet een bundel)
Open Zaak
Zaaktype Stadspas aanvragen versie 1
Documenttype: Bijlage versie 1
GZAC
BPMN Stadspas aanvragen versie 1
BPMN Stadspas aanvragen versie 2
BPMN Stadspas aanvragen versie 3 (afhankelijkheid van DMN Postcodegebied versie 1)
DMN Postcodegebied versie 1 (verwijzing/symlink naar Generiek)
Objecttype
Objecttype Stadspas verzoek versie 1
Objecttype Stadspas verzoek versie 2
Open Formulieren
Formulier Stadspas aanvragen versie 1
Generiek
GZAC
DMN Postcodegebied versie 1
Het mapje van de T-omgeving wordt na keten-testen gesynced met de A en P-omgeving
Artefacten moeten idempotent zijn (unieke sleutel + versie)
Open Formulieren: Herbruikbaar formulierdefinities
GZAC: Artefacten moeten nagelopen worden
Configuratie opslag van UUIDs en URLs voorkomen door unieke sleutel op te slaan
Open Formulieren
GZAC (Plugin-actions: zaaktypen, besluittypen, documenttypen)
Artefacten export van data zonder UUIDs en URLs maar met unieke sleutels
Open Formulieren: Formulieren, Categorien, Themas
Open Zaak: Catalogi API (zaaktypen, besluittypen, documenttypen)
Open Klant
Objecttypen API: Zorg voor een unieke sleutel die niet de UUID is
Referentielijsten API: Moet export mogelijkheid komen
Artefacten exporteren met verwijzingen naar koppelingen, zonder de daadwerkelijke koppelingsgegevens (bijv. Formuliern gebruikt Zaken API #1)
Open Formulieren: Koppelingen met unieke sleutel aanduiden (die gelijk met zijn over omgevingen), en in exports opnemen
Notificatieabonnementen bij elke deploy aanmaken/verifiëren
GZAC: Deploy/Init aanpassen
Objecttypen API: deploy/init aanpassen
Open Zaak: deploy/init aanpassen (al gedaan met setupconfig?)
Gedeelde configuratie/bouwblokken in een artefact overschrijven
Open Formulieren
Overige
Bij het zaaktype opnemen van hoe je omgaat met archivering (4 ogen principe, of in bulk of niet)
Casedefinition is een zip met alles BPMN, DMN, formulieren, etc.). Hoe om te gaan met gedeelde bouwblokken (=artefacten) en dit is hetzelfde met Open Formulieren en gedeelde formulier definities.
Last updated