A lead software engineer is designing the serverless architecture for a financial transaction verification service. The workload receives real-time gRPC calls, requires handling up to 80 concurrent requests per instance to optimize resource usage, and executes periodic reconciliation routines lasting up to 45 minutes. The application is packaged as a custom Docker container built on an unsupported language runtime. Which Google Cloud serverless compute option should be recommended to satisfy these requirements?
- Deploy the application to Cloud Run, because it natively supports custom container images, gRPC requests, multi-request concurrency per instance, and request timeouts up to 60 minutes.Answer
- BDeploy the application to Cloud Functions (2nd gen), because functions automatically package non-standard runtimes into containers and handle high-concurrency gRPC streams by default.
- CDeploy the application to Cloud Functions (1st gen) with CPU always allocated, using Cloud Scheduler to split the 45-minute reconciliation task across multiple HTTP triggers.
- DDeploy the application to Compute Engine as a serverless instance group with autoscaling disabled to maintain persistent gRPC channels.
Answer
Deploy the application to Cloud Run, because it natively supports custom container images, gRPC requests, multi-request concurrency per instance, and request timeouts up to 60 minutes.
The choice emphasizing deployment to Cloud Run is correct because Cloud Run allows developers to deploy arbitrary stateless container images, natively supports gRPC protocol connections, allows setting concurrency up to 1000 requests per instance, and supports request timeouts up to 60 minutes, matching all operational constraints.
Step-by-Step Solution
Key Concept
Planning Serverless Compute Options (Cloud Run vs Cloud Functions)