Развертывание приложения и интеграция с другими службами Azure
Теперь, когда вы знаете о различных вариантах размещения приложений в Azure, вы хотите изучить, как развернуть База данных Azure для MySQL — гибкие серверные приложения на этих службах. В этом уроке вы изучите два наиболее используемых службы, приложение Azure service и AKS, просмотрите варианты автоматизации задач CI/CD с помощью Azure DevOps и GitHub, а также узнайте, как включить искусственный интеллект в эти приложения путем интеграции с Поиском ИИ Azure и Azure OpenAI.
служба приложение Azure + База данных Azure для MySQL — гибкий сервер
Чтобы развернуть приложение в службе приложение Azure и интегрироваться с База данных Azure для MySQL — гибкий сервер, рассмотрите следующие варианты:
- Используйте веб-приложение + базу данных из Azure Marketplace для создания веб-приложения и гибкого сервера MySQL, изолированного в виртуальной сети (виртуальная сеть). Сведения о подключении гибкого сервера автоматически добавляются в параметры конфигурации приложения Служба приложений с помощью строка подключения.
- Создайте гибкий сервер Базы данных Azure для MySQL и приложение службы приложений по отдельности, а затем в приложении службы приложений в разделе "Параметры конфигурации" добавьте сведения о подключении гибкого сервера MySQL.
После настройки гибкого сервера Служба приложений и MySQL можно развернуть код приложения в Azure с помощью различных методов развертывания, поддерживаемых службой приложение Azure. Эти методы включают развертывание из ZIP-пакета, локальных репозиториев Git, Реестр контейнеров Azure, GitHub Actions или Azure Pipelines с каждым вариантом, предоставляющим гибкость в зависимости от рабочих процессов разработки и эксплуатации.
В следующем уроке вы создадите пример приложения PHP и развернете его в службе приложение Azure, пройдя каждый шаг, участвующий в процессе развертывания, и используйте мощные функции платформы Azure для оптимизации производительности и масштабируемости приложения.
Служба Azure Kubernetes (AKS) + гибкий сервер MySQL
Интеграция AKS с База данных Azure для MySQL — гибкий сервер создает мощную платформу для развертывания контейнерных приложений, которая может упростить управление базами данных и повысить масштабируемость и устойчивость приложений. Чтобы эффективно развертывать приложения в AKS и управлять ими с гибким сервером MySQL, рассмотрим следующие сведения.
На следующей схеме показаны три распространенных способа интеграции MySQL с приложением AKS:
- Используйте гибкий сервер Базы данных Azure для MySQL, что снижает эксплуатационные затраты на управление сервером MySQL, тем самым повышая производительность разработчика.
- Используйте MySQL на виртуальной машине Azure, инфраструктуру в качестве службы, которая требует, чтобы вы несете ответственность за управление сервером MySQL и его обслуживание.
- Запустите MySQL в Kubernetes, который предлагает преимущества автоматизации, но требует усилий разработчика для обеспечения стабильности, высокой доступности, сохраняемости данных и соответствия требованиям. Кроме того, учитывая временный характер модулей pod Kubernetes, существует более высокая вероятность отработки отказа и перезапусков, что может повлиять на доступность приложений и непрерывность бизнес-процессов.
Чтобы развернуть приложение в AKS, которое интегрируется с База данных Azure для MySQL — гибкий сервер, используйте следующий пятишаговый процесс:
Создайте гибкий сервер базы данных Azure для MySQL с помощью портала Azure, Azure CLI, шаблона ARM/Bicep или других средств Azure. Наряду с выбором подходящих параметров вычислений, хранилища, резервного копирования и высокой доступности важно решить подходящий вариант сети при создании гибкого сервера MySQL.
Важно. Если ваш сценарий не включает только небольшие проекты или демонстрации, настоятельно рекомендуется создать сервер с частным доступом, что помогает защитить доступ к серверу через интеграцию виртуальной сети.
Подготовьте приложение , внесите следующие изменения в код приложения:
- Чтобы приложение использовал гибкий сервер MySQL, измените соответствующий файл конфигурации или файл свойств приложения, чтобы добавить код, указывающий URL-адрес сервера узла, имя базы данных, имя пользователя и пароль, который будет считываться из переменных среды (как определено и передано из файла манифеста Kubernetes).
- Создайте Dockerfile для создания образа Docker приложения.
Создайте реестр контейнеров Azure и отправьте приложение в реестр как образ Docker.
Создайте кластер AKS и подключите учетную запись реестра контейнеров Azure к кластеру.
Разверните приложение в кластере , а затем протестируйте развертывание. Чтобы развернуть приложение в кластере AKS, сначала необходимо создать файл манифеста Kubernetes, который определяет требуемое состояние для кластера, например, какие образы контейнеров следует запускать.
В YAML-файле манифеста Kubernetes необходимо определить следующие ключевые моменты:
- The container image name: replace it with your own in the format [registryname].azurecr.io/[image-name]:[tag]
- Environment variables for MySQL flexible server host URL, database name, admin username and password.
- A service resource to access the app in the cluster. For example, a service of the type "LoadBalancer" will create an external load balancer providing an externally accessible IP address to the app.
After the YAML file is ready, deploy it with either `kubectl apply` or within the Kubernetes resource view in the Azure portal.
Автоматизация задач CI/CD базы данных с помощью Azure DevOps, GitHub и оператора службы Azure
Развертывание приложений вручную может быть неэффективным и подверженным ошибкам, требуя частого тестирования и корректировки. Для упрощения этого процесса настоятельно рекомендуется автоматизация с помощью непрерывной интеграции (CI) и непрерывной доставки и развертывания (CD). CI/CD позволяет группам разработчиков регулярно и надежно выпускать небольшие обновления и функции, значительно уменьшая риск и усилия, связанные с большими, менее частыми обновлениями.
Для автоматизации развертывания приложений и База данных Azure для MySQL — гибкий сервер рекомендуется использовать следующие средства CI/CD.
Azure Pipelines (система конвейеров Azure)
Azure Pipelines, часть Azure DevOps, предоставляет надежные возможности CI/CD, упрощая автоматическое развертывание кода для различных целевых объектов, включая службы PaaS Azure, виртуальные машины и реестры контейнеров. Эта платформа также поддерживает развертывания в разных средах, таких как другие облачные платформы или локальные системы.
Специально для развертываний баз данных можно использовать Azure Pipelines для автоматизации обновлений для База данных Azure для MySQL — гибкий сервер, включив задачи в конвейер, выполняющий команды Azure CLI. Эти задачи могут применять обновления непосредственно из ФАЙЛОВ SQL или выполнять встроенные скрипты SQL, обеспечивая актуальность схем и данных базы данных после каждой успешной сборки.
Действия GitHub
GitHub Actions обеспечивает автоматизацию рабочих процессов в ответ на события репозитория, такие как push-запросы, запросы на вытягивание или создание проблемы. Эта интеграция обеспечивает простой конвейер CI/CD в экосистеме GitHub, обрабатывая все рабочие процессы сборки и тестирования для новых запросов на вытягивание до рабочих процессов развертывания при создании выпуска.
Для баз данных можно настроить GitHub Actions для подключения непосредственно к База данных Azure для MySQL — гибкий сервер для развертывания или обновления баз данных при объединены или отправки изменений. Это обеспечивает непрерывную синхронизацию между обновлениями приложений и изменениями схемы базы данных.
Оператор службы Azure
Оператор службы Azure интегрирует управление ресурсами Azure в среду Kubernetes, позволяя управлять ресурсами Azure, такими как База данных Azure для MySQL — гибкий сервер непосредственно с помощью инструментов Kubernetes. Этот оператор позволяет внедрять обновления инфраструктуры в рабочие процессы развертывания Kubernetes, позволяя унифицированный подход к управлению как приложениями, так и их зависимыми службами Azure.
Другие средства
Помимо этих конкретных средств, вы можете использовать другие технологии для улучшения рабочих процессов CI/CD:
- Слоты развертывания службы приложений: полезны для тестирования новых выпусков перед их запуском, позволяя выполнять окончальные проверки и переключение на рабочую среду без прерывания работы.
- Центр развертывания службы приложений. Оптимизирует настройки CI/CD со службами приложений Azure, интегрируясь со службами управления версиями и сборками.
- Jenkins: сервер автоматизации с открытым кодом, поддерживающий создание, развертывание и автоматизацию любого проекта, Jenkins может быть особенно эффективным в сложных средах, требующих пользовательского скрипта и расширенной интеграции.
Используя эти средства, вы можете убедиться, что приложение и базовая инфраструктура баз данных всегда соответствуют последним изменениям кода, минимизируя время простоя и ускоряя доставку новых функций и исправлений.
Добавление аналитики путем интеграции с поиском ИИ Azure и Azure OpenAI
Самый простой способ улучшить аналитику приложений MySQL — включить широкие возможности семантического поиска и создания искусственного интеллекта, создав решение с помощью архитектуры получения дополненного поколения (RAG) с помощью службы "Поиск ИИ Azure" и Службы Azure OpenAI. RAG — это архитектура, которая расширяет возможности распознавания естественного языка и создания LLM, таких как ChatGPT, добавив систему получения информации, например поиск ИИ Azure, которая работает с данными, хранящимися в источниках данных, таких как База данных Azure для MySQL.
Пример шаблона RAG для решения ИИ MySQL выглядит следующим образом:
- Поиск по искусственному интеллекту Azure извлекает содержимое из внутреннего источника данных, например База данных Azure для MySQL базы данных с помощью индексатора, который выполняется периодически.
- Данные векторизированы встроенным вызовом модели внедрения текста Azure OpenAI.
- Затем поиск ИИ Azure сохраняет эти векторные данные в индексе векторного поиска.
- Когда пользователь использует клиентское приложение чата, запрос отправляется в службу завершения чата Azure OpenAI.
- Поиск ИИ Azure теперь используется в качестве источника данных для поиска наиболее релевантного ответа с помощью векторного поиска или гибридного поиска (вектор + семантический поиск).
- Затем служба завершения чата Azure OpenAI использует эти результаты поиска для создания пользовательского ответа обратно в запрос пользователя.
Если вы работаете с приложениями, такими как системы управления контентом (CMS), приложения электронной коммерции или игровые сайты, с данными, размещенными в База данных Azure для MySQL, вы можете улучшить взаимодействие с пользователем, создав приложения для поиска и чата сгенерированного искусственного интеллекта с помощью LLMs, доступных в Azure OpenAI и векторном хранилище и индексировании, предоставляемых поиском ИИ Azure.