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 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.