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

Примечание.

Первые 50 виртуальных ЦП и 100 ГБ памяти освобождаются каждый месяц. Дополнительные сведения см. в статье "Сокращение цен" — Azure Spring Apps делает больше, затраты меньше! в приложениях в блоге Azure.

Примечание.

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

В этой статье объясняется, как развернуть приложения микрослужб в 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.
  • Отслеживает производительность с помощью приложения Аналитика.

Примечание.

В этой статье используется упрощенная версия 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-адрес сервера Администратор server для управления приложениями.
  • Анализирует журналы с помощью рабочей области Log Analytics.
  • Отслеживает производительность с помощью приложения Аналитика.

Примечание.

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

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

В этой статье приведены следующие варианты развертывания в 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. Перейдите на вкладку "Приложение Аналитика" на странице "Создание Azure Spring Apps", а затем выберите "Создать", чтобы создать новый экземпляр приложения Аналитика. На странице "Создание нового приложения Аналитика ресурсов" обновите имя 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 интерфейс, который скачивает JAR-пакет с страницы выпусков ASA-Samples-Web-Application на сайте GitHub. Никаких локальных шагов подготовки не требуется.

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. Мониторинг приложений

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

Снимок экрана: портал 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. Мониторинг приложений

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

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

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

Снимок экрана: страница

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

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

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

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

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

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

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

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

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

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

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