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
Evaluation Process
NBC created the following process to choose the best CD tool:
Organize teams
Determine criteria
Gather information
Test
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
RBAC
Blue-green deployment
Native cloud deployment
Native K8s deployment
Intuitive interface
RestAPI
CD-specialized
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.