Automatisch software up-to-date houden

Onze roadmap projecten, Wegstatus en BeSmart (ons mobiliteitsplatform, waar zowel Mobility Portal als ParkWebshop gebruik van maken) zijn gebouwd op frameworks zoals Laravel en TYPO3. Hierin is een flinke set aan veel gebruikte onderdelen gebundeld, de basis voor een software project. Denk aan:

  • verbinding maken met een database en gegevens ophalen/opslaan
  • berichten versturen of ontvangen van een andere applicatie

Omdat de “slechte kant” van het internet niet stil zit, is het belangrijk om onze software up-to-date te houden met de laatste verbeteringen qua beveiliging / veiligheid. Hiervoor gebruiken we software om dit voor ons grotendeels te automatiseren, dit zijn Renovate en Shift.

Renovate

Renovate is een tool die wij aan versiebeheer hebben gekoppeld en zorgt ervoor dat ons installatiebestand wekelijks wordt bijgewerkt met de op dat moment laatste versies van de afhankelijkheden die zowel Laravel als TYPO3 kennen. Ook eventueel zelf toegevoegde plugins worden meegenomen in de controle of er updates beschikbaar zijn.

Renovate maakt vervolgens een aanpassing aan de code en maakt hiervoor automatisch een aanvraag die door een van onze developers gekeurd moet worden. Vervolgens kan de aanpassing door onze pipeline gaan na goedkeuring van een van de developers.

Doordat onze software grotendeels is voorzien van automatische tests, geeft dit een goed inzicht in hoeverre we updates door kunnen zetten naar een testomgeving.

Vervolgens zal er tijdens onze wekelijkse testochtend een regressietest plaatsvinden omdat we zeker willen zijn dat alles vlekkeloos verloopt na de update.

Shift

Voor onze Laravel projecten maken we gebruik van Shift om te zorgen dat de update zoveel mogelijk geautomatiseerd wordt uitgevoerd. Naast de besparing qua tijd, helpt Shift ons ook met het volledig uitvoeren van een update. 

Laravel framework updates komen namelijk gepaard met een lijst van aanpassingen die “mogelijk” van toepassing zijn en handmatig nog doorgevoerd moeten worden indien van toepassing. Het kost echter relatief veel tijd en kennis van het project om te kunnen bepalen of we iets wel of niet moeten doorvoeren in onze projecten. Shift kan dit zelf detecteren en daarop handelen waar nodig.

Naast de upgrade guide van Laravel zelf, zijn er ook upgrade guides van andere stukken software beschikbaar die in sommige gevallen ook meegenomen moeten worden. Ook dit kan Shift automatisch detecteren en voor ons doorvoeren.

Het resultaat is uiteindelijk een pull request met alle aandachtspunten voor onze developers met verwijzingen naar de bestanden en regels waar de eventuele aanpassing is doorgevoerd.

Ook na een Shift vindt er standaard een regressietest plaats om te controleren of de update volledig naar wens is geweest. 

Hebben we je interesse?

Waarmee kan ik jou helpen? Ik ga graag met je in gesprek om te komen tot online resultaat.

 

Hebben we je interesse?

Zoeken