Непрерывная интеграция и непрерывная поставка (создание Real-World облачных приложений с помощью Azure)

Рик Андерсон(Rick Anderson),Том Дайкстра (Tom Dykstra)

Скачать проект fix it или скачать электронную книгу

Электронная книга Building Real World Cloud Apps with Azure (Создание реальных облачных приложений с помощью Azure ) основана на презентации, разработанной Скоттом Гатри. В ней описано 13 шаблонов и методик, которые помогут вам успешно разрабатывать веб-приложения для облака. Сведения об электронной книге см. в первой главе.

Первые два рекомендуемых шаблона процесса разработки — это Автоматизация всего и Система управления версиями, а третий шаблон процесса объединяет их. Непрерывная интеграция (CI) означает, что всякий раз, когда разработчик возвращает код в исходный репозиторий, сборка активируется автоматически. Непрерывная поставка (CD) выполняет еще один шаг: после успешного выполнения сборки и автоматизированных модульных тестов вы автоматически развертываете приложение в среде, где можно выполнить более глубокое тестирование.

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

Рабочий процесс непрерывной интеграции и непрерывной поставки

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

На следующей схеме из электронной книги Microsoft Patterns and Practices о непрерывной поставке показан типичный рабочий процесс. Щелкните изображение, чтобы увидеть его в полном размере в исходном контексте.

Рабочий процесс непрерывной поставки

Как облако обеспечивает экономичное непрерывное развертывание и непрерывное развертывание

Автоматизация этих процессов в Azure проста. Так как вы используете все компоненты в облаке, вам не нужно покупать серверы для сборок или тестовых сред или управлять ими. И вам не нужно ждать, пока сервер будет доступен для выполнения тестирования. При каждой сборке вы можете запустить тестовую среду в Azure с помощью скрипта автоматизации, выполнить приемочные тесты или более подробные тесты для нее, а затем, когда вы закончите, просто разорвать ее. И если вы запускаете этот сервер только в течение 2 часов или 8 часов или в день, сумма денег, которую вы должны заплатить за него, минимальна, потому что вы платите только за время, когда машина на самом деле работает. Например, среда, необходимая для приложения Fix it, в основном стоит около 1 процента в час, если вы перейдете на один уровень выше уровня "Бесплатный". В течение месяца, если вы запускали среду только час за раз, ваша среда тестирования, вероятно, будет стоить меньше, чем латте, который вы покупаете в Starbucks.

Azure DevOps Services

Azure DevOps Services предоставляет ряд функций, которые помогут вам при разработке приложений — от планирования до развертывания.

  • Он поддерживает систему управления версиями Git (распределенная) и TFVC (централизованная система управления версиями).
  • Она предлагает эластичную службу сборки, то есть динамически создает серверы сборки, когда они необходимы, и выводит их из строя по завершении. Вы можете автоматически запускать сборку, когда кто-то регистрирует изменения исходного кода, и вам не нужно выделять и оплачивать собственные серверы сборки, которые простаивают большую часть времени. Служба сборки предоставляется бесплатно, если вы не превысите определенное количество сборок. Если вы планируете выполнять большой объем сборок, вы можете заплатить немного дополнительно за зарезервированные серверы сборки.
  • Он поддерживает непрерывную поставку в Azure.
  • Он поддерживает автоматическое нагрузочное тестирование. Нагрузочное тестирование имеет решающее значение для облачного приложения, но часто игнорируется до тех пор, пока не будет слишком поздно. Нагрузочное тестирование имитирует интенсивное использование приложения тысячами пользователей, позволяя находить узкие места и повышать пропускную способность перед выпуском приложения в рабочей среде.
  • Она поддерживает совместную работу в комнате группы, что упрощает взаимодействие и совместную работу в режиме реального времени для небольших гибких команд.
  • Она поддерживает гибкое управление проектами.

Дополнительные сведения о функциях непрерывной интеграции и доставки Azure DevOps Services см. в документации по Azure DevOps.

Если вы ищете готовое решение для управления проектами, совместной работы команд и системы управления версиями, проверка Azure DevOps Services. Зарегистрируйтесь на Azure DevOps Services.

Сводка

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

Ресурсы

Дополнительные сведения см. в статье Развертывание веб-приложения в Служба приложений Azure.

См. также следующие ресурсы: