Реализация CI/CD для Базы данных SQL Azure

Завершено

Теперь вы знаете, как развертывать, настраивать и использовать Базу данных SQL Azure для создания надежной основы современного приложения. Требования к приложениям постоянно меняются, поэтому следующий шаг состоит в том, чтобы понять, как обновлять базу данных, когда это потребуется. Операции разработки (DevOps) — это набор принципов и рекомендаций, которые могут помочь.

DevOps представляет собой объединение людей, процессов и технологий для непрерывного повышения эффективности клиентов. Команды, применяющие культуру, методы и инструменты DevOps, становятся высокоэффективными, быстрее создают более совершенные продукты и повышают уровень удовлетворенности клиентов.

База данных является одной из основных частей решения, поэтому обеспечение ее работы в соответствии с принципами DevOps является ключевой частью современной и гибкой разработки приложений.

В Azure SQL существует несколько способов включения базы данных в процесс DevOps. Конвейер непрерывной интеграции и непрерывной поставки (CI/CD) — это основа DevOps среды, и Azure SQL можно полностью интегрировать с любым полностью встроенным инструментом CI/CD, который вы выбрали. Два наиболее распространенных и широко используемых инструмента в Azure — это GitHub Actions и Azure DevOps.

Реализация CI/CD для баз данных

Наличие базы данных в составе конвейера CI/CD означает, что вы хотите настроить и развернуть структуру ( и, возможно, даже некоторые данные) полностью автоматизированным, воспроизводимым и детерминированным образом. После настройки процесс развертывания или обновления можно запустить в любое время и любое количество раз, и каждый раз вы будете получать единообразные результаты.

В этом уроке вы узнаете о трех основных подходах к реализации конвейера CI/CD для баз данных:

  • Desired State
  • Code First Migrations
  • Настраиваемые сценарии

Использование Desired State с SqlPackage.exe

В подходе "Требуемое состояние" создается моментальный снимок структуры эталонной базы данных для представления требуемого состояния. Затем можно использовать этот моментальный снимок для синхронизации другой целевой базы данных, как правило, тестовой или производственной базы данных, до требуемого состояния. Для создания моментального снимка в .dacpac файл можно использовать такие средства, как SqlPackage.exe. .dacpac При применении к целевой базе данных он автоматически находит различия, создает правильный скрипт и применяет этот скрипт для синхронизации целевой схемы со ссылкой.

Мы используем подход требуемого состояния в сценарии перехвата шины; Это, вероятно, самый простой и самый простой из трех подходов, рассмотренных.

Реализация Code First Migrations в зависимости от языка

Существует еще один вариант, когда вы не хотите писать скрипты T-SQL; Вместо этого необходимо разрешить C#, Python или Node и сущностям, определенным в решении (например, шине, маршруту или расположению), автоматически создавать базу данных и схему. Как правило, существует специальное средство, которое поставляется с платформой или применяется в ней или в инфраструктуре для построения приложений. Эти средства гарантируют, что при каждом изменении поля или сущности новая структура будет отражена в базе данных. В конце этого модуля можно найти ссылки на инструменты для определенных платформ и инфраструктур для построения приложений.

Использование сценариев, создаваемых вручную, для пошаговых развертываний

При подходе "Ручное написание сценариев" разработчик аккуратно записывает сценарии, необходимые для создания и изменения базы данных с течением времени, и поддерживает их в актуальном состоянии. После развертывания сценария в рабочей среде он никогда не изменяется, всегда создается новый сценарий. Каждый сценарий содержит код, необходимый для преобразования базы данных с учетом новой схемы. В тех случаях, когда базу данных требуется развернуть с нуля, все сценарии должны выполняться в правильной последовательности, чтобы гарантировать правильное создание базы данных и ее преобразование. После развертывания скрипта можно использовать такие средства, как служебная программа сравнения схем в SQL Server Data Tools (SSDT) для сравнения определений баз данных. Это помогает гарантировать, что развернутый скрипт снова не применяется к той же базе данных в последующих выполнениях.

Выбор средства для работы с конвейерами для простоты реализации CI/CD

Определив подход, который будет использоваться для обновления базы данных, можно выбрать одно из двух наиболее распространенных решений для реализации этого подхода, Azure DevOps или GitHub Actions.

Реализация CI/CD с помощью Azure DevOps

Azure DevOps — это набор продуктов, обеспечивающих полную поддержку всех аспектов DevOps, включая конвейер CI/CD. Конвейер состоит из задач, которые используются для определения этапов конвейера. Задача может быть практически любой, от выполнения исполняемого файла до сборки решения .NET. Для развертывания .dacpac файла или выполнения скрипта .sql можно использовать определенную задачу с именем База данных SQL Azure развертывания.

Реализация CI/CD с помощью GitHub Actions

Инструмент GitHub Actions допускает определение конвейера CI/CD. Действия используются для создания шагов конвейера. Действие можно использовать для выполнения процесса практически любого типа. Действие Развертывание Azure SQL позволяет развернуть файл .dacpac.

В следующем упражнении действия SQL Azure будут использоваться для развертывания и обновления схемы базы данных, что дает возможность увидеть его в действии.

Проверка знаний

1.

Какой из следующих подходов не является подходом к CI/CD в База данных SQL Azure?

2.

DevOps был определен как объединение трех вещей. Какой из следующих вариантов не был одним из них?