1. Введение
В этом практическом занятии вы научитесь развертывать полнофункциональное приложение с помощью Google Cloud Application Design Center (ADC) . Вы развернете приложение "The Cymbal London Concierge", которое включает в себя фронтенд на Vue 3, бэкенд на FastAPI и сервер MCP, хранящий данные для приложения.
ADC позволяет визуально определять архитектуру приложения и развертывать его как единое целое, автоматически управляя зависимостями и соединениями.
Что вы будете делать
- Настройте Центр проектирования приложений.
- Визуально соберите компоненты приложения.
- Разверните архитектуру приложения.
- Проверьте работу запущенного приложения.
- Убедитесь, что приложение зарегистрировано в App Hub.
- Проверьте метрики, трассировки и журналы приложения в разделе «Мониторинг приложений».
Что вам понадобится
- Веб-браузер, например Chrome .
- Проект Google Cloud с включенной функцией выставления счетов.
Этот практический семинар предназначен для разработчиков всех уровней, включая начинающих.
Примерное время: 45 минут. Примерное время: менее 2 долларов США.
2. Настройка
Настройка проекта
Создайте проект в Google Cloud.
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
Запустить Cloud Shell
Cloud Shell — это среда командной строки, работающая в Google Cloud и поставляемая с предустановленными необходимыми инструментами.
- В верхней части консоли Google Cloud нажмите кнопку «Активировать Cloud Shell» .
- После подключения к Cloud Shell подтвердите свою аутентификацию:
gcloud auth list - Убедитесь, что ваш проект настроен:
gcloud config get project - Если параметры вашего проекта заданы не так, как ожидалось, настройте их следующим образом:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
3. Настройте Центр проектирования приложений.
Прежде чем приступить к сборке приложения, необходимо настроить рабочее пространство в ADC.
- В консоли Google Cloud найдите «Центр проектирования приложений» и перейдите в него.
- Если вы впервые используете АЦП в этом проекте, вы увидите экран настройки.
- Нажмите «Перейти к настройкам» .

- Вам будет предложено включить необходимые API, если они еще не включены. Нажмите «Включить» , чтобы продолжить.

4. Изучение особенностей АЦП
В этом задании вы изучите основные компоненты ADC: пространства, каталоги и шаблоны.
Пространства ADC
Пространство — это место для создания шаблонов и развертывания приложений. Каждое пространство принадлежит проекту Google Cloud. ADC создает пространство по умолчанию во время первоначальной настройки, но позже вы можете свободно создавать другие пространства в разных регионах.
Для просмотра содержимого ваших помещений через терминал выполните следующие действия:
- Нажмите кнопку «Открыть редактор» на панели инструментов Cloud Shell или воспользуйтесь терминалом.
- Выполните следующую команду:
gcloud alpha design-center spaces list \
--project="your PROJECT ID" \
--location=us-central1
Вы должны увидеть вывод, похожий на этот, который указывает на то, что пространство по умолчанию для данного региона присутствует.
createTime: '20XXXX-XX-XXT09:19:29.456016967Z'
displayName: default-space
enableGcpSharedTemplates: true
name: projects/your-project-id/locations/us-central1/spaces/default-space
5. Соберите шаблон
На этом этапе вы возьмете на себя роль инженера команды платформы . Ваша задача — создать многоразовый, безопасный и соответствующий требованиям шаблон для агентских приложений в вашей организации. Вы будете добавлять компоненты и настраивать ограничения, чтобы гарантировать, что любое приложение, развернутое на основе этого шаблона, соответствует облачным политикам вашей компании.
1. Создайте новый дизайн.
- В консоли АЦП нажмите «Шаблоны» > «Создать шаблон» .
- Назовите свой шаблон
simple-3-tier-agentic-app, поскольку он будет использоваться для развертывания приложенияCymbal London Conciergeи других подобных приложений.
2. Добавьте сервер Data MCP.
Этот компонент обрабатывает взаимодействие с базой данных и векторный поиск.
- Нажмите «Добавить компонент» > «Запуск облака (сервис)» . Если вы щелкнете по этому компоненту, в правом верхнем углу вы увидите идентификатор компонента . Он будет иметь вид
cloud-run-1. Мы можем изменить его наdata-mcp-server, отредактировав его в режиме просмотра кода (об этом будет рассказано позже), но давайте оставим его как есть.
- Введите имя службы :
data-mcp-server. - В разделе «Показать расширенные настройки» установите для параметра «Участники » значение
allUsers». (Примечание: в рабочей среде вы, вероятно, ограничите это значение, но мы используем его здесь для простоты кода.) - В разделе «Показать расширенные настройки» в поле «Доступ к VPC» установите для параметра « Исходящий трафик» значение:
PRIVATE_RANGES_ONLY. - При желании в разделе «Показать дополнительные настройки» снимите флажок «Включить Prometheus Sidecar» .

- Нажмите « Сохранить ».
3. Добавьте бэкэнд агента.
Это приложение FastAPI, которое управляет поведением агентов.
- Нажмите «Добавить компонент» > «Запуск в облаке (служба)» .
- Назовите его
agent-backend. - В разделе «Показать расширенные поля» установите флажок « Создать учетную запись службы» и добавьте следующие роли в раздел «Роли проекта учетной записи службы» по одной:
-
roles/monitoring.metricWriter -
roles/logging.logWriter -
roles/cloudtrace.agent -
roles/telemetry.writer -
roles/serviceusage.serviceUsageConsumer. Эти роли позволят агенту использовать Cloud Monitoring, Cloud Logging и Cloud Trace. Конфигурация соответствия: команда платформы обеспечивает соблюдение принципа минимальных привилегий, явно перечисляя необходимые роли.

-
- В разделе «Показать расширенные настройки» установите для параметра «Участники» значение:
allUsers. - В разделе «Показать расширенные настройки» в поле «Доступ к VPC» установите для параметра « Исходящий трафик» значение:
PRIVATE_RANGES_ONLY. - При желании в разделе «Показать дополнительные настройки» снимите флажок «Включить Prometheus Sidecar» .
- Подключите
agent-backendкdata-mcp-server, перетащив соединение отagent-backendкdata-mcp-server. - Нажмите « Сохранить ».
4. Добавьте фронтенд.
Пользовательский интерфейс фронтенда.
- Нажмите «Добавить компонент» > «Запуск в облаке (служба)» .
- Введите название сервиса :
frontend. - В разделе «Показать дополнительные параметры» снимите флажок «Создать учетную запись службы» .
- В разделе «Показать расширенные настройки» установите для параметра Ingress значение:
INGRESS_TRAFFIC_INTERNAL_LOADBALANCER. Конфигурация соответствия: прямой публичный доступ к контейнеру внешнего интерфейса заблокирован, трафик будет направляться через балансировщик нагрузки. - В разделе «Показать расширенные настройки» установите для параметра «Участники» значение:
allUsers.
- При желании в разделе «Показать дополнительные настройки» снимите флажок «Включить Prometheus Sidecar» .
- Нажмите « Сохранить ».
- Подключите
frontendкagent-backend, перетащив соединение сfrontendнаagent-backend.
5. Добавьте компонент AI для вершин.
- Нажмите «Добавить компонент» > «Vertex AI» .
- Назовите его
vertex-ai. - Подключите его к
agent-backendиdata-mcp-server, перетащив два соединения изvertex-aiкagent-backendиdata-mcp-serverсоответственно. Ролиaiplatform.userуже будут назначены сервисным учетным записямagent-backendиdata-mcp-serverпоскольку они подключены к компоненту vertex AI.
6. Добавьте глобальный балансировщик нагрузки.
Балансировщик нагрузки предоставляет доступ к вашему интерфейсу из общедоступного интернета. В ADC это разделено на компоненты бэкэнда и фронтенда.
А. Добавьте бэкэнд балансировщика нагрузки.
- Нажмите **Добавить компонент > Глобальная балансировка нагрузки в облаке (бэкэнд) .
- Назовите его
galb-backend. - Нажмите «Добавить соединение» и подключите его к
frontend.
B. Добавьте интерфейс балансировщика нагрузки.
- Нажмите **Добавить компонент > Глобальная балансировка нагрузки в облаке (интерфейс пользователя) .
- Назовите его
galb-frontend. - Нажмите «Добавить соединение» и подключите его к
galb-backend. - Соедините
galb-frontendсgalb-backend, перетащив соединение отgalb-frontendкgalb-backend.

Поделитесь шаблоном в каталоге
Каталог позволяет обмениваться шаблонами приложений между различными пространствами, обеспечивая управление архитектурой. Каталог выступает в качестве центрального хранилища шаблонов, созданных и утвержденных для совместного использования командой платформы. Совместное использование каталогов между пространствами позволяет избежать дублирования усилий в общих проектах и ускоряет время запуска.
Теперь добавьте свой шаблон в каталог:
- Перейдите во вкладку «Каталоги» .
- Нажмите «Добавить шаблоны» и выберите шаблон
simple-3-tier-agentic-app. - Нажмите «Добавить в каталог» .

Шаблоны можно найти в трех местах: шаблоны Google (предопределенные шаблоны), общие шаблоны (используемые во всей организации) и шаблоны (пользовательские схемы для вашего рабочего пространства).
6. Разверните приложение
Теперь настало время сыграть роль разработчика приложений, который хочет использовать этот шаблон для развертывания приложения cymbal-london-concierge .
- В консоли ADC снова откройте шаблон на вкладке «Шаблоны» и нажмите кнопку «Настроить приложение» .

- Нажмите «Создать новое приложение» .
- Настройте приложение:
- Название приложения :
cymbal-london-concierge - Проект развертывания : Идентификатор вашего проекта
- Регион :
us-central1 - Входные атрибуты > Среда :
Development - Входные атрибуты > Критичность :
Low
- Название приложения :
- Нажмите «Создать приложение» . Для развертывания в производственной среде выберите «Производство» в качестве среды и «Высокая» в качестве критичности. Эти теги помогут вашим SRE-специалистам и команде эксплуатации сортировать и расставлять приоритеты в работе над любыми возникающими проблемами.
- Это должно открыть страницу с подробными сведениями о развертывании и шаблоном приложения. Поскольку это всего лишь шаблон, нам все равно необходимо добавить конфигурацию, специфичную для нашего приложения.
- Давайте настроим интерфейс. Нажмите на компонент интерфейса .
- Нажмите «Контейнеры» > «Редактировать контейнер» .
- Нам необходимо заменить стандартный образ контейнера на тот, который мы хотим использовать для нашего приложения.
- Установите образ контейнера на:
us-central1-docker.pkg.dev/o11y-movie-guru/london-travel-agency/frontend:codelab-c2c6-v1
- Установите порт
http1на80. - Установите следующие переменные среды :
-
API_BASE_URL:module.cloud-run-2.service_uri(убедитесь, чтоcloud-run-2— это имя компонента бэкэнда агента; если нет, замените его фактическим именем компонента)
-
- Нажмите « Сохранить ».
- Давайте настроим бэкэнд агента. Щёлкните по компоненту agent-backend .
- Нажмите «Контейнеры» > «Редактировать контейнер» .
- Нам необходимо заменить стандартный образ контейнера на тот, который мы хотим использовать для нашего приложения.
- Установите образ контейнера на:
us-central1-docker.pkg.dev/o11y-movie-guru/london-travel-agency/agent:codelab-c2c6-v1 - Установите следующие переменные среды :
-
GOOGLE_CLOUD_PROJECT: -
GOOGLE_CLOUD_LOCATION:us-central1 -
DATA_BACKEND_URL:module.cloud-run-1.service_uri(убедитесь, чтоcloud-run-1— это имя компонента сервера Data MCP; если нет, замените его фактическим именем компонента) - Установите порт
http1на8000. - Нажмите « Сохранить ».
- Давайте настроим сервер DataMCP. Щёлкните по компоненту data-mcp-server .
- Нажмите «Контейнеры» > «Редактировать контейнер» .
- Нам необходимо заменить стандартный образ контейнера на тот, который мы хотим использовать для нашего приложения.
- Установите образ контейнера следующим образом:
us-central1-docker.pkg.dev/o11y-movie-guru/london-travel-agency/data_mcp:codelab-c2c6-v1 - Установите следующие переменные среды :
-
GOOGLE_CLOUD_PROJECT: -
GOOGLE_CLOUD_LOCATION:us-central1 -
DB_TYPE:sqlite -
EMBEDDING_MODEL:text-embedding-005 - Установите порт
http1на8002. - Нажмите « Сохранить ».
- Нажмите на кнопку «Код» в верхней части страницы, чтобы просмотреть код Terraform для приложения. Вы также можете загрузить код Terraform для приложения, нажав на кнопку «Получить код» , чтобы сохранить его в своей кодовой базе.

- Для развертывания приложения нажмите кнопку « Развернуть» в правом верхнем углу страницы.
- На странице развертывания вам будет предложено создать учетную запись службы для конвейера развертывания или выбрать существующую. Нажмите «Создать учетную запись службы» (имя будет заполнено автоматически), а затем «Продолжить» . Создание новой учетной записи службы займет несколько секунд.

- После создания учетной записи службы страница обновится, и вы увидите кнопку «Выберите учетную запись службы» с галочкой рядом с ней.

- Затем нажмите кнопку «Развернуть» внизу страницы.
- Процесс займет несколько минут. После завершения развертывания рядом с каждым компонентом появится зеленая галочка. Вы также можете проверить статус развертывания, нажав кнопку «Ссылка на журналы» , которая откроет журналы Cloud Build. Для появления кнопки может потребоваться несколько минут.

- Вы можете просмотреть журналы Cloud Build, чтобы узнать статус развертывания или наличие ошибок, которые могут возникнуть во время развертывания приложения. Вы также можете перейти непосредственно к журналам Cloud Build, выполнив поиск Cloud Build в консоли Google Cloud и нажав на «История» . Развертывание приложения займет около 5-8 минут.

- После завершения развертывания рядом с полем «Статус развертывания» появится зеленая галочка.

7. Проверьте заявку.
Давайте проверим, работает ли агент. В разделе «Выходные данные» на странице сведений о развертывании вы увидите URL-адрес компонента внешнего интерфейса. Скопируйте этот URL-адрес и вставьте его в браузер. Убедитесь, что вы используете HTTP , а не HTTPS . Также примите во внимание любые предупреждения, которые могут появиться в браузере, поскольку внешний интерфейс использует HTTP.
Пообщайтесь с приложением и попросите его составить маршрут поездки в Лондон.

8. Центр приложений и мониторинг приложений
- В консоли ADC нажмите кнопку « Просмотреть приложение в App Hub» в правом верхнем углу страницы.

- Это откроет приложение в App Hub. App Hub — это централизованное место для просмотра и управления всеми вашими приложениями, позволяющее перейти от ресурсоориентированного подхода к подходу, ориентированному на приложения . Создание приложения с помощью ADC автоматически создает приложение в App Hub. Здесь вы должны увидеть все рабочие нагрузки и сервисы, составляющие приложение. Вместо того чтобы рассматривать ресурсы в облаке как отдельные ресурсы, вы можете рассматривать их как часть единого приложения, что упрощает управление и контроль.

- Нажмите кнопку « Просмотреть в Observability» . Это откроет приложение в консоли Observability.
- Откройте панель мониторинга . Панель мониторинга предоставляет обзор производительности и состояния приложения, отображая такие метрики, как 4 основных показателя: частота запросов, частота ошибок, задержка и насыщение. Этот мониторинг, ориентированный на приложение, имеет решающее значение для поддержания надежности. Вы также можете просматривать журналы и трассировки приложения, что позволяет сопоставлять сигналы и выявлять узкие места. Это особенно важно в сложных агентных приложениях, подобных этому, где медленные ответы от Vertex AI или сервера Data MCP могут ухудшить пользовательский опыт.

- Управляемое исследование : Задайте агенту конкретный вопрос в приложении (например, «Какие лучшие места для посещения в Лондоне?»). Затем вернитесь в консоль Observability и просмотрите список трассировок . Найдите трассировку, соответствующую вашему запросу. Щелкните по ней, чтобы увидеть подробное представление в виде водопада. Обратите внимание, как вы можете увидеть время, затраченное на работу на стороне фронтенда, на стороне бэкенда агента и на вызовы к Vertex AI. Это позволяет точно определить, где возникает задержка.
9. Поздравляем!
Поздравляем! Вы развернули трехзвенную архитектуру приложения с использованием ADC.
Что вы узнали
- Как визуально собрать облачную архитектуру с помощью АЦП.
- Как настроить АЦП и включить API через пользовательский интерфейс.
- Как развернуть приложения с помощью ADC.
- Как использовать App Hub для ориентированного на приложение представления ваших ресурсов.
- Как отслеживать состояние приложений с помощью панели мониторинга.