Среда развертывания

редактировать
Компьютерная система, в которой развернута и выполняется компьютерная программа или программный компонент

В развертывании программного обеспечения среда или уровень - это компьютерная система, в которой развернута компьютерная программа или программный компонент и выполнен. В простых случаях, таких как разработка и немедленное выполнение программы на одном компьютере, может быть одна среда, но при промышленном использовании среда разработки (в которой изначально вносятся изменения) и производственная среда (которую используют конечные пользователи) разделены; часто с несколькими промежуточными этапами. Этот структурированный процесс управления выпусками позволяет поэтапное развертывание (развертывание), тестирование и откат в случае возникновения проблем.

Среды могут значительно различаться по размеру: среда разработки обычно представляет собой отдельную рабочую станцию ​​разработчика, в то время как производственная среда может представлять собой сеть из множества географически распределенных машин в центрах обработки данных или виртуальных машин в облачные вычисления. Код, данные и конфигурация могут быть развернуты параллельно, и нет необходимости подключаться к соответствующему уровню - например, предварительный код может подключаться к производственной базе данных.

Содержание
  • 1 Архитектуры
  • 2 Среды
    • 2.1 Разработка
    • 2.2 Тестирование
    • 2.3 Промежуточное исполнение
    • 2.4 Производство
  • 3 Интеграция фреймворков
  • 4 См. Также
  • 5 Ссылки
Архитектуры

Архитектуры развертывания значительно различаются, но в целом уровни заполняются, начиная с разработки (DEV) и заканчивая производством (PROD). Общая 4-х уровневая архитектура - это разработка, тестирование, модель, производство (DEV, TEST, MODL, PROD), при этом программное обеспечение развертывается на каждом из них по порядку. Другие распространенные среды включают контроль качества (QC) для приемочных испытаний ; песочница или экспериментальная (EXP) для экспериментов, которые не предназначены для запуска в производство; и аварийное восстановление, чтобы обеспечить немедленный откат в случае проблем с производством. Другой распространенной архитектурой является разработка, тестирование, приемка и производство (DTAP).

Этот язык особенно подходит для серверных программ, где серверы работают в удаленном центре обработки данных; для кода, который выполняется на устройстве конечного пользователя, такого как приложения (приложения) или клиенты, можно вместо этого обратиться к пользовательской среде (USER) или локальной среде (LOCAL).

Точные определения и границы между средами различаются - тест может считаться частью разработки, приемка может считаться частью теста, частью этапа или быть отдельным и т. Д. Основные уровни проходят по порядку, с новые выпуски развертываются (развертываются или отправляются) в каждый по очереди. Экспериментальные уровни и уровни восстановления, если они есть, выходят за рамки этого потока - экспериментальные выпуски являются терминальными, а восстановление обычно представляет собой старую или дублирующую производственную версию, развернутую после производственной. В случае возникновения проблем можно откатиться к старому выпуску, проще всего протолкнув старый выпуск, как если бы это был новый выпуск. Последний шаг, развертывание в продакшн («продвижение в продакшн») является наиболее чувствительным, так как любые проблемы немедленно влияют на пользователя. По этой причине с этим часто обращаются по-другому, по крайней мере, за более тщательным мониторингом, а в некоторых случаях с поэтапным развертыванием или с требованием только переключения переключателя, что обеспечивает быстрый откат. Лучше избегать такого названия, как обеспечение качества (QA); QA не означает тестирование программного обеспечения. Тестирование важно, но оно отличается от QA.

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

. Среды могут быть самых разных размеров: разработка обычно осуществляется на отдельной рабочей станции разработчика. (хотя разработчиков могут быть тысячи), а производство может состоять из множества географически распределенных машин; test и QC могут быть маленькими или большими, в зависимости от ресурсов, выделенных на них, а этапы могут варьироваться от одной машины (подобно канарейке) до точной копии продукции.

Среды

В таблице ниже подробно описан список уровней.

Имя среды / уровняОписание
ЛокальныйРабочий стол / рабочая станция разработчика
Разработка / магистральСервер разработки, действующий как песочница, где модульное тестирование может выполняться разработчиком
ИнтеграцияCI цель сборки или для тестирования побочных эффектов разработчиком
Тестирование / Тестирование / Контроль качества / Внутреннее принятиеСреда, в которой проводится тестирование интерфейса выполняется. Группа контроля качества гарантирует, что новый код не повлияет на существующие функциональные возможности, и тестирует основные функции системы после развертывания нового кода в тестовой среде.
Этап / Этап / Модель / Предварительная подготовка / Принятие внешнего клиента / ДемонстрацияЗеркало производственной среды
Производственная / РеальнаяОбслуживает конечных пользователей / клиентов

Разработка

Среда разработки (dev) - это среда, в которой разрабатываются изменения программного обеспечения, проще всего - отдельная рабочая станция разработчика. Это отличается от конечной целевой среды по-разному - целевой машиной может быть не настольный компьютер (это может быть смартфон, встроенная система, безголовая машина в центре обработки данных и т. Д.), И даже если в остальном она похожа, среда разработчика будет включают инструменты разработки, такие как компилятор, интегрированная среда разработки, различные или дополнительные версии библиотек и вспомогательного программного обеспечения и т. д., которые отсутствуют в среде пользователя.

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

Тестирование

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

Различные типы тестирования предполагают разные типы тестовых сред, некоторые или все из которых могут быть виртуализированы, чтобы можно было проводить быстрое параллельное тестирование. Например, автоматизированные тесты пользовательского интерфейса могут выполняться в нескольких виртуальных операционных системах и дисплеях (реальных или виртуальных). Для тестов производительности может потребоваться нормализованная базовая физическая конфигурация оборудования, чтобы результаты тестов производительности можно было сравнивать с течением времени. Тестирование доступности или надежности может зависеть от симуляторов отказов в виртуальном оборудовании и виртуальных сетях.

Тесты могут быть последовательными (одно за другим) или параллельными (некоторые или все сразу) в зависимости от сложности тестовой среды. Важной целью гибкой и другой высокопроизводительной разработки программного обеспечения является сокращение времени от разработки программного обеспечения или спецификации до поставки в производство. Среды тестирования с высокой степенью автоматизации и распараллеливания вносят важный вклад в быструю разработку программного обеспечения.

Промежуточная среда

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

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

Еще одно важное использование промежуточного этапа - тестирование производительности, особенно нагрузочное тестирование, поскольку оно часто зависит от среды.

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

Производство

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

Развертывание в производственной среде - самый ответственный шаг; это может быть сделано путем непосредственного развертывания нового кода (перезаписи старого кода, так что одновременно присутствует только одна копия) или путем развертывания изменения конфигурации. Это может принимать различные формы: развертывание параллельной установки новой версии кода и переключение между ними с изменением конфигурации; развертывание новой версии кода со старым поведением и флагом функции и переключение на новое поведение с изменением конфигурации, которое выполняет переключение флага; или путем развертывания отдельных серверов (один запускает старый код, другой - нового) и перенаправления трафика со старого на новый с изменением конфигурации на уровне маршрутизации трафика. Это, в свою очередь, можно делать все сразу или постепенно, поэтапно.

Для развертывания новой версии обычно требуется перезапуск, если горячая замена не возможна, и, следовательно, требует либо прерывания обслуживания (обычно для пользовательского программного обеспечения, когда приложения перезапускаются), либо избыточности - либо медленно перезапускать экземпляры после балансировщика нагрузки, либо заранее запускать новые серверы, а затем просто перенаправлять трафик на новые серверы.

При развертывании нового выпуска в производственной среде вместо немедленного развертывания для всех экземпляров или пользователей его можно сначала развернуть на одном экземпляре или части пользователей, а затем либо развернуть для всех, либо постепенно развернуть поэтапно, чтобы уловить любые проблемы в последнюю минуту. Это похоже на этап, за исключением того, что фактически выполняется в производстве, и называется выпуском canary по аналогии с добычей угля. Это добавляет сложности из-за одновременного запуска нескольких выпусков и, таким образом, обычно быстро завершается, чтобы избежать проблем совместимости.

Интеграция фреймворков

Разработка, подготовка и производство - известные и задокументированные переменные среды в ASP.NET Core. В зависимости от определенной переменной выполняется другой код и отображается контент, применяются разные настройки безопасности и отладки.

См. Также
Ссылки
Последняя правка сделана 2021-05-17 13:58:27
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте