A leader in the Canadian electronic medical and health records industry, TELUS Health decided to modernise the Continuous Integration / Continuous Delivery (CI/CD) workflows of its suite of applications by using Amazon Web Services (AWS) to automatically provision test environments and dynamically deploy components on the cloud. With the ability to deploy test environments on-demand, as well as having a standardised and automated process across development teams, this initiative allows TELUS Health to rapidly introduce new features and applications to their customers.
TELUS Health is transforming healthcare in Canada by offering a technology platform to improve information sharing among doctors and health practitioners with patients and their families. In addition to being the largest Electronic Medical Record (EMR) provider in the country, TELUS Health is also a leader in Home Health Monitoring (HHM), consumer health, benefits and pharmacy management.
After a successful pilot project to migrate its web-based pharmacy application to the cloud, TELUS Health engaged Sourced to modernise the continuous development workflows and toolset used by their internal development teams. Sourced worked with TELUS Health’s DevOps team to migrate and modernise their disparate CI/CD workflows into one standard, enabling the development teams to provision an unlimited number of test environments in the AWS cloud for which to develop and test against.
TELUS Health’s software platform supports many different types of applications that were built by various development teams, with each team using their own process for deploying code. Without any modern tools for the CI/CD process, the workflows used by the DevOps team resulted in a time-consuming and lengthy process. When new features or applications were introduced, it would take up to eight weeks to deploy a new test environment.
In addition, TELUS Health’s DevOps team wanted to standardise and automate their Continuous Delivery (CD) workflows to improve overall environment reliability and stability of the suite of applications. After a proof-of-concept initiative was completed to determine whether the development team’s existing workflows could be automated, it was decided that the platform would be re-architected to be more cloud-friendly and to work in conjunction with the new CI/CD process. Initially, the new CD workflow will support:
- Deployments to AWS for test environments
- Deployments to on-premise datacentres for production environments (migration of production workloads to the cloud will eventually be explored once contracts with on-premise providers come up for renewal)
The Sourced Solution
Sourced designed an enhanced deployment model in AWS that automated deployments via configuration management tools and processes. The newly architected cloud solution on AWS includes the following:
- Leveraging centralised workflow tools to support the CI/CD process, with updated development workflows to include enforced pull requests and peer review
- Using DevOps best practices to modernise the CI/CD workflow to support the dynamic deployment of test environments. This includes deployment of AWS infrastructure using infrastructure-as-code stored on a GIT repository to deploy not just applications utilising AWS Autoscaling and RDS, but also the underlying resources such as VPCs, route tables, security groups and NACLs. The solution also allowed for the deployment of AWS serverless resources such as S3, DynamoDB and Lambda
- Designing a fault-tolerant, highly available and secure infrastructure architecture distributed across AWS availability zones, with all deployed instances residing within well-defined security groups
By implementing a process for building and deploying both the application and the infrastructure stored in source code with any changes being fully traceable, the Sourced solution aims to provide an automated and repeatable workflow that enables low-risk deployments and improved code quality.
With the enhancements to the CI/CD workflows, TELUS Health’s DevOps team improved their release cycle agility with the ability to deploy test environments on-demand. The overall reliability and stability of the platform’s test environment is also improved. The workflows for the test environment will eventually be used to migrate production workloads to AWS. Other benefits include:
- Fully automated provisioning of both infrastructure and applications to the AWS cloud platform using industry-standard tools and workflows. The enhancements to the entire DevOps processes have resulted in increased agility and reliability
- Enhanced reliability, scalability and security of the platform with the ability to provision robust, production-ready test environments at the touch of a button
- Ability to dynamically deploy an unlimited number of test environments to support different release and feature branches into the AWS cloud environment, allowing development teams to release new features and applications faster
- Increased collaboration and transparency among the various development teams by standardising the workflows across teams and modernising their tools into an integrated toolset that supports GIT commit and merging standards, code reviews, and end-to-end traceability