NS International move to Aws

The term lift and shift was thrown out the window and we’ve build a fully automated instructure build pipeline to facilitate the apps. From old jboss to modern docker based apps.

NS International, formerly NS Hispeed, is the rail operator in the Netherlands that operates international intercity and high-speed train connections with Belgium, France, Germany and Switzerland. NS International is part of the Dutch Railways. It currently operates both direct and indirect services. The largest online service they provide is ticket sales for international train journeys. From my role as an architect / sr. cloud engineer I am responsible for the design and delivery of the Cloud infrastructure platform based on AWS, in collaboration with the rest of our SRE team, which serves as an underlay for the digital ticket office. This role has been very diverse and has changed a lot over the years, when we started the transition to AWS, there was no cloud native plan to make the move possible, but only a list of two applications that eventually had to be moved to the aws platform. We were able to place these 2 applications (tomcat web frontend, jboss api backend) on AWS by creating an automatic AMI building process that uses ansible for the base configutation and prepares them for retrieving the ear / war application when starting up from S3. The platform has changed considerably twice, first with docker / ecs on an auto scaling ec2 cluster (I already designed this in 2016 and AWS now offers almost the same features in 2020) and finally ecs with fargate as a compute layer. The 16-year-old jboss app has also gone to ecs fargate with a lot of help from our developers, this was one of the jigsaw pieces to get this environment PCI DSS Compliant and we now officially have the stamp of PCI for our environment. The platform now has around 50 application stacks in production consisting of: spring boot, jboss, tomcat, s3 proxy, node and python.

Within this assignment I applied the following techniques: Cloudformation, Python, Ansible, bash, gitlab, azure devops, jira, docker, clair, server spec


Nederlands

NS International, voorheen NS Hispeed, is de spoor exploitant in Nederland die internationale intercity- en hogesnelheidstrein verbindingen met België, Frankrijk, Duitsland en Zwitserland exploiteert. NS International maakt deel uit van de Nederlandse Spoorwegen. Het exploiteert momenteel zowel snelle als niet-snelle diensten. De grootste online dienst die zij leveren is de kaartverkoop voor internationale treinreizen. Vanuit mijn rol als architect/sr. cloud engineer ben ik in samenwerking met het de rest van ons SRE team verantwoordelijk voor het design en de oplevering van het Cloud infra platform gebaseerd op AWS welke als onderlaag dienst voor het digitale loket voor de kaartverkoop. Deze rol is erg divers en veel veranderd door de jaren heen, toen we begonnen aan de transitie naar AWS was er nog geen cloud native plan om de verhuizing mogelijk te maken maar alleen een lijstje van twee applicaties die uiteindelijk verhuisd moesten worden naar het aws platform. We hebben deze 2 applicaties (tomcat web frontend, jboss api backend) op AWS kunnen neerzetten door een automatisch ami bouwprocess te maken die met ansible servers opbouwt en klaar zet voor het ophalen van de applicatie ear/war bij het opstarten uit S3. Het platform is inmiddels 2 keer behoorlijk veranderd, eerst met docker/ecs op een auto scaling ec2 cluster (ik heb dit 2016 al een keer ontworpen en AWS biedt bijna dezelfde functies nu net aan in 2020) en uiteindelijk ecs met fargate als compute laag. De jboss app van inmiddels 16 jaar oud is door ons team en hulp van developers ook naar ecs fargate gegaan, dit was een van de puzzel stukjes om deze omgeving PCI DSS Compliant te krijgen en inmiddels hebben we officieel de stempel van PCI voor onze omgeving. Het platform heeft inmiddels ongeveer 50 applicatie stacks in productie bestaande uit: springboot, jboss, tomcat, s3-proxy, node, python

Binnen deze opdracht heb ik de volgende technieken toegepast: Cloudformation, Python, Ansible, bash, gitlab, azure devops, jira, docker, clair, serverspec

AWS services: ECS, VPC, EC2, Fargate, RDS (aurora serverless/classic), Elasticache, ALBv2, Route53, Organization, S3, Cloudfront, IAM, SSM, Cloudwatch, ApplicationAutoScaling, SQS, EFS, CertificateManager, Lambda, ApiGateway, DynamoDB, ElasticBeanstalk, WAF

Cloud & Open-Source magician 🧙‍♂️

I try to find the KISS in complex systems and share it with the world.

comments powered by Disqus