Designing for scalability and availability
Our starting point will be the initial infrastructure architecture illustrated in the following screenshot:
In order to address scalability and availability, we will need to make use of both a managed instance group and an HTTP(S) load balancer.
A managed instance group is a collection of identical virtual machines that are managed as a single entity, and which enables the following:
- Autoscaling (horizontal)
- Auto healing:
- VM-based
- Application-based
- Automatic updating
- Regional (as opposed to zonal) deployment
- Load balancing (in conjunction with HTTP(S) load balancers)
A regional managed instance group allows us to spread our virtual machines across more than one zone in a region. This protects us from the failure of a single zone. If we deployed all our virtual machines in a single zone and that zone failed, then our entire application...