Краткое руководство. Развертывание приложений микрослужб в Azure Spring Apps

Примечание.

Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

В этой статье объясняется, как развернуть приложения микрослужб в Azure Spring Apps с помощью известного примера приложения PetClinic.

Пример клиники домашних животных демонстрирует шаблон архитектуры микрослужб. На следующей схеме показана архитектура приложения PetClinic в плане Azure Spring Apps Enterprise.

Схема, показывающая архитектуру примера PetClinic в плане Azure Spring Apps Enterprise.

На схеме показаны следующие архитектурные потоки и связи примера "Клиника домашних животных":

  • Использует Azure Spring Apps для управления внешними и внутренними приложениями. Серверные приложения создаются с помощью Spring Boot, и каждое приложение использует HSQLDB в качестве постоянного хранилища. Повторное интерфейсное приложение строится на основе приложения шлюза API pet clinic с Node.js выступая в качестве автономного веб-приложения.
  • Использует управляемые компоненты в Azure Spring Apps, включая реестр служб, службу конфигурации приложений, Шлюз Spring Cloud и режим реального просмотра приложений. Служба конфигурации приложений считывает конфигурацию репозитория Git.
  • Предоставляет URL-адрес Spring Cloud Gateway для маршрутизации запросов к внутренним приложениям-службам и предоставляет URL-адрес динамического представления приложения для мониторинга внутренних приложений.
  • Анализирует журналы с помощью рабочей области Log Analytics.
  • Отслеживает производительность с помощью Application Insights.

Примечание.

В этой статье используется упрощенная версия PetClinic, использующая базу данных в памяти, которая не готова к быстрому развертыванию в Azure Spring Apps.

Средства разработчика Tanzu предоставляют общедоступный доступ для Application Live View, который является точкой риска. Рабочая среда должна защитить доступ. Дополнительные сведения см. в разделе " Настройка портала средств разработки" в разделе "Настройка средств разработки Tanzu" в плане Azure Spring Apps Enterprise.

Пример клиники домашних животных демонстрирует шаблон архитектуры микрослужб. На следующей схеме показана архитектура приложения PetClinic в плане Azure Spring Apps Standard.

Схема, показывающая архитектуру примера PetClinic в стандартном плане Azure Spring Apps.

На схеме показаны следующие архитектурные потоки и связи примера "Клиника домашних животных":

  • Использует Azure Spring Apps для управления приложениями Spring Boot. Каждое приложение использует HSQLDB в качестве постоянного хранилища.
  • Использует управляемые компоненты Spring Cloud Config Server и Реестр служб Eureka в Azure Spring Apps. Сервер конфигурации Git считывает конфигурацию репозитория Git.
  • Предоставляет URL-адрес шлюза API для балансировки нагрузки запросов к приложениям-службам и предоставляет URL-адрес сервера администрирования для управления приложениями.
  • Анализирует журналы с помощью рабочей области Log Analytics.
  • Отслеживает производительность с помощью Application Insights.

Примечание.

В этой статье используется упрощенная версия PetClinic, использующая базу данных в памяти, которая не готова к быстрому развертыванию в Azure Spring Apps.

Развернутое приложение admin-server предоставляет общедоступный доступ, который является точкой риска. В рабочей среде необходимо защитить приложение Spring Boot Admin.

В этой статье приведены следующие варианты развертывания в Azure Spring Apps:

  • Вариант портал Azure — самый простой и самый быстрый способ создания ресурсов и развертывания приложений с помощью одного щелчка мыши. Этот вариант подходит для разработчиков Spring, которые хотят быстро развернуть приложения в облачных службах Azure.
  • Параметр подключаемого модуля портал Azure + Maven является более обычным способом создания ресурсов и развертывания приложений пошаговые шаги. Этот вариант подходит для разработчиков Spring с помощью облачных служб Azure впервые.
  • Параметр Azure CLI использует мощное средство командной строки для управления ресурсами Azure. Этот вариант подходит для разработчиков Spring, знакомых с облачными службами Azure.
  • Параметр подключаемого модуля портал Azure + Maven является более обычным способом создания ресурсов и развертывания приложений пошаговые шаги. Этот вариант подходит для разработчиков Spring с помощью облачных служб Azure впервые.
  • Вариант командной строки разработчика Azure — это более эффективный способ автоматического создания ресурсов и развертывания приложений с помощью простых команд. Azure Developer CLI использует шаблон для подготовки необходимых ресурсов Azure и развертывания кода приложения. Этот вариант подходит для разработчиков Spring, знакомых с облачными службами Azure.

