QuestionQ200

Deploying applications

Your team is developing a backend application that implements the business logic for an interactive voice response (IVR) system supporting a payroll application. The IVR system has these technical characteristics:

  • Each customer phone call is linked to a unique IVR session.
  • The IVR system establishes a separate persistent gRPC connection to the backend for every session.
  • If a connection is interrupted, the IVR system creates a new connection, introducing slight latency for that call.

You need to decide which compute environment to use for deploying the backend application. From current call data, you determine the following:

  • Call duration varies from 1 to 30 minutes.
  • Calls are generally placed during business hours.
  • Significant call spikes occur around certain known dates (for example, pay days) or when large payroll changes take place.

You want to minimize cost, effort, and operational overhead. Where should you deploy the backend application?

  • A Compute Engine
  • B Google Kubernetes Engine cluster in Standard mode
  • C Cloud Functions
  • D Cloud Run
Explanation

Cloud Run supports gRPC, including streaming gRPC when HTTP/2 is configured. A service request timeout can be configured up to 60 minutes, which accommodates sessions lasting as long as 30 minutes. Its managed, request-based autoscaling can add capacity for predictable call spikes and remove idle capacity as demand falls, minimizing infrastructure management and operational overhead.

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!