Jij bouwt de applicatie. Wij de rest.

Zelfservice Applicatie Deployment (ZAD): van een eenvoudige statische website tot een applicatie met een database, objectopslag en authenticatie. Je zet neer wat je nodig hebt, en het platform regelt het voor je.

Wat ZAD is

ZAD is een deploymentplatform op overheidsclouds. Het is zelfservice met extra service: je beschrijft je project via click-ops of cli, en alles wordt voor je klaargezet. Behalve je applicatie, die moet je natuurlijk wel zelf nog even bouwen.

De opzet is dat je in alle scenario's terechtkunt. Een statische site is een component met een webadres eromheen. Een zwaardere integratie is datzelfde component plus een database, een cache, opslag en een inlogvoorziening. Het verschil tussen die twee is welke diensten je aanzet, niet welk platform je nodig hebt.

De puzzel is al gelegd

De losse stukken zijn er meestal wel: ergens is een cluster, ergens een registry, ergens een database. Wat ontbreekt is dat ze in elkaar passen. Dat gat vullen kost per project opnieuw dezelfde puzzel: netwerk, secrets, certificaten, rechten, back-ups, monitoring.

Die puzzel is hier al gelegd. Elk stukje ligt op zijn plaats, en wat jij toevoegt is je applicatie. Zeg je dat je een database wilt, dan wordt die aangemaakt en staan de gegevens als omgevingsvariabelen in je component, zonder dat je ze ergens overtypt.

Diensten die je zelf aanzet

Dit is de volledige lijst zoals het platform hem kent. Elke dienst brengt zijn eigen omgevingsvariabelen mee, die je component automatisch krijgt.

Publiceren op het web

publish-on-web

Maak de applicatie toegankelijk via het publieke internet

Keycloak Authentication

keycloak

Inloggen via SSO Rijk en via lokale Keycloak-accounts in een eigen realm voor dit project

Authorization Wall

authorization-wall

OAuth2-proxy sidecar die Keycloak OIDC authenticatie afdwingt voor webapplicaties.

Prometheus Metrics Scraper

metrics-scraper

Zorgt dat prometheus scraping op het component wordt ingeschakeld

Health check

health-check

Bepaalt hoe Kubernetes de gezondheid van het component controleert (scheme, poort en paden). Zonder deze service wordt het component ook gecontroleerd, maar alleen op TCP-niveau op de eerste inbound-poort. Kies deze service om een HTTP(S)-probe op een aparte poort en paden te richten, of om probes uit te zetten met scheme: none.

Permanente opslag

persistent-storage

Gegevens blijven bewaard tijdens de levenscyclus van de applicatie

Tijdelijke schijfruimte

temp-storage

Gegevens worden niet bewaard tijdens de levenscyclus van de applicatie

PostgreSQL Database

postgresql-database

Database service voor applicaties

MinIO Object Storage

minio-storage

S3-compatible object storage voor documenten, afbeeldingen en grote bestanden

E-mail versturen

send-email

Verstuur e-mail vanuit je applicatie via de mailrelay van het platform. Je krijgt een eigen SMTP-account met een eigen dagbudget en een afzenderadres op naam van je project; de naam die de ontvanger ziet, kies je zelf.

Redis Cache

redis

Shared Redis cache en message broker voor caching en Celery task queues

Bijlagen

attachments

Geuploade bestanden (bijv. certificaten) gekoppeld als bestand of env-var aan een component

Slaapstand

sleep-mode

Zet bepaalde deployments, op basis van matching, na een deadline in slaapstand en wek ze op verzoek weer op. De deployment doet een koude start.

Uitnodiging

invite

Nodig gebruikers uit voor het Keycloak-realm van dit project via een deelbare link. Vereist de Keycloak-service.

Cross-domain toegang

cross-domain-access

Bepaal welke andere projecten, deployments of componenten de pods van dit project mogen bereiken en waar dit project zelf heen mag, telkens op een expliciet benoemde poort. Dit gaat over netwerktoegang tussen projecten, niet over DNS-domeinen.

VLAM-API

vlam

Geeft de optie te verbinden met de VLAM-API van SSC-ICT. Je hebt zelf keys nodig om de service te mogen gebruiken, dat kan niet via ZAD.

Wat er op de achtergrond gebeurt

Deze diensten kies je niet: ze draaien altijd, voor elk project.

Een platform dat alleen uitrolt en daarna wegkijkt, laat het echte werk alsnog bij jou liggen. Deze diensten kijken mee zodra je applicatie draait.

Platform

platform

Automatisch beschikbare platform variabelen

Resource tuning

resource-tuning

Systeemdienst: houdt draaiende deployments in de gaten na een sync en hoogt het geheugen op van een component dat OOM'd. Draait altijd, is niet kiesbaar.

Deployment gezondheid

deployment-health

Systeemdienst: beoordeelt wat de waargenomen toestand van een draaiende deployment betekent (OOM, CrashLoopBackOff, image ophalen mislukt) en weegt daarbij mee wat andere diensten over die deployment melden. Draait altijd, is niet kiesbaar.

Eigen omgevingsvariabelen

user-env-vars

Systeemdienst: de eigen omgevingsvariabelen van een component, per component en per deployment-component. Draait altijd, is niet kiesbaar - elk component heeft ze. De waarden worden versleuteld opgeslagen.

Aliassen

aliases

Systeemdienst: koppelt platform-variabelen aan de namen die een component verwacht (POSTGRES_HOST=$DATABASE_SERVER_HOST). Draait altijd, is niet kiesbaar. Een onbekende verwijzing is hier een harde fout, anders dan bij een eigen omgevingsvariabele.

Daarbovenop draait er 's nachts een ronde over de hele vloot die het geheugen en de CPU van elk component bijstelt op wat het echt gebruikt, en maakt het platform back-ups van schijven, databases en buckets naar opslag buiten het cluster, versleuteld met een sleutel per project en in te plannen per deployment.

En op de voorgrond: zien wat er gebeurt

Alles wat het platform weet over je project staat op een plek bij elkaar. Je ziet per deployment de toestand, het geheugen- en CPU-gebruik over de tijd, de logs van je pods, de lopende taken en de gemaakte back-ups. Wat misgaat wordt in gewone taal gemeld, niet als een statuscode die je zelf moet opzoeken.

Aan de slag

Inloggen gaat met je organisatieaccount. Heb je nog geen toegang tot een project, dan kan iemand uit dat project je een uitnodiging sturen.

Platform