NS

Automatische provisioning en DevOps voor NS

Het NS Besturing 3.0 programma behelst de vervanging van het legacy systeem VKL door toekomstbestendige applicaties ten behoeve van de bijsturing van dienstregeling, personeel en materieel.

 

De uitdaging bij dit project

 

Het besturing 3.0 programma behelst een uitgebreide en complexe omgeving, waarvoor een flexibele ontwikkelstraat (OTAP) nodig is. Het aanmaken van verschillende omgevingen in de ontwikkelstraat was een erg tijdrovend proces. De configuratie en het synchroon houden van de verschillende omgevingen was namelijk foutgevoelig en vereiste daarom een zeer zorgvuldige uitvoering. 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 afgenomen bij Conclusion. Naast de regie op OTAP, hebben NS en Conclusion samen aan automatische provisioning gewerkt. Doel van de samenwerking was het verkrijgen van een gezamenlijk beeld over platform en configuratie, zodat wijzigingen op omgevingen sneller geïmplementeerd kunnen worden en het aantal fouten of verstoringen afneemt. Er is gebruik gemaakt van verschillende technieken, zoals GitHub, Jenkins, Puppet, Oracle Weblogic, Java, Oracle RAC, Mavent, Ant en Linux.

 

Hoe heeft Conclusion dit aangepakt?

 

Bij de uitvoering van het traject is een aantal uitgangspunten van Continuous Delivery in acht genomen en gebruikt gemaakt van model gebaseerde werkwijzen. De Development Engineers en de Operations Engineers werkte 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 werkte 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 Mission Critical 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

 

Dankzij de uitvoering van het traject, waarbij NS en Conclusion intensief met elkaar hebben samengewerkt, is er een enorme verbetering gerealiseerd qua snelheid en flexibiliteit in het opbouwen en onderhouden van de verschillende omgevingen in de ontwikkelstraat (OTAP).

  

Om een voorbeeld te geven: een volledige omgeving bestaat uit Oracle RAC, Oracle WebLogic, data feeds en meerdere JEE applicaties als hoog beschikbaar systeem over tientallen server nodes. In het verleden duurde het meerdere dagen om deze omgeving op te bouwen, nu kan dat binnen een half uur.

 

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 over 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 kan een team aanbieden dat in staat is om de volledige set aan producten, netwerken en onderliggende operating systemen te ondersteunen en automatiseren. Hierdoor is er telkens een specialist aanwezig om een bepaalde keuze te toetsen en valideren. Daarnaast beschikt ons team over veel DevOps kennis, waardoor zij uitermate geschikt is om transities te begeleiden en processen over te zetten. Wij behoeden onze klanten voor eventuele valkuilen en onnodige vertragingen, mede dankzij de goede relaties met onze partners en leveranciers (van software en ondersteunende producten). Wij nemen verantwoordelijkheid voor een werkend en effectief eindresultaat.  Dat zorgt voor vertrouwen en waardering bij onze klanten.