1. Предварительные требования

2. Подготовка проекта Spring

Чтобы подготовить пример локально, выполните следующие действия.

  1. Клонируйте пример проекта с помощью следующей команды:

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. Перейдите к корневому каталогу проекта, а затем выполните следующую команду для локального запуска примера проекта:

    bash ./scripts/run_all_without_infra.sh
    
  3. После успешного завершения скрипта перейдите http://localhost:8080 в браузер, чтобы получить доступ к приложению PetClinic.

3. Подготовка облачной среды

В этом разделе описывается создание экземпляра службы Azure Spring Apps и подготовка облачной среды Azure.

3.1. Войдите на портал Azure

Перейдите к портал Azure, введите свои учетные данные и войдите на портал. Панель мониторинга службы является представлением по умолчанию.

3.2. Создание экземпляра Azure Spring Apps

Чтобы создать экземпляр службы, выполните следующие действия.

  1. Выберите "Создать ресурс" в углу портал Azure.

  2. На вкладке "Службы Azure" выберите "Вычисления>Azure Spring Apps".

    Снимок экрана: портал Azure, на котором показана страница

  3. На странице "Создание Azure Spring Apps" заполните форму на вкладке "Основные сведения".

    Снимок экрана: портал Azure, на котором показана страница

    Используйте следующую таблицу в качестве руководства для завершения формы. Рекомендуемый план"Стандартный".

    Параметр Предлагаемое значение Description
    Подписка Имя подписки. Подписка Azure, которую вы хотите использовать для сервера. Если у вас несколько подписок, выберите подписку, для которой вы хотите выставлять счет за ресурс.
    Группа ресурсов myresourcegroup Новое имя группы ресурсов или уже имеющееся из подписки.
    Имя myasa Уникальное имя, определяющее экземпляр Azure Spring Apps. Его длина должна быть от 4 до 32 знаков. Имя может содержать только строчные буквы, цифры и дефисы. Первым символом в имени службы должна быть буква, а последним — буква или цифра.
    План Стандартные План ценообразования определяет ресурсы и затраты, связанные с вашим экземпляром.
    Регион Регион, ближайший к вашим пользователям. Ближайшее к пользователям расположение.
    Избыточность между зонами не выбрано Создает службу Azure Spring Apps в зоне доступности Azure. В настоящее время не поддерживается во всех регионах.
  4. Перейдите на вкладку "Параметры диагностики " на странице "Создание Azure Spring Apps" и выберите "Создать новую ", чтобы создать экземпляр рабочих областей Log Analytics. На странице создания рабочей области Log Analytics обновите имя рабочей области Log Analytics, а затем нажмите кнопку "ОК", чтобы подтвердить создание.

    Снимок экрана: портал Azure, на котором показана страница

  5. Перейдите на вкладку Application Insights на странице "Создание Azure Spring Apps" , а затем выберите "Создать" , чтобы создать новый экземпляр Application Insights. На странице "Создание нового ресурса Application Insights" обновите имя Application Insights при необходимости, выберите рабочую область для режима ресурсов и нажмите кнопку "ОК", чтобы подтвердить создание.

    Снимок экрана: портал Azure, на которой показана страница

  6. Выберите "Рецензирование" и " Создать ", чтобы просмотреть выбранные варианты. Затем выберите "Создать ", чтобы подготовить экземпляр Azure Spring Apps.

  7. Щелкните значок уведомлений (колокольчик), чтобы отслеживать процесс развертывания. После завершения развертывания можно выбрать "Закрепить на панели мониторинга", чтобы создать ярлык на панели мониторинга портал Azure на странице обзора службы.

    Снимок экрана: портал Azure, на котором показано развертывание ресурса и панель уведомлений с кнопками

  8. Выберите "Перейти к ресурсу", чтобы перейти на страницу обзора Azure Spring Apps.

  9. Выберите сервер конфигурации в области навигации.

  10. На странице "Сервер конфигурации" для URI введите https://github.com/Azure-Samples/spring-petclinic-microservices-config.git и нажмите кнопку "Проверить".

    Снимок экрана: портал Azure, на котором показана страница

  11. После проверки нажмите кнопку "Применить ", чтобы завершить конфигурацию сервера конфигурации конфигурации.

