Fiserv, Inc. provides financial services technology to a wide range of financial services companies and retailers, while promoting the ideas of application modernization and digital and cloud transformation. It is a global organization with headquarters near Milwaukee, Wisconsin, and generates revenue of about $5.5 billion annually.
As a provider of expertise in managing enterprise infrastructure security, performance, and scalability, Fiserv must also do these things internally. Anouska Streets, Vice President of Engineering, tells an interesting tale of her team’s efforts from its base in Cardiff, Wales, to migrate its IT services from one platform and language to another while maintaining existing operations.
Migration to Java and Spring Boot
“We needed to migrate to Java and Spring Boot, with zero impact and zero downtime,” she says, “and we managed to do this in six weeks.”
“A great part of our success had to do with the automated features the Cloud Foundry environment provides.”
Comparing the exercise to “changing the tires on a car at 100mph,” she outlines Fiserv’s FinKit initiative, which runs on Cloud Foundry and is managed by BOSH.
The company faced making a transition of development services from a team based in continental Europe to the Cardiff-based team. The team found that the required skill sets, availability of talent and ability to handle Day 2 tasks within the Cloud Foundry environment meant that a migration to Java and Spring Boot was the best option.
“We needed to respond to this change and also deliver value safely, securely, and at scale,” Anouska explains. She describes Fiserv’s Cloud Foundry environment as “providing a frictionless developer environment, underpinned by the goodness of Cloud Foundry, and enhanced by our own toolchain and pipeline, with regulatory compliance built around it.”
Moving Several Layers
The migration involved a few key high-level layers and the code they contain:
- A protection layer helps with the EU’s new GDPR and other regulatory frameworks
- An identity layer keeps track of consumers in a federated identity model
- The multi-tenant layer enables multiple customers on the same platform
- An agreements layer that’s abstracted into compliant-backing services, such as persistence and datastore
Fiserv’s developers don’t hit cf-push directly, but do a git push into a pipeline that provides build, test, and deploy services that are then pushed to the infrastructure. Cloud Foundry is also installed on the Vagrant tool to get rid of “snowflake” servers and find other potential inconsistencies with the developer experience.
From a management standpoint, Anouska says:
“I don’t have to worry about routing, how apps are being staged and managed and running, Diego cells, how many instances we have, or even if the app is up or down, because Cloud Foundry is going to sort all that stuff out for me! This reduces the things I have to think about.”
Cloud Foundry Makes It Easier
Anouska and the team used the “strangler” pattern to migrate most of its services, developed by Martin Fowler, in which functionality is migrated piece by piece from the old to the new system.
“This was a straightforward process because of [the infrastructure management services provided by] Cloud Foundry,” she says. “We created a shell that routed straight to the old service, then changed the routing so that as a new resource came on line we could point it in the right direction. Then we just chomped our way through everything.”
In trickier, more difficult cases, they did a complete in situ version upgrade in which the API is exactly the same. There’s a blue-green deployment feature out of the box with Cloud Foundry, and because they run on BOSH, they didn’t have any configuration drift. They could trust everything would be the same and behave in the same way across the board.
Anouska is also a fan of Cloud Foundry’s metrics and logging data, which gives the team the ability to know what, when, and how something is being called. For example, once the team realized no one was using the old agreement service anymore, they stopped using it.
In the end, Fiserv gained advantages in recruitment, retention, training, better compliance and automation, and a reduction in lead times. Anouska says,
“We did all this in six weeks with zero downtime — so nobody noticed.”
Except, of course, the DevOps team.
For readers interested in more information, Anouska spoke at the 2018 Cloud Foundry Europe Summit: