Automatische provisioning en DevOps voor NS

Provisioning en deployment van dagen naar uren. Een enorme verbetering in snelheid en flexibiliteit in het opbouwen en onderhouden van de verschillende omgevingen in de ontwikkelstraat (OTAP).

Klant

NS

NS

Markt

Reizigersvervoer

Thema

Business continuity

Publicatiedatum

11 december 2020

Automatische provisioning en DevOps voor NS

Het NS Besturing 3.0 programma behelst de vervanging vanuit NS van het legacy systeem VKL door toekomst vaste applicaties voor bijsturing van personeel, dienstregeling en materieel.

De uitdaging bij dit project

Besturing 3.0 behelst een uitgebreide en complexe omgeving waarvoor een dito complexe en flexibele ontwikkelstraat (OTAP) nodig is. Het aanmaken van de verschillende omgevingen in de ontwikkelstraat was erg tijdrovend. Ook was het instellen en synchroon houden van de configuratie van de omgevingen een secuur en foutgevoelig proces. Vooral bij de overdacht van de ontwikkelteams naar de operatie is het beschikbaar hebben van een correcte en representatieve omgeving belangrijk. De ontwikkel- en testomgevingen zijn in beheer bij de NS en de acceptatie- en productieomgevingen worden als managed service omgeving afgenomen bij Conclusion.

In dit verband is samen gewerkt aan enerzijds automatische provisioning en anderzijds regie-op-OTAP. Doel van dit traject was het verkrijgen van één versie van de waarheid over platform en configuratie. En daarmee de snelheid van uitrol van (wijzigingen) op omgevingen versnellen en het aantal fouten en/of verstoringen reduceren.

Toegepaste technieken: GitHub, Jenkins, Puppet, Oracle Weblogic, Java, Oracle RAC, Maven, Ant, Linux.

Hoe heeft Conclusion dit aangepakt?

Het traject is gestart vanuit een aantal basisprincipes van Continuous Delivery. Hierbij hanteerden we een op één model gebaseerde werkwijze om het platform samen te stellen. We gebruikten één centrale bron om de modeldefinitie van de omgeving vast te leggen en zorgden dat zowel de Development Engineers als de Operations Engineers een gemeenschappelijk doel hadden voor hun omgevingen.

Dit betekende dat de definitie van de omgeving volledig in een Puppet model moest staan, opgeslagen in een gedeelde GIT repository. De Development Engineers en de Engineers verantwoordelijk voor de operatie werkten in dit traject intensief met elkaar samen. Door ze ook daadwerkelijk bij elkaar op dezelfde locatie aan hetzelfde platform en configuratie te laten werken, is er een gezamenlijk doel ontstaan. Ook verliep de afstemming over details van de oplossing eenvoudig en snel.

Door de configuratie van de huidige omgeving op te nemen in één Puppet model is het mogelijk om hoog frequent de omgeving op te bouwen en te toetsen op juistheid. Op deze wijze werkte het team iteratief naar een werkend platform en configuratie. Alle wijzigingen staan direct in de GIT repository, waardoor alles traceerbaar is. Iedere wijziging die leidt tot een niet-werkende omgeving kan binnen enkele seconden worden teruggedraaid.

Hierdoor is de volledige configuratie op uniforme wijze opgeslagen en te herhalen voor iedere stap in de ontwikkelstraat. Ook heeft de werkwijze geleid tot een intensieve samenwerking tussen de ontwikkelaars van de applicatie en de beheerders van het platform. Hiermee werkt dit team nu op een DevOps wijze.

Harmen Hummel, Besturing 3.0 programma manager van NS: “Mijn primaire doelstelling is om ons legacy VKL systeem zsm uit te faseren. In 2016 is automatische provisioning als strategisch verbeterpunt onderkend en hebben Conclusion en werkmaatschappij AMIS hiertoe opdracht verkregen.In eerste instantie is dit projectmatig ingestoken maar dit leverde voor Besturing 3.0 onvoldoende momentum. In goed gezamenlijk overleg hebben we derhalve een gezamenlijke Task Force geformeerd  waarmee we wel de gewenste resultaten hebben bereikt. Inmiddels zetten we deze vorm van samenwerking door in DevOps verband.Bottom-line is dat we qua provisioning en deployment van dagen naar uren zijn gegaan. Al met al heb ik  veel vertrouwen in dit ingeslagen pad.

Een mooi resultaat

Het resultaat is een enorme verbetering in snelheid en flexibiliteit in het opbouwen en onderhouden van de verschillende omgevingen in de ontwikkelstraat (OTAP). Een volledige omgeving bestaat uit Oracle RAC, Oracle WebLogic, data feeds en meerdere JEE applicaties als hoog beschikbaar systeem over tientallen server nodes. Het opbouwen van een totale omgeving kan nu binnen enkele uren. Dit was in het verleden meerdere dagen. Deze snelheid geeft veel flexibiliteit in het gebruik van omgevingen. Daarnaast is er nu volledig grip op de configuratie instellingen op iedere omgeving. Ook is promotie van wijzigingen door de OTAP straat minder complex geworden, omdat de configuratie nu volledig is geautomatiseerd.

Dit bevordert de communicatie en begrip over de omgevingen tussen de ontwikkelaars en de operations, waardoor er naast verbetering in de techniek ook een sterk verbeterde samenwerking is ontstaan (DevOps werken). Dit maakt dat de Engineers nu proactief op wijzigingen kunnen inspelen, terwijl zij in het verleden reactief moesten zoeken naar de wijzigingen. Dit heeft bijgedragen aan de kwaliteit, flexibiliteit en het werkplezier.

Waarom heeft NS voor Conclusion gekozen?

Conclusion is in staat om een team aan te bieden dat de volledige set aan producten, netwerk en onderliggende operating systems kan ondersteunen en automatiseren. Hierdoor kan er snel doorgepakt worden op de verschillende niveaus en is er telkens een specialist aanwezig om de gekozen oplossing te toetsen en te valideren. Ons team heeft veel DevOps kennis om de transitie te begeleiden en de processen op een juiste wijze over te zetten. Ook zijn onze relaties met partners en leveranciers (van software en ondersteunende producten) van essentieel belang om snel een eventuele verstoring uit de weg te helpen. Hierdoor behoeden we onze klanten voor eventuele valkuilen en onnodige vertraging. Wij nemen verantwoordelijkheid voor een werkend en effectief eindresultaat.

Ook interessant:

Grootschalig IoT project bij schoonmaakbedrijf Vebego