James Fong and the BNYM Team
James Fong is a Director of Engineering Operations at a “start-in” owned by Bank of New York Mellon. This new venture was backed by BNYM funding, but had the freedom afforded to brand new startups. The venture was focused on creating a new data analytics platform.
The new venture was tasked with not only creating a successful product for new and existing BNYM customers, but also creating a structural technological blueprint for the future of BNYM.
On day one, James knew he wanted to create a modern CI/CD process. He also knew that he wanted to slowly build a best-in-class process from scratch.
The Previous State of Software Delivery
Building a new software delivery process was a long journey for James and the team. They started from the basics by choosing which technologies they’d build their APIs and UI on. After choosing Java Springboot and Java Angular respectively, the team containerized everything.
The team used Docker Swarm, Jenkins, Artifactory, and Sonar Qube to orchestrate what they called the CI Factory. The team also implemented the latest DevOps practices like KISS and DRY methodology and tried to have as few lines of code as possible.
Once CI was taken care of, the team brainstormed how to take the CI output and deploy it to downstream environments. They decided to have bi-weekly deployment “ceremonies.” Each ceremony was a compilation of manual and automated tasks that used slack polls to determine when things were ready to be rolled out. At first, this process worked well and the team enjoyed getting to know each other.
But the team went from one microservice to twelve, and newly created teams needed to onboard their own services. They needed a CD solution to automate the deployment ceremony.
Initially, they tried to retrofit Jenkins to perform CD, but they soon reached the tool’s capability ceiling. The team had the necessary imagination and talent to find workarounds, but at that point, they would incur more resource cost than it was worth.
James questioned, “Why would you focus on building internal tools when you can make the company’s product better?”
James started seeking better solutions.
Before embarking on several POC journeys, the team defined what success looked like. The new solution needed to:
- Facilitate fast onboarding for new services and teams
- Have fewer roadblocks when creating new pipelines
- Let developers deploy faster
With these goals in mind, the team evaluated four solutions: Spinnaker, CloudBees, Azure DevOps, and Harness.
Evaluating CD Options
James and the DevOps team conducted a month-long POC of four CD solutions. After culminating all their findings in a SWAT analysis, they decided to go with Harness.
Other tools like Spinnaker were estimated to take a full year to stand up properly, and the team was looking for quick adoption.
Harness ticked all the boxes the team needed. The SaaS model meant Harness would be easy to manage, not to mention it came with out-of-the-box Kubernetes support, SSO, and approval gates.
“We’re in the business of making sure developers have the tools they need to deliver safely,” said James.
Challenges of Choosing a SaaS Tool in the Finance Industry
Many people within the company and industry didn’t see how a financial company like BNYM could adopt a SaaS solution. There were security risks and the traditional standard was to build everything custom.
James understood that everything would eventually move to the cloud and products would mostly become SaaS in the future. To him, there is no scalable way to build and manage everything internally. Eventually, he convinced his parent company of the same thing.
Present Day Software Delivery
Today James’ team deploys 120+ microservices over 7,000 times a month.
Developers and PMs are able to log into Harness and deploy their products as needed. Everyone is restricted to accessing their team’s pipelines thanks to Harness’s role-based access controls (RBAC).
Deployments have been completely templatized with one or two pipelines being used across all the teams. Dev teams just have to inject an artifact and select a version number, and Harness does the rest.
After James’ 4-year-long journey, he had some advice for teams just embarking:
- If you are going to start from scratch, take your time.
- Start with CI, then graduate to CD.
- You have to understand your needs. Don’t just choose the latest and greatest tool, go with what makes sense for your team.
- The tools you select need to be flexible and fluid.
Luckily, James found the right tool in Harness. Check out why he chose us for Continuous Delivery.