TerramEarth: Cloud Solutions for Vehicle Telemetry Data Analysis

Cloud Solutions for Vehicle Telemetry Data Analysis

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.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

A.

The question is focused on finding the best approach to monitor the availability of an application URL and switch it to an "unavailable" page in case of a downtime. The goal is to ensure that the customers are informed about the unavailability of the service and that the Ops team is notified to resolve the issue.

Option A suggests creating a scheduled job in Cloud Run to invoke a container every minute, check the application URL, and switch the URL to the "Site is unavailable" page if the application is down. Then notify the Ops team about the issue. This option is not ideal because it does not provide a built-in mechanism for monitoring the application URL. Cloud Run is a serverless computing platform that allows running containerized applications. However, it is not suitable for monitoring the application URL and notifying the Ops team about the downtime.

Option B proposes creating a cron job on a Compute Engine VM that runs every minute, checks the application URL, switches the URL to the "Site is unavailable" page if the application is down, and notifies the Ops team about the issue. This option is better than option A, but it still requires manual setup and maintenance of the VM instance. Moreover, this approach does not scale well, and it can become costly to run a VM instance constantly to check the application URL every minute.

Option C recommends creating a Cloud Monitoring uptime check to validate the application URL. If it fails, put a message in a Pub/Sub queue that triggers a Cloud Function to switch the URL to the "Site is unavailable" page, and notify the Ops team. This option is the best because it leverages Cloud Monitoring, a built-in service that allows monitoring the availability of applications and services. Cloud Monitoring can validate the application URL at defined intervals and trigger alerts in case of downtime. The solution also uses Pub/Sub, a messaging service that enables asynchronous communication between services, and Cloud Functions, a serverless computing platform that can respond to Pub/Sub events. The approach is scalable and cost-efficient, and it meets the technical requirements specified in the question.

Option D suggests using Cloud Error Reporting to check the application URL, switch the URL to the "Site is unavailable" page if the application is down, and notify the Ops team about the issue. However, Cloud Error Reporting is not designed for monitoring the availability of applications and services. It is a service that captures and reports errors that occur in applications running in Google Cloud. Therefore, this option is not suitable for the problem described in the question.

In conclusion, option C is the best approach to monitor the availability of an application URL and switch it to an "unavailable" page in case of a downtime. It leverages Cloud Monitoring, Pub/Sub, and Cloud Functions, and it meets the technical requirements specified in the question.