[System Design Ideas] Multi-Region Code Deployment : Deployment Strategies, Scaling
Given a huge number of hosts in multiple regions, how will you deploy code and handle error detection, high availability etc. ?
Before we dive down how can we deploy in multiple regions, lets try to understand how and what strategies need to be taken into consideration when it comes to an application deployment. Choosing the right strategy is very critical component and can help you roll out updates/new features faster. Please note that, there is no one choice fits all. It all depends upon application needs.
push (continuous integration) and pull (continuous delivery) pipeline :
- Push pipeline: developers, testers commit changes, which get analyzed, automatically tested, code reviewed before they get “merged” to a master branch.
- Pull pipeline: based on cadence, or business decision — this pipeline pulls a version (either from source code / master branch or binary repository) to deploy in dev, staging or production.
Good Resources List:
- Multi Region Terraform Deployments with Terraform Built CI/CD on AWS : https://www.conf42.com/Chaos_Engineering_2022_Lerna_Ekmekcioglu_Jack_Iu_multi_region_terraform_deployments_with_terraform_b