NS

Het openbaar vervoer toekomstbestendig met continuous delivery, automatische provisioning en DevOps

Het NS Besturing 3.0 programma behelst de vervanging van het legacy systeem VKL door toekomstbestendige applicaties ten behoeve van de 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 dat een zeer zorgvuldige uitvoering vereiste. Dit alles om ervoor te zorgen dat een correcte en representatieve omgeving beschikbaar is op het moment dat de omgeving wordt overgedragen van de ontwikkelteams naar de operatie.   

 

De ontwikkel- en testomgevingen (OT) zijn in beheer bij de NS, de acceptatie- en productieomgevingen (AP) 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. Hierin is gebruik gemaakt van verschillende technieken, zoals GitHub, Jenkins, Puppet, Oracle Weblogic, Java, Oracle RAC, Maven, Ant, en Linux.

 

Hoe Conclusion dit aangepakt heeft met Continuous Delivery

Bij de uitvoering van het traject is een aantal uitgangspunten van Continuous Delivery in acht genomen en gebruik gemaakt van model gebaseerde werkwijzen. De Development Engineers en de Operations Engineers werkten bij dit traject intensief met elkaar samen. Om ervoor te zorgen dat alle engineers voor de omgeving een gezamenlijk doel voor ogen hadden, was een goede definitie van de omgeving noodzakelijk. De engineers werkten bij elkaar, op dezelfde locatie aan hetzelfde platform en configuratie. Dit zorgde voor een prettige samenwerking en liet de afstemming over details van het traject soepel en snel verlopen.

 

De definitie van de omgeving werd volledig omgezet in een Puppet model en opgeslagen in een gedeelde GIT repository. Dankzij het Puppet model is het mogelijk om de omgeving hoog frequent op te bouwen, te wijzigen en te toetsen op juistheid. Iedere wijziging die leidt tot een niet-werkende omgeving kan binnen enkele seconden worden teruggedraaid. Dankzij het gebruik van een GIT repository zijn alle wijzigingen direct voor alle engineers beschikbaar en wijzigingen traceerbaar. Op deze wijze werkte het team van NS en Conclusion iteratief naar een goed werkend platform, volgens een moderne 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 heeft Conclusion 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 deze omgeving kan nu binnen een half uur, waar dit in het verleden meerdere dagen duurde.

 

Naast de genoemde verbetering qua snelheid en flexibiliteit, is er nu ook volledig grip op de configuratie van de verschillende omgevingen. En, dankzij de volledige automatisering van configuraties, is de promotie van wijzigingen door de ontwikkelstraat (OTAP) een stuk minder complex geworden.

 

De verbeteringen beperken zich echter niet alleen tot de techniek, ook op het gebied van samenwerking zijn namelijk grote stappen gezet. De onderlinge communicatie, het begrip van de verschillende omgevingen en daarmee de samenwerking tussen engineers en operations is sterk verbeterd.  Mede dankzij de DevOps werkwijze zijn de engineers nu in staat om proactief op wijzigingen in te spelen, in plaats van reactief zoals voorheen. Dit maakt niet alleen de kwaliteit beter, maar zorgt ook voor een toename in 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. Dat zorgt voor vertrouwen en waardering bij onze klanten.