generiekzaakafhandelcomponent / gzac-issues

1 stars 0 forks source link

Deployen van deelfunctionaliteit #26

Open PeterVanBragt opened 8 months ago

PeterVanBragt commented 8 months ago

Doel

Het uitrollen van een gedefinieerde set aan functionaliteiten op een omgeving (TEST, ACC of PROD) in tegenstelling tot het doorzetten van alle functionaliteiten van de ene omgeving naar de volgende.

Context / achtergrond

In een breed gebruikte applicatie moet het mogelijk zijn om slechts de goedgekeurde deelfunctionaliteit door te zetten naar de volgende fase. Met fasen worden hier de systemen test, acceptatie en productie bedoeld.

Op dit moment is het alleen mogelijk om de volledige functionaliteit van het acceptatiesysteem naar het productie systeem over te zetten. Concreet betekende dit onlangs dat bij het in productienemen van de doorontwikkeling van een bestaand proces, een proces in ontwikkeling ook op productie is geïntroduceerd. Vervolgens is na de uitrol met behulp van de rechten op dit — nieuwe en in ontwikkeling zijnde — proces het zicht en gebruik voor medewerkers verborgen.

Bij nieuwe processen is dit een onwenselijke maar werkbare procedure.

Het wordt onwerkbaar op het moment dat er aan twee processen die in productie zijn wijzigingen worden aangebracht. Als alleen een volledig systeem kan worden overgezet moeten de wijzigingen op alle processen zijn goedgekeurd voordat de overgang naar productie kan plaatsvinden. Dit kan leiden tot afhankelijkheden op basis van:

Wat moet er gebeuren - wat is er nog niet en hebben we wel nodig?

Om deelfunctionaliteit te kunnen uitrollen is ten eerste een lijst van onderdelen nodig die samen de deelfunctionaliteit bepalen. Onderdelen die wij al geidentificeerd hebben:

Deze kunnen per item (of eventueel gecombineerd) apart opgeslagen en geversioneerd worden.

Verder is er een wens om ook gerelateerde functionaliteiten die buiten de directe scope van GZAC vallen ook op deze manier the managen. Denk hierbij aan:

Ten tweede moet er een administratie/registratie komen om alle samenhangende versies in kaart te kunnen brengen en te loggen.

Ten derde is het voorstel om alle configuratie zoals hierboven genoemd wordt lost te trekken van de bestaande code repository en in een of meerdere repositories te zetten. Gesupport door logica om per process versies te kunnen deployen.

Technische toevoegingen / gedachten

Wat is het eindresultaat?

De mogelijkheid om deelfunctionaliteiten uit te rollen op een omgeving. In eerste instantie beperkt tot het uitrollen van een proces inclusief alle betrokken onderdelen. Hierbij wordt gestreefd naar een op korte termijn haalbaar niveau van automatisering om de hoeveelheid handwerk en kans op fouten tijdens de uitrol te beperken.

Kortom; Het resultaat zou moeten zijn dat alleen generieke artifacts afhankelijkheden zijn tussen processen.

Wat valt er buiten scope?

Configuratie van externe systemen zoals open zaak & open formulieren. Dat gezegd, de koppeling tussen GZAC en externe system die vastgelegd worden in GZAC vallen natuurlijk wel binnen scope. Bijv. UUID van zaaktype voor een omgeving.

Impact - hoeveel inspanning kost dit?

Inschatting door PO: S/M/L/XL Inschatting door SA: S/M/L/XL

Besluiten roadmap overleg

rutger-h commented 8 months ago

Zou "Het uitrollen van een gedefinieerde set aan functionaliteiten" een 'dossier-type' moeten zijn? Lees: je kan proces X doorrollen zonder proces Y?

JanBrek commented 7 months ago

@rutger-h Je 2e deel klopt, dat is het doel inderdaad. Verder heeft dit item wel een iets grotere scope. Alles wat bij een process hoort zoals BPMN, specifieke code, etc, en dus niet alleen het dossier(type)

rutger-h commented 3 months ago

Eens even gekeken wat de wereld om ons heen doet. Ik zie dat dit meer wordt gedaan, met 'deployment packages'.

rutger-h commented 3 months ago

Orkestratietool: https://octopus.com/docs/github