Achieving operational agility with infrastructure as code.
Rosemary Health is a digital platform reinventing the future of healthcare by providing a convenient and efficient way for people to access doctors and medicines in their own time without physically visiting a doctor or pharmacy.
The platform was successfully launched last year in phases, to progressively increase capabilities as their business grows.
They were faced with rapid growth and realised that their release process needed some improvements in order to: reduce time to market, reduce the number of defects in production and get prepared to increase the engineering team size.
We reviewed their release process to identify the key areas that required attention. We found that their platform was already running in AWS and their main applications already had an automated CI/CD process in place.
Developers needed to reuse a single staging environment, which was causing product delivery delays as the team grew up quickly and required multiple features to be developed simultaneously. All the network, database and other services configuration were maintained manually. And they didn’t have automation testing integrated as part of the CI/CD pipeline.
We presented all the findings to the Rosemary Health engineering and executive team along with a set of recommendations and defined the following objectives:
- Ability to create or update environments (AWS accounts) from source code with all the infrastructure, configuration and applications needed with minimal manual intervention.
- Ability to perform automated tests in the CI/CD pipeline.
- Ability to release to production more frequently based on single features.
Orinoco’s team created a roadmap aligned with Rosemary Health technological vision, budget and delivery timeframe expectations, and executed in small manageable deliverables until full successful completion. The proposed implementation was inline with their vision towards maintaining infrastructure as code utilizing CDK (Cloud Development Kit) and python, to enhance flexibility and maintainability.
Configuration items automated:
- Network: VPC, subnets, bastion servers, routing tables, security groups and NATs.
- Content Distribution: CloudFront distributions.
- Traffic routing: Route53 hosted zones and records.
- CI/CD: CodeBuild, CodePipeline and Github actions.
- Applications: Serverless lambda functions and websites (React and Flask).
- Authentication and authorization: Cognito user pools.
- Database: Aurora postgres (serverless for development environments).
- Substantial reduction of human errors in release activities.
- Improved code quality by enabling the creation of automated tests and reporting in the CI/CD pipelines.
- Improved visibility and documentation of the services, infrastructure and configuration used in the platform.
- Speed up the creation of new environments from days to a couple of hours.
By investing in the right technology, automation tools and implementing infrastructure as code, Rosemary Health significantly improved their daily operations and shortened their time to market. They are now equipped with a much stronger set of tools that allows them to grow their team and business throughput with less effort and resources.