Back office ops · Production
Deploying Secure, Scalable AI Agents with ADK and Google Cloud in the Enterprise
The problem
Moving AI agents from proof-of-concept to enterprise production requires navigating complex networking, authentication, identity propagation, and security requirements that are absent in local demos.
Workflow diagram · grounded in source
1
Client sends request
trigger
“clients (either end-users via a browser or services/other agents via API calls) interact with the agent logic”
2
IAP authenticates request
validation
“IAP intercepts the request, authenticates the user (usually via Google Sign-In, though external identities are supported), and grants access if authorized”
3
Root agent delegates to search agent
routing
“Deleguate search query to the search_agent”
4
Search agent answers with Gemini and Google Search
ai_action
“Agent to answer questions using Google Search”
5
Result returned via A2A
output
“User Agent calling the Search Agent deployed on the A2A Protocol”
Reported outcome
Cloud Run with IAP emerged as the best current trade-off for secure, flexible enterprise agent deployment, supporting Web UI, API, and A2A endpoints from a single instance.
Reported stack
ADKgemini-2.5-flashVertex AICloud RunIAPVertex AI Agent EngineGoogle AgentSpaceIAMgoogle_searchOIDCJWThttpx
Source
https://mlops.community/blog/deploying-ai-agents-in-the-enterprise-without-losing-your-humanity-using-adk-and-google-cloud
Read source ↗Frequently asked questions
What did this team achieve with this AI workflow?
Cloud Run with IAP emerged as the best current trade-off for secure, flexible enterprise agent deployment, supporting Web UI, API, and A2A endpoints from a single instance.
What tools did this team use?
ADK, gemini-2.5-flash, Vertex AI, Cloud Run, IAP, Vertex AI Agent Engine, Google AgentSpace, IAM, google_search, OIDC.
How is this back office ops AI workflow structured?
Client sends request → IAP authenticates request → Root agent delegates to search agent → Search agent answers with Gemini and Google Search → Result returned via A2A.