4. Развертывание приложений в Azure Spring Apps

Теперь вы можете развернуть приложение в Azure Spring Apps.

Выполните следующие действия, чтобы развернуть приложения микрослужб с помощью подключаемого модуля Maven для Azure Spring Apps:

  1. Перейдите в пример каталога проекта и выполните следующую команду, чтобы настроить приложения для Azure Spring Apps:

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. В следующем списке описаны взаимодействия с командами:

    • Выберите дочерние модули, чтобы настроить(входные номера, разделенные запятыми, например[1-2,4,6], ВВОД, чтобы выбрать ALL): нажмите клавишу ВВОД , чтобы выбрать все.
    • Вход OAuth2: авторизация входа в Azure на основе протокола OAuth2.
    • Выберите подписку: выберите номер списка подписок созданного экземпляра Azure Spring Apps, который по умолчанию соответствует первой подписке в списке. Если вы используете номер по умолчанию, нажмите клавишу ВВОД напрямую.
    • Выберите Azure Spring Apps для развертывания: выберите список созданного экземпляра Azure Spring Apps. Если вы используете номер по умолчанию, нажмите клавишу ВВОД напрямую.
    • Выберите приложения для предоставления общедоступного доступа:(входные номера, разделенные запятыми, например[1-2,4,6], ВВОД, чтобы выбрать NONE): введите 1,5 для admin-server и api-gateway.
    • Подтвердите сохранение всех указанных выше конфигураций (Y/n): нажмите кнопку y. Если нажать клавишу N, конфигурация не сохраняется в POM-файлах.
  3. Используйте следующую команду для сборки и развертывания каждого приложения:

    ./mvnw azure-spring-apps:deploy
    
  4. Для запроса входа OAuth2 авторизуйте имя входа в Azure на основе протокола OAuth2.

    Примечание.

    Развертывание в Azure Spring Apps может занять до 25 минут.

После выполнения команды журнал отображает выходные данные, аналогичные следующему примеру, что указывает на успешное выполнение всех развертываний:

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO]   InstanceName:admin-server-default-xx-xx-xxx  Status:Running Reason:null       DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io

...

[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io

2. Подготовка проекта Spring

Кнопка "Развернуть в Azure" в следующем разделе запускает интерфейс портал Azure, который развертывает исходный код из репозитория Spring PetClinic. Никаких локальных шагов подготовки не требуется.

3. Подготовка облачной среды

Основной ресурс, который необходимо запустить в этом примере, — это экземпляр Azure Spring Apps. В этом разделе описывается создание этого ресурса.

В этом разделе используется кнопка "Развернуть в Azure" для запуска интерфейса развертывания в портал Azure. В этом интерфейсе используется шаблон ARM для создания ресурсов Azure.

3.1. Войдите на портал Azure

Перейдите к портал Azure, введите свои учетные данные и войдите на портал. Панель мониторинга службы является представлением по умолчанию.

3.2. Создание ресурсов Azure

Чтобы создать все ресурсы Azure, от которые зависит приложение, выполните следующие действия.

  1. Нажмите следующую кнопку "Развернуть в Azure", чтобы запустить процесс развертывания в портал Azure:

    Кнопка для развертывания шаблона Resource Manager в Azure.

  2. Заполните форму на вкладке "Основные сведения". Используйте следующую таблицу в качестве руководства для завершения формы:

    Параметр Предлагаемое значение Description
    Подписка Имя подписки. Подписка Azure, которую вы хотите использовать для сервера. Если у вас есть несколько подписок, выберите ту, через которую вы предпочитаете оплачивать этот ресурс.
    Группа ресурсов myresourcegroup Новое имя группы ресурсов или уже имеющееся из подписки.
    Регион Регион, ближайший к вашим пользователям. Регион используется для создания группы ресурсов.

    Снимок экрана: портал Azure, на котором показана страница

  3. Выберите "Рецензирование" и " Создать ", чтобы просмотреть выбранные варианты. Затем выберите "Создать ", чтобы развернуть приложение в Azure Spring Apps.

  4. На панели инструментов щелкните значок Уведомления (колокольчик), чтобы отслеживать процесс развертывания. После завершения развертывания можно выбрать "Закрепить на панели мониторинга", которая создает плитку для этой службы на панели мониторинга портал Azure в качестве ярлыка на странице обзора службы. Выберите "Перейти к ресурсу", чтобы открыть страницу обзора службы.

    Снимок экрана: портал Azure, на котором показана страница обзора с открытой областью уведомлений о пользовательском развертывании.

4. Развертывание приложений в Azure Spring Apps

Кнопка "Развернуть в Azure" в предыдущем разделе запускает портал Azure интерфейс, включающий развертывание приложения, поэтому ничего другого не требуется.

5. Проверка приложений

В следующих разделах описывается проверка развертывания.

5.1. Доступ к приложениям

После завершения развертывания можно найти URL-адрес шлюза Spring Cloud из выходных данных развертывания, как показано на следующем снимке экрана:

Снимок экрана: портал Azure, на котором показана страница

Откройте URL-адрес шлюза. Приложение должно выглядеть следующим образом:

Снимок экрана: приложение PetClinic, работающее в плане Azure Spring Apps Enterprise.

5.2. Запрос журналов приложений

После просмотра каждой функции клиники домашних животных рабочая область Log Analytics собирает журналы каждого приложения. Журналы можно проверить с помощью пользовательских запросов, как показано на следующем снимке экрана:

Снимок экрана: портал Azure, на котором показана страница

5.3. Мониторинг приложений

Application Insights отслеживает зависимости приложения, как показано на следующей карте трассировки приложений:

Снимок экрана: портал Azure, на котором показана страница карты приложений для плана Azure Spring Apps Enterprise.

URL-адрес динамического представления приложения можно найти в выходных данных развертывания. Откройте URL-адрес динамического представления приложения для мониторинга среды выполнения приложений, как показано на следующем снимке экрана:

Снимок экрана: режим реального просмотра приложений для приложения PetClinic.

5.1. Доступ к приложениям

Используя сведения о URL-адресе в выходных данных журнала развертывания, откройте URL-адрес, предоставляемый приложением с именем api-gateway , например https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io. Приложение должно выглядеть следующим образом:

Снимок экрана: приложение PetClinic, работающее в Azure Spring Apps.

5.2. Запрос журналов приложений

После просмотра каждой функции клиники домашних животных рабочая область Log Analytics собирает журналы каждого приложения. Журналы можно проверить с помощью пользовательских запросов, как показано на следующем снимке экрана:

Снимок экрана: портал Azure, на котором показана страница

5.3. Мониторинг приложений

Application Insights отслеживает зависимости приложения, как показано на следующей карте трассировки приложений:

Снимок экрана: портал Azure, на котором показана страница карты приложения для экземпляра Application Insights.

Откройте URL-адрес, предоставляемый приложением admin-server для управления приложениями с помощью сервера администрирования Spring Boot, как показано на следующем снимке экрана:

Снимок экрана: страница Spring Boot Admin Server для приложения PetClinic с описанием текущих экземпляров приложения.

6. Очистка ресурсов

Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Если вам больше не нужны ресурсы, вы можете очистить ненужные ресурсы, чтобы избежать расходов Azure.

Выполните следующие действия, чтобы удалить всю группу ресурсов, включая только что созданный экземпляр службы:

  1. Найдите группу ресурсов на портале Azure. В меню навигации выберите группы ресурсов и выберите имя группы ресурсов.

  2. На странице группы ресурсов нажмите кнопку "Удалить". Введите имя группы ресурсов в текстовом поле, чтобы подтвердить удаление, а затем нажмите кнопку "Удалить".

Не забудьте удалить ресурсы, созданные в этой статье, если они больше не нужны. Вы можете удалить группу ресурсов Azure, которая содержит все связанные ресурсы.

Чтобы удалить всю группу ресурсов, выполните следующие действия.

  1. Найдите группу ресурсов на портале Azure. В меню навигации выберите группы ресурсов и выберите имя группы ресурсов.

  2. На странице группы ресурсов нажмите кнопку "Удалить". Введите имя группы ресурсов в текстовом поле, чтобы подтвердить удаление, а затем нажмите кнопку "Удалить".

7. Дальнейшие действия

Дополнительные сведения см. в следующих статьях: