The National Bank of Canada is headquartered in Montreal, QC. They believe in the potential of each individual, and that even the smallest gestures can make a big difference.
They try to make a difference through innovation, but above all, by putting people first. By taking the time to listen and letting their actions speak for themselves. By remaining bold and passionate. By developing lasting relationships as a partner and ally.
DevOps at National Bank of Canada
The National Bank of Canada (NBC) is in the middle of a DevOps modernization journey. They wanted to find the right tool to help facilitate this new path. NBC has many departments consisting of engineering teams and applications. DevOps was necessary for them to continue growing.
In 2016, NBC’s practices were ad hoc, with teams doing on-demand implementations and using different frameworks across processes.
In 2018, NBC developed a DevOps proof of concept. An implementation plan was created and teams were chosen to prove efficacy. This is when NBC began evaluating tools.
By 2020, NBC had organization-wide adoption and DevOps was rolled out to all teams.
Why Continuous Delivery?
National Bank of Canada was using Jenkins for CI/CD, but decided to look for a better CD solution. The reasons Jenkins wasn’t working were many:
- No easy rollback
- No deployment verification
- No reporting
- No integration with HashiCorp Vault
- No blue-green deployments
- No canary deployments
NBC created the following process to choose the best CD tool:
- Organize teams
- Determine criteria
- Gather information
- Choose finalist
- Create final selection committee
- Present final proposal
After organizing the selection teams, NBC identified the following selection criteria:
- No complexity
- Advanced security
- Azure ad integration
- Blue-green deployment
- Native cloud deployment
- Native K8s deployment
- Intuitive interface
- Integration with CI tools
- Integrations with monitoring tools
- Deployment verification
- Terraform and Ansible integrations
- Canary deployments
- Easy integration with test tools
- HashiCorp Vault integration
- Reporting capabilities
- Automated rollbacks
Using these criteria as a guideline, NBC gathered information and began testing different products. Harness was brought in for a 2-day POC while other open-source products were evaluated.
After running several test programs, NBC narrowed their choices down to Harness and Spinnaker. The decisions committee chose Harness since Spinnaker missed the mark on a few of their criteria. For instance, ‘no complexity’ was quite high on their priority list, but Spinnaker couldn’t deliver on that. Additionally, it lacked an intuitive interface, deployment verification, integration with HashiCorp Vault, reporting capabilities, and automated rollbacks.
Success for CD
Harness helped NBC reach their DevOps goals. The Harness customer success team was extremely helpful with onboarding, and Harness provided weekly training sessions to make engineers comfortable with the product.
Harness was successful at NBC because it fully integrated with the existing tool chain and automated the onboarding of new teams. Phase 1 success for Harness is 30% of K8s and cloud deployment management. In the future (Phase 2), Harness will be expected to perform 100% of their deployments.