Guidelines for Building Elastic Scalable Applications on Google Cloud Platform
The article summarizes Google’s recent papers that outline an architectural guide for creating elastic, scalable web applications on Google Cloud Platform, describing key components such as regions, zones, load balancers, autoscalers, Cloud SQL, Cloud Storage, and deployment best‑practices.
Google recently released a set of papers providing an architectural guide for creating elastic, scalable solutions on Google Cloud Platform. This article extracts the main concepts and recommendations, which can be adapted for deploying web applications on other cloud platforms.
The diagram below shows the main components of an elastic scalable application, with descriptions for each component:
Region – The paper discusses single‑region multi‑zone solutions, although applications can be deployed across multiple regions.
Zone – A location within a region. Zones have low‑latency network connections and strong node‑to‑node communication handling.
Load Balancer – Serves as the entry point for clients, distributing requests across instances; a load balancer can span multiple regions if needed.
Instance – A special virtual machine running on Google App Engine (GAE).
Instance Group – A collection of instances within a zone managed by a group manager that creates and deletes instances.
Autoscaler (not shown in the diagram) – This component signals the group manager to add or remove instances based on load, using policies based on CPU utilization, Cloud Monitoring metrics, or request rate per second.
Cloud SQL – A region‑level managed SQL storage solution that can automatically replicate across zones.
Cloud Storage – Provides object storage for all instances, holding state data and uploaded files.
These components are essential for a scalable solution. To maintain resilience, you need mechanisms to start instances and restart/reconfigure them when they become unresponsive, using the following components:
Startup Script – Scripts residing on instances, Cloud Storage, or fetched via URL, executed on instance start or restart to set up the instance and ensure services run, installing software or applying updates.
Health Check – A GAE component that runs checks on instances to verify they are healthy; only healthy instances receive traffic.
Backend Service – A component linked to health checks and instance groups that forwards requests from the load balancer.
The paper also provides a guide for setting up and deploying Redmine, a Ruby on Rails‑based project‑management application; see the GitHub project for details.
It includes recommendations for estimating web‑application cost based on page views, requests, page size, and other metrics.
Art of Distributed System Architecture Design
Introductions to large-scale distributed system architectures; insights and knowledge sharing on large-scale internet system architecture; front-end web architecture overviews; practical tips and experiences with PHP, JavaScript, Erlang, C/C++ and other languages in large-scale internet system development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.