Moderne IT-oplossingen worden steeds vaker gebouwd met behulp van containertechnologie. Bij deze werkwijze maak je gebruik van ‘verpakte’ microservices, inclusief de bijbehorende afhankelijkheden en configuraties. Kubernetes (Grieks voor stuurman) is een opensource platform voor het op grote schaal implementeren en beheren van containers.
De combinatie van containers, Kubernetes en cloud-native technologie geeft je de mogelijkheid om het tempo van deployments op te voeren, waardoor je software sneller en goedkoper kunt opleveren. Bovendien boek je veel winst op het vlak van flexibiliteit en schaalbaarheid. Je speelt eenvoudiger in op zaken als de hoeveelheid traffic, requests en CPU, maar ook op het aantal aanvragen en interacties.
Tegelijkertijd kan het managen van Kubernetes een complexe taak zijn. We spraken backend-developer Rudi van Hierden (van Draad) over de ervaringen die zijn bedrijf met Kubernetes heeft en hoe de samenwerking met True ervoor zorgt dat ze het beste uit dit krachtige platform halen.
Specialist
Draad is een internetbureau dat gespecialiseerd is in het bedenken, ontwerpen en ontwikkelen van websites en applicaties met een uitdaging. Kan je conversiepercentage wel een boost gebruiken? Wil je een eigentijdsere look and feel die meer aansluit op de moderne tijd? Of wil je een oplossing die nog bedacht moet worden? Dit zijn uitdagingen waar de specialisten van Draad graag hun tanden in zetten.
De klantenkring van Draad is behoorlijk gevarieerd. Van een internationale corporate tot een gemeente en van een welzijnsorganisatie tot een consultancybureau: de diversiteit is groot. “Omdat we niet zo heel groot zijn, kunnen we makkelijk de diepte ingaan en klanten veel persoonlijke aandacht geven”, vertelt Rudi van Hierden.
OpenStad
Draad kwam voor het eerst echt concreet in aanraking met Kubernetes toen het bedrijf een aantal jaren terug betrokken raakte bij het project OpenStad. Dit project komt oorspronkelijk uit de koker van de gemeente Amsterdam, maar loopt inmiddels al in meerdere gemeenten. OpenStad is een OS-platform voor participatieprojecten dat gemakkelijk te gebruiken digitale tools aanbiedt voor projecten, stadsdelen en gemeenten.
Het doel is om burgers meer zeggenschap te geven over wat er in hun gemeente gebeurt door ze de instrumenten aan te bieden om langs digitale weg participatieprojecten op te zetten. Partijen kunnen een plan indienen, waarover de burgers vervolgens kunnen stemmen. Het platform bevat widgets die speciaal zijn ontwikkeld om inwoners op een interactieve manier meer invloed te geven op wat er in hun stad of dorp gebeurt.
Denk bijvoorbeeld aan een online stemtool, manieren om plannen in te sturen, een tool waarmee bewoners budget kunnen toewijzen aan plannen voor het gebied en een keuzewijzer voor complexe openbare ruimtelijke projecten.
OpenStad draait inmiddels al in een twintigtal gemeenten, waarvan de meesten in Zuid- en Noord-Holland liggen. De verwachting is wel dat zich de komende jaren nog veel meer gemeenten gaan aansluiten bij OpenStad.
Uitdagingen
Een van de eisen die OpenStad stelde was dat het project in Kubernetes moest draaien. “We hoefden de oplossing dus niet intern te verkopen. Het was een eis, dus we zijn zo snel mogelijk gaan kijken hoe we het werkend konden krijgen”, vertelt Rudi. Dat was best een uitdaging. “De Kubernetes-technologie was al een paar stappen verder dan waar wij toen waren. Het beste halen uit Kubernetes ging dan aanvankelijk ook met wat vallen en opstaan.”
Wat maakt het platform zo complex? “Waar wij vooral tegenaan liepen was dat het lastig was om pipelines van pods (de kleinste units die je kunt deployen binnen Kubernetes) te updaten zonder dit handmatig te doen met YAML. Dat hebben we opgelost door ArgoCD te gebruiken. Heb je dat eenmaal staan? Dan kun je eenvoudig een nieuwe omgeving voor een of meerdere gemeenten deployen.”
Om het maximale uit Kubernetes te halen, moest het team van Draad dus wel nog wat bijleren. “We hebben ons bijvoorbeeld gestort op het beter bestuderen van de basis van Docker. Hoe gieten we alles in een werkbare pipeline? Hoe kunnen we ArgoCD het beste gebruiken? Waarom kunnen we beter GitOps in plaats van DevOps gebruiken?
Lees ook: Welke skills en vaardigheden heb je nodig voor het beheren van Kubernetes?
Daarnaast hebben we onderzocht hoe Kubernetes precies in elkaar zit en hoe de verschillende componenten zich tot elkaar verhouden. Hoe ga je om met verschillende workloads en zet je load balancing in voor het optimaal verdelen van deze workloads?”
Bij het in gebruik nemen van Kubernetes kwam volgens Rudi ook de nodige tijdsdruk kijken: “De omgeving moest er binnen een week of twee staan. Echt de tijd om zelf een uitgebreide roadmap op te zetten hadden we dus niet. Maar door alles goed te documenteren en de externe experts van True te raadplegen, kwam alles toch snel op zijn pootjes terecht. Managed Kubernetes van True nam ons de nodige complexiteit uit handen en droeg er zeker aan bij dat we snel onze weg vonden binnen het platform.”
Veiligheid en compliance
Veiligheid en compliance zijn voor Draad ook enorm belangrijk, zeker bij het project OpenStad. Gemeenten werken namelijk met veel privacygevoelige informatie en hebben op het gebied van IT-veiligheid, gegevensbescherming en compliance met privacywetten natuurlijk een voorbeeldfunctie.
Samen met True is Draad er uiteindelijk prima in geslaagd om de veiligheid van de oplossing te waarborgen. “True regelt veel in het cluster. We kunnen bijvoorbeeld zogenoemde secrets aanmaken binnen Kubernetes, waardoor we wachtwoorden en ID’s veilig kunnen beheren. Daarnaast wordt informatie binnen OpenStad op vaste momenten geanonimiseerd en weggehaald. Bovendien heeft elke gemeente een eigen namespace. De pods van de verschillende gemeenten kunnen dus niet met elkaar communiceren”, legt Rudi uit.
Snel nieuwe clusters toevoegen
Inmiddels staat de Kubernetes-omgeving voor OpenStad als een huis. Elk cluster kan ongeveer tien gemeenten herbergen, waarbij elke pod een bepaalde hoeveelheid CPU-ruimte en resources reserveert voor een gemeente. Dankzij Kubernetes hoeft Draad alleen een nieuw cluster aan te maken als zich nieuwe gemeenten aandienen voor het project. Het is dus niet meer nodig om bij een uitbreiding van de omgeving de hele techstack te herzien.
Toch staan er nog wel een paar toekomstige puntjes op de Kubernetes-wensenlijst van Draad. “We zouden nog graag een microservice erbij hebben die automatisch notificaties uitstuurt naar de beheerder. Dat is nu nog hard-coded, maar zou met een speciale microservice sneller kunnen. Daarnaast willen we de API-service verbeteren en uitbreiden en bestaande services verder aanscherpen, zodat we nog sneller kunnen opschalen.”
Common Ground
Een ander gemeentelijk project dat sterke raakvlakken heeft met Kubernetes-technologie en het werk van True en Draad is Common Ground. Dit is een initiatief van de Vereniging van Nederlandse Gemeenten (VNG) dat streeft naar het creëren van een moderne en snelle manier om veilig gegevens uit te wisselen.
Lees ook: Wat is Common Ground en wat maakt dit initiatief zo interessant?
Binnen het huidige stelsel is het uitwisselen van informatie tussen verschillende gemeenten en andere overheidsinstanties vaak een lastig, complex en tijdrovend proces, vooral omdat gemeentelijke applicatielandschappen vaak verouderd zijn.
Een van de onderdelen van Common Ground is Haven. Dit is een uniforme technische infrastructuur voor Kubernetes die op een veilige en stabiele manier in Dockercontainers draait. Haven fungeert als een soort ‘laag 0’, een fundament waaraan applicaties binnen Common Ground moeten voldoen. Maar omdat dit fundament zo flexibel is, kunnen deze applicaties snel de vernieuwingen doorvoeren die nodig zijn in het applicatielandschap van gemeenten.
Zo krijg je een uniforme standaard met settings waaraan je Kubernetes-clusters moeten voldoen. True en Kubernetes streven ernaar om de clusters binnen OpenStad ook volledig Haven-proof te maken.
Meer informatie
Spreekt de case van Draad en OpenStad je aan? En wil je zelf de voordelen van Kubernetes ontdekken? Dan zit je bij True goed. Wij zijn vooralsnog de enige partij in Nederland die Managed Kubernetes aanbiedt.
True neemt je alle complexiteit van het orkestratieplatform uit handen, zodat jouw ontwikkelaars zich helemaal kunnen focussen op code en containers. Jij hoeft alleen maar bezig te zijn met het ontwikkelen van je applicatie, terwijl wij zorgen voor een hoog beschikbaar, veilig en snel platform dat klaarstaat om jouw containerworkloads te faciliteren. Benieuwd naar de mogelijkheden? Neem dan gerust vrijblijvend contact met ons op.
Neem contact met onze specialisten en vertel waarnaar je op zoek bent.