In een nieuwe versie voor je infrastructuur zitten – afhankelijk van de versie-wijzigingen – veel veranderingen. Die moeten wel samenwerken met je applicatie, webshop of website. Daardoor zien we dat organisaties met digitale dienstverlening terughoudend zijn in upgraden. Dat is niet in het voordeel van je organisatie en al helemaal niet in het voordeel van je groei-ambities. In deze blog geeft Guido Laout, Head of Customer Success bij True, mee wat je aan een upgrade hebt en hoe dat in z’n werk gaat.
1 IT-jaar is 7 mensenjaren
“Onze Manager Solutions grapt wel eens dat 1 IT-jaar gelijk is aan 7 mensenjaren. Wat vandaag hot en happening is, is over 2 jaar verouderd. Dat brengt uitdagingen voor je applicatie mee: je wil enerzijds meerdere jaren vertrouwen op support voor gebruikte versies van softwarepakketten in de infrastructuur van je hosting. Anderzijds wil je ook gebruik maken van nieuwe functionaliteiten en verbeterde veiligheid die in nieuwe versies van die softwarepakketten zitten”, zegt Guido. “De nieuwere functionaliteiten geven je de mogelijkheid om een geavanceerdere app te bouwen die het verschil voor je business maakt. En het maakt je (missie-kritische) applicatie veiliger.”
Blijven vertrouwen op support en security updates
Voor het vertrouwen op support voor meerdere jaren voorziet True door alleen Ubuntu Long Term Support versies in te zetten. Guido: “Elke twee jaar komt een nieuwe LTS-versie uit en elk van die versies wordt 5 jaar ondersteund. De LTS-versie kent een standaard set van softwarepakket-versies, zoals PHP 8.1 in Ubuntu 22.04. Die versie wordt niet aangepast in de LTS-versie. Daarmee weet je zeker dat je applicatie goed blijft werken en tegelijk beveiligd is conform de nieuwste best practices en patches.”
Tijd om te upgraden voor nieuwe functionaliteiten en optimalisatie
Maar met elke vorm van support geldt: het houdt een keer op. Of je loopt er tegenaan dat een nieuwe mogelijkheid die je wilt gebruiken, niet in de versie van je programmeertaal of framework zit. Ook werken niet alle best practices meer. Guido: “Voor Ubuntu 12.04 (gereleased in 2012, end-of-life in april 2017) werken bijvoorbeeld best practices die engineers van True in de afgelopen 5 jaar hebben ontwikkeld, niet meer goed. 12.04 mist moderne functionaliteiten en kan ook minder goed omgaan met query-optimalisatie, beheersbaarheid en patching tegenover de nieuwste LTS-versie van Ubuntu, 22.04.”
Oudere servers zijn ook kwetsbaarder als het gaan om cybercriminaliteit. “Immers, cybercriminelen hebben meer tijd gehad om uit te vinden hoe ze toch door de beveiliging kunnen komen”, zegt Guido. “Tegelijk merken we dat ontwikkelaars van server infrastructuur veiligheid steeds eerder en sterker meenemen bij nieuwere versie. De beveiliging van een nieuwe versie is daardoor vaak beter.”
Zonde om die nieuwe functionaliteiten te lopen en om kwetsbaarder te zijn. Tijd om te upgraden!
De voordelen van nieuwe(re) functionaliteiten bij een upgrade
Een upgrade betekent nieuwere versies beschikbaar met nieuwe mogelijkheden. “Denk aan optimaliseren van je applicatie en meeliften op nieuwe standaarden. Dat geeft je applicatie ook een snellere laadtijd. Het komt ook vaak voor dat vanwege zo’n upgrade je applicatie minder resources nodig heeft van de hosting-omgeving, waardoor je daar kosten kunt besparen”, zegt Guido. “Een upgrade kan er ook voor zorgen dat er (meer) koppelingen mogelijk zijn of blijven, zoals met een CRM-, ERP- of payment provider. Met een upgrade blijf je bij met de eisen die deze aanbieders aan de koppeling stellen.”
Guido: “Er gaat weliswaar tijd en geld zitten in een upgrade. Wat je er uit haalt, is zoveel belangrijker. Een betere performance van je webshop, webapplicatie of website. Nieuwe mogelijkheden om aan veranderende wensen van gebruikers te voldoen. Sneller releases naar de markt te krijgen en op kansen inspringen. En vooral: toekomstbestendigheid. Dat maakt het de investering waard.”
Hoe houd je een upgrade behapbaar?
Een upgrade staat erom bekend dat het geld, tijd en capaciteit van developers kost. Ook met legacy programmatuur is het niet eenvoudig om over te gaan. Hoe houd je dat behapbaar?
Guido: “Om het behapbaar te houden, is een regelmatige upgrade nodig. Bijvoorbeeld: het is een kleinere stap van PHP versie 8.01 naar 8.1 dan dat het is om in één keer van PHP 7.3 naar PHP 8.1 te gaan. Hoe langer je daarmee wacht, hoe moeilijker, en hoe meer tijd en geld het uiteindelijk kost.”
Upgrade van de infrastructuur van CCV Shop
Om services zo hoog mogelijk te houden voor webwinkel-eigenaren, optimaliseert CCV Shop samen met True de infrastructuur. Samen met (lead) developers van CCV shop hebben engineers van True de servers geüpgraded naar een nieuwere versie van Ubuntu. Dat was niet zomaar op een manier, maar geautomatiseerd. Tom van Hamersveld, Linux Engineer bij True: “Door met scripts in Ansible de upgrade te automatiseren, is de upgrade eenduidiger geworden. We hebben samen in kaart gebracht wat er draait, hoe het moet werken, uitgeschreven en in GitLab gezet.”
Vervolgens is de automatisering getest en is er op zes nieuwe servers de nieuwe versie geïnstalleerd. “Op automatische wijze hebben we deze zes niet-identieke servers in 1,5 uur productieklaar gemaakt. Op vrijdag hebben we dat gedaan en het werkte. We hadden toen het hele weekend de tijd om na te gaan wat er mis kon gaan, want zo snel kan toch niet?” zegt Adriaan Meijer, Senior Software Architect bij CCV Shop. “Ja, dus wel. We hebben alles twee keer nagelopen en het klopte. Vervolgens zijn de servers toegevoegd aan de load balancers en was de upgrade gedaan.”
De scripts in Ansible staan klaar voor een volgende upgrade van Ubuntu. Op deze wijze is een upgrade voor CCV Shop elke keer behapbaar.
Hoe gaat een upgrade bij True in z’n werk?
“Samen met jouw team kijken we hoe we een upgrade kunnen uitrollen”, zegt Guido. Hij schetst daar twee manieren voor:
1. We upgraden je acceptatie-omgeving en rollen daar de gewenste versie van Ubuntu uit. Jij controleert dan of je applicatie nog werkt zoals het zou moeten. Werkt het niet, dan doen we een roll-back van de server. Werkt het wel, dan rollen we de upgrade op een gecontroleerd moment uit op de productie-omgeving.
2. De andere mogelijkheid is een nieuw platform ernaast zetten, waarbij jij je codebase migreert en kunt testen of alles naar behoren werkt. Werkt het, dan zetten we het nieuwe platform aan en het oude platform uit.
Guido: “De eerste mogelijkheid is verreweg de snelste. Tegelijk heeft het ook meer impact: in de tijd dat de acceptatie-omgeving op een nieuwe versie staat, kun je die omgeving niet meer voor andere trajecten gebruiken. Bij het upgraden van de productie-omgeving kan een geringe downtime ontstaan. Zet je een nieuw cluster ernaast, dan kost het ons en jou meer tijd om het op te zetten. Je hebt immers met een gehele migratie te maken. Het levert wel minder downtime op dan optie 1.”
Kan een upgrade ook slimmer?
“Mocht je je afvragen, kan dat niet slimmer? Slimmer dan elke 2 tot 5 jaar een vrij grote upgrade met impact op je developers en release-cycle? Dat antwoord is: mogelijk. Met Kubernetes is het upgraden van software makkelijker”, geeft Guido mee. “Je applicatie is op dit orkestratieplatform namelijk verpakt in containers, met elk hun eigen operating system en pakketten aan software. Je zet container instances ernaast, upgrade die zelf, test het, en als het loopt, is het makkelijker om deze containers in productie te zetten dan bij een upgrade van je complete server. Daarbij is wel mee te geven dat je dan ook het traject moet aangaan om je applicatie te containeriseren en op Kubernetes te gaan. Dat traject is complex. We denken daarin graag met je mee.”
Is jouw hosting-omgeving klaar voor succes?
De managed hosting van True is een omgeving die past bij je huidige applicatie en is tegelijk klaar om met je ambities mee te groeien. We combineren verschillende hosting- en cloudvormen. Klaar om je ambities maximaal te schalen!