TerramEarth - Cloud Run for Highly Available Microservices

Cloud Run for Highly Available Microservices

Question

TerramEarth manufactures heavy equipment for the mining and agricultural industries.

They currently have over 500 dealers and service centers in 100 countries.

Their mission is to build products that make their customers more productive.

Solution concept - There are 2 million TerramEarth vehicles in operation currently, and we see 20% yearly growth.

Vehicles collect telemetry data from many sensors during operation.

A small subset of critical data is transmitted from the vehicles in real time to facilitate fleet management.

The rest of the sensor data is collected, compressed, and uploaded daily when the vehicles return to home base.

Each vehicle usually generates 200 to 500 megabytes of data per day.

Existing technical environment - TerramEarth's vehicle data aggregation and analysis infrastructure resides in Google Cloud and serves clients from all around the world.

A growing amount of sensor data is captured from their two main manufacturing plants and sent to private data centers that contain their legacy inventory and logistics management systems.

The private data centers have multiple network interconnects configured to Google Cloud.

The web frontend for dealers and customers is running in Google Cloud and allows access to stock management and analytics.

Business requirements - Predict and detect vehicle malfunction and rapidly ship parts to dealerships for just-in-time repair where possible.

Decrease cloud operational costs and adapt to seasonality.

Increase speed and reliability of development workflow.

Allow remote developers to be productive without compromising code or data security.

Create a flexible and scalable platform for developers to create custom API services for dealers and partners.

Technical requirements - Create a new abstraction layer for HTTP API access to their legacy systems to enable a gradual move into the cloud without disrupting operations.

Modernize all CI/CD pipelines to allow developers to deploy container-based workloads in highly scalable environments.

Allow developers to run experiments without compromising security and governance requirements.

Create a self-service portal for internal and partner developers to create new projects, request resources for data analytics jobs, and centrally manage access to the API endpoints.

Use cloud-native solutions for keys and secrets management and optimize for identity-based access.

Improve and standardize tools necessary for application and network monitoring and troubleshooting.

Executive statement - Our competitive advantage has always been our focus on the customer, with our ability to provide excellent customer service and minimize vehicle downtimes.

You want to run those microservices on Cloud Run.

You also want to make sure the services are highly available with low latency to your customers.

What should you do?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

C.

To ensure high availability and low latency for the microservices running on Cloud Run, the best option is to deploy Cloud Run services to multiple regions. This ensures that the services are available in different geographic locations, reducing the risk of downtime due to regional outages.

Option B is the correct answer as it provides a solution for deploying the Cloud Run services in multiple regions and creating a global HTTP(S) load balancing instance. This is done by creating serverless network endpoint groups (NEGs) that point to the Cloud Run services and adding them to a backend service that is used by a global HTTP(S) Load Balancing instance.

The load balancer directs traffic to the closest available region, ensuring low latency for customers accessing the services. Additionally, this option allows for scalability as traffic increases or decreases based on seasonality, which aligns with the business requirement of decreasing cloud operational costs and adapting to seasonality.

Option A, deploying Cloud Run services to multiple availability zones, is not sufficient for ensuring high availability as availability zones are within the same region and are subject to regional outages.

Option C, creating a latency-based DNS name in Cloud DNS that points to the services, does not provide the same level of high availability and low latency as option B. Additionally, it does not address the requirement of decreasing cloud operational costs and adapting to seasonality.

Option D, creating a TCP/IP global load balancer and adding Cloud Run endpoints to its backend service, is not the best solution as Cloud Run is a serverless platform that abstracts away the infrastructure, making it difficult to configure TCP/IP load balancing.

Therefore, option B is the most suitable solution for running microservices on Cloud Run with high availability and low latency while meeting the business and technical requirements of TerramEarth.