Podo-IT ontwikkelt software voor zowel zijn zusterbedrijven als klanten die actief zijn in de voetzorg. Deze software host het softwarebedrijf met behulp van managed Kubernetes bij managed services provider True. Het softwarebedrijf neemt de implementatie, beheer en optimalisatie hierbij volledig in eigen beheer. True ondersteunt op basis van SLA’s, en denkt indien nodig met Podo-IT mee. Joost ter Braak, teamleider ICT bij Podo-IT, licht deze keuze toe.
“Podo-IT is een softwareontwikkelingsbedrijf dat software ontwikkelt voor voornamelijk zusterbedrijven. Dat zijn onder andere Voetencentrum Wender, PLT Products en Voetmax Orthopedie”, legt Joost uit. Voetencentrum Wender biedt podotherapie aan, PLT Products is gespecialiseerd in het digitaliseren van het aanmeten en vervaardigen van podotherapeutische en orthopedische voorzieningen en Voetmax ontwikkelt volledig op maat gemaakte- en aangepaste schoenen.
Processen stroomlijnen
Het gaat uitsluitend om software gericht op de voetzorg en de vertical hieromheen. “Denk hierbij aan een systeem als Podo-IT dat het maken van afspraken met patiënten stroomlijnt. Voor veel patiënten wordt daarnaast bij PLT Products een podotherapeutisch hulpmiddel geproduceerd. Het achterliggende productieproces sturen we aan via software van onze hand: PLT Life.”
Voetencentrum Wender is een grote speler op de Nederlandse markt voor voetzorg met bijna 300 vestigingen verspreid over het land. “De wachttijd varieert sterk per vestiging en kan bij sommige vestigingen zo maar enkele weken langer zijn dan bij een andere locatie. Podo-IT zorgt dat patiënten zo snel mogelijk terecht kunnen in één van onze vestigingen, met een zo laag mogelijke wachttijd”, legt de teamleider ICT uit.
Nieuwe klanten aansluiten kostte te veel tijd
Podo-IT is een softwaresysteem waarvan vijf verschillende bedrijven binnen de groep gebruik maken. Daarnaast zet ook een aantal externe klanten het systeem in. “Het aansluiten van een nieuwe klant en online brengen van een nieuwe instance voor deze klant was in onze oude situatie erg omslachtig. Zo kon het opzetten van een server voor een nieuwe klant al snel een week in beslag nemen. Ook het beheer nam simpelweg te veel tijd in beslag.”
“In de praktijk merkten we daarnaast dat zeker bij kleinere klanten de beschikbare capaciteit van de onderliggende servers een groot deel van de dag niet volledig werd benut. Dat is zonde, want deze capaciteit gaat simpelweg verloren.”
Kubernetes was niet de eerste oplossing die door Podo-IT is onderzocht om dit probleem aan te pakken. “We hebben eerder geëxperimenteerd met onder meer Docker Compose en Ansible. Ondersteuning ontbrak echter en de technologie is niet zo kant-en-klaar beschikbaar als Kubernetes. De keuze is daarom uiteindelijk op Kubernetes gevallen.”
Lees ook: Is jouw app klaar om cloud-native te gaan?
Implementatie, beheer en optimalisatie in eigen beheer
Podo-IT kiest ervoor de implementatie, het beheer en het optimaliseren van Kubernetes in belangrijke mate voor eigen rekening te nemen. True biedt ondersteuning op basis van SLA’s. “Wij werken veel samen met externe partijen zoals zorgverzekeraars, boekhouders en leveranciers. Wij merken elke keer weer dat integraties met en afhankelijkheden van systemen van deze externe partijen voor complexiteit zorgen”, licht Joost toe. Podo-IT wil daarom zelf aan de knoppen zitten. “Als je door een externe partij een wijziging wilt laten doorvoeren, neemt dit logischerwijs enige tijd in beslag. Zo moet je hiervoor doorgaans een ticket inschieten, die vervolgens wordt opgepakt, beoordeeld en verwerkt. Dat proces duurt ons simpelweg te lang. Wij nemen dit daarom liever zelf op ons.”
Joost noemt Kubernetes hierbij een ‘mooie tussenweg’. “We kunnen vanuit Kubernetes heel veel uitbesteden. Zo hebben we geen omkijken meer naar het serverbeheer en het opzetten van alle lagen van Kubernetes. Tegelijkertijd houden we de vrijheid om zelf aanpassingen te doen. Zo kunnen wij zelf aanpassingen maken op de server en zelf wijzigingen in de configuratie doorvoeren.”
Ondersteuning door True
Hoewel Podo-IT ernaar streeft zoveel mogelijk zelf te doen, kunnen zij terugvallen op True voor eventuele ondersteuning. “Wij zijn geen Kubernetes experts. Wij zijn ontwikkelaars en maken software, die we vervolgens op de server deployen. Lopen wij hierbij tegen problemen aan of weten wij niet goed hoe wij een bepaalde uitdagingen het beste kunnen aanpakken? Dan helpt True ons hierbij. Zij adviseren ons bijvoorbeeld ook op het gebied van monitoring, het testen van softwarecode en builden van images.”
Lees ook: ‘Veel SaaS-klanten groeien uiteindelijk door naar cloud-native technologie’
“De legacy versie van Podo-IT draaide op PHP en MySQL, een redelijk standaard stack. Deze bracht uitdagingen met zich mee. Zo draaide het systeem nog op een oudere versie van PHP, terwijl MySQL nauwkeurig moest worden geconfigureerd”, zegt Joost. Een nieuwe instance van dit legacy systeem opzetten kostten voorheen al snel een week. “Aangezien we niet dagelijks nieuwe instances aanmaken, liepen we hierbij telkens tegen dezelfde problemen aan.”
Podo-IT is in eerste instantie aan de slag gegaan met Ansible om dit proces te stroomlijnen. “We hebben onder meer vastgelegd wat voor het aanmaken van een instance echt nodig is. Denk hierbij aan versiebeheer en specifieke configuraties die Podo-IT vereist. Bij Ansible hadden we echter nog steeds met ruwe servers te maken, waardoor deze oplossing niet de gewenste stabiliteit bracht.”
Overstap op Kubernetes
Na geëxperimenteerd te hebben met Ansible is Podo-IT daarom overgestapt op Kubernetes. “Doordat we bij het gebruik van Ansible al goed hadden vastgelegd wat precies nodig is voor het opzetten van een nieuwe instance van Podo-IT, kon zo’n instance toen al binnen een uur worden opgezet. We hebben Podo-IT toen omgezet in een docker-image en geschikt gemaakt voor Kubernetes.”
Lees ook: Welke soorten Kubernetes-partners zijn beschikbaar in Nederland?
“Bij de nieuwe versie van Podo-IT gebruiken we C# voor de back-end. Voor de front-end kiezen we PureScript, een compile-to-javascript taal waarmee je relatief gemakkelijk een zeer stabiele front-end kunt bouwen. GraphQL gebruiken we om de back-end en front-end aan elkaar te plakken. Dit fungeert als vervanger voor alle REST API’s.”
Kant-en-klare bouwblokken
Prettig noemt Podo-IT dat heel veel zaken bij Kubernetes beschikbaar zijn als kant-en-klare bouwblokken. Een voorbeeld is het gebruik van Redis, dat in Kubernetes erg eenvoudig is. “We maken nu nog gebruik van een heleboel kleine Redis-instanties. Momenteel zijn we bezig met het opzetten van een nieuw cluster voor heel Redis. Als je hier even voor gaat zitten, is zo’n cluster in een half uurtje opgezet”, zegt de teamleider ICT. “Dat was bij Ansible wel anders; daar moet je echt alles zelf doen.”
Werken met Kubernetes vraagt van ontwikkelaars een andere manier van werken. “Met name de manier van releasen is anders. We maken nu een push naar Git, waarna een Docker-image wordt aangemaakt. Deze werkwijze biedt belangrijke voordelen. Zo is het opzetten van testinstances nu veel makkelijker, aangezien je over een vastgebakken image beschikt. Voorheen liepen we er bijvoorbeeld tegenaan dat teruggaan naar een eerdere versie van software niet altijd eenvoudig was. Met Docker-images heb je altijd de vorige image beschikbaar die je opnieuw kunt uitrollen en is dit dan ook veel gemakkelijker.”
Lees ook: Welke skills en vaardigheden heb je nodig voor het beheren van Kubernetes?
Ook vraagt werken met Kubernetes om bepaalde kennis. “Je moet bijvoorbeeld een klein beetje kennis hebben van Linux-beheer, net genoeg voor het bouwen van een paar kleine scripts. Verder moet je vooral heel veel weten over je eigen applicatie, zodat je precies weet wat deze nodig heeft. Hoe werkt je applicatie onder de motorkap en welke onderdelen communiceren bijvoorbeeld met elkaar?”
Sneller updates uitbrengen
De eenvoud waarmee nieuwe images worden uitgerold is ook terug te zien in de frequentie waarmee het team van Podo-IT updates uitbrengt. “Voorheen deden we dit eens in de zoveel maanden. Nu brengen we simpelweg een update uit als dat nodig is. Soms is dat een keer in de maand en soms twee keer per week. Dat is puur afhankelijk van de behoefte vanuit de business.”
Over de complexiteit van Kubernetes is Joost duidelijk: “Ik zie Kubernetes eigenlijk niet als moeilijk; het is niet veel ingewikkelder dan de andere activiteiten die wij uitvoeren. Veel gebeurt daarnaast dankzij scripts praktisch automatisch, zonder dat je daarnaar omkijken hebt.”
Veilig geconfigureerd en up-to-date
Wat betreft security en compliance zorgt Podo-IT vooral dat zijn software veilig geconfigureerd en up-to-date is. “Wij richten ons op de veiligheid van onze software, en bijvoorbeeld de communicatie tussen microservices veilig houden. De security van de onderliggende infrastructuur laten we over aan True”, zegt Joost. “Intern zijn we bijvoorbeeld continu bezig met het steeds verder aanscherpen van toegangsrechten, zodat gebruikers alleen toegang tot data en functionaliteiten waar zij daadwerkelijk toegang tot nodig hebben.”
Download ook de whitepaper: Cloud-native applicaties draaien op Kubernetes
De migratie van Podo-IT naar Kubernetes is grotendeels klaar. “Een klein deel van de applicatie is nog niet gemigreerd. Alles staat echter klaar en deze migratie vindt dan ook naar verwachting op korte termijn plaats. Daarnaast willen we steeds meer zaken gaan clusteren, zoals de eerdergenoemde Redis-instances. We beschikken nu nog over een losse Redis-instance per klant of bedrijf, maar werken toe naar een overkoepelend Redis-cluster.”