Google Cloud Professional Cloud Developer — Question 117
You recently migrated a monolithic application to Google Cloud by breaking it down into microservices. One of the microservices is deployed using Cloud
Functions. As you modernize the application, you make a change to the API of the service that is backward-incompatible. You need to support both existing callers who use the original API and new callers who use the new API. What should you do?
Answer options
- A. Leave the original Cloud Function as-is and deploy a second Cloud Function with the new API. Use a load balancer to distribute calls between the versions.
- B. Leave the original Cloud Function as-is and deploy a second Cloud Function that includes only the changed API. Calls are automatically routed to the correct function.
- C. Leave the original Cloud Function as-is and deploy a second Cloud Function with the new API. Use Cloud Endpoints to provide an API gateway that exposes a versioned API.
- D. Re-deploy the Cloud Function after making code changes to support the new API. Requests for both versions of the API are fulfilled based on a version identifier included in the call.
Correct answer: C
Explanation
The correct answer is C because using Cloud Endpoints allows you to manage different versions of the API effectively and provides an API gateway that can route requests to the correct function based on the version. Option A is incorrect because a load balancer cannot handle API versioning effectively. Option B does not provide a way to manage the old and new APIs together. Option D also fails to maintain the original API, which is essential for existing users.