Designing for scalability and availability
In this section, we will address scalability and availability in our architecture. Scalability is about being able to adjust an application to handle increased or decreased workloads so we do not run out of resources, and at the same time using only the resources we need. Availability is about ensuring an application is available when needed and making sure we do not have unexpected outages. Once completed, we will be able to design infrastructure using Google Cloud services to address these concerns.
Our starting point will be the High Availability(HA) infrastructure architecture illustrated in the following diagram:
To add availability and scalability to our data layer, we will replace the MySQL and Redis virtual machines with services provided by Google Cloud that provide these capabilities. We are moving away from virtual machines because creating and managing...