Devising a Cloud Load Balancing Solution
Chandan Lal Patary
Empowering Business Transformation | Author of 8 Insightful Guides | The Scrum Master Guidebook | The Product Owner Guidebook | The High Performance Team Coaching Guidebook | The Leadership Guidebook
My product manager friend Ram Singh was engaged in producing a modern load balance solution development for one of the cloud initiatives.
Ram Singh does not prefer to adopt the standard load balancer that shows up with the cloud services.
The solution should satisfy the following
The project launched with a web application development. The solution was designed for AWS?and?GCP
On?the GCP side solution was for the full stack, from cloud CDNs, to compute VMs and databases, and hooked up them collectively.
On AWS, the solution utilized EC2 instances for the application and data golang servers, and while using Compute Engine in the Google cloud.
The application layer, front-end, and load balancers all use docker containers.
For databases, the solution used AWS RDS?and?Google Cloud SQL.
The prototype phase was established
The solution was developed at each layer
Data layer:
To handle various database services across many clouds, the solution is constructed to have a distributed database access layer that ensures consistency across all DBs.
The solution establishes consistency and availability, so writes are distributed across all DBs.
There installs a cluster of data access servers (DAS) in all clouds that park in between the web server and the database service.
领英推荐
If the AWS side of the system receives a request to read from the DB, and the AWS RDS is up, it will directly read from RDS.
If RDS is down, however, the AWS DAS will call for a read from the GCP DAS and information will be fetched from CloudSQL and transmitted to the AWS.
The solution was to investigate the state of the databases at the point of every transaction.
If a database goes down, or if a database is down, moved back to live, on the afterward transaction, the solution data servers will notice this and take action.
Application Layer:
The application layer in each cloud consists of a cluster of request servers.
These servers pick up incoming requests, execute stateless business logic, and ultimately forward the request to the load balancer interfacing with the data layer.
The application layer is stateless and does not require consensus; it can be scaled up and down as much and as fast as necessary. As long as one application server is up, the system will be alive and running.
Front-End Layer:
The solution has CDNs set up in both clouds serving the front-end code to clients
By having the CDN endpoints map to numerous IPs, each for a different cloud, the solution can load balance client requests to either cloud.
This IPs served by the CDN map instantly to the application layer.
The overall solution should cover all these use-case scenarios
Test the integrated system by touching the front end and following requests crawled through to the data layer
Hook up all simultaneously in both clouds
As a product coach, I was trying to learn from Ram Singh. He has shared the whole story about the cloud implementation project.