Развертывание программного обеспечения - Software deployment

Разработка программного обеспечения
Активность ядер
Парадигмы и модели
Методологии и рамки
Вспомогательные дисциплины
Практики
Инструменты
Стандарты и свод знаний
Глоссарии
Контуры

Развертывание программного обеспечения все виды деятельности, которые делают программная система доступны для использования.[1]

Общий процесс развертывания состоит из нескольких взаимосвязанных действий с возможными переходами между ними. Эти действия могут происходить в режиссер сторона или на потребитель сторона или оба. Поскольку каждая программная система уникальна, точная процессы или же процедуры в рамках каждого вида деятельности трудно определить. Следовательно, "развертывание" следует интерпретировать как общий процесс который должен быть настроен в соответствии с конкретными требованиями или характеристиками.[2]

История

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

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

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

Действия по развертыванию

Релиз
В релиз активность следует из завершенных разработка процесс и иногда классифицируется как часть процесса разработки, а не как процесс развертывания. Он включает в себя все операции по подготовке системы к сборка и перенос в компьютерную систему (ы), на которой он будет работать в производстве. Поэтому иногда необходимо определить Ресурсы требуется для работы системы с приемлемой производительностью, а также для планирования и / или документирования последующих действий в процессе развертывания.
Установка и активация
Для простых систем установка предполагает создание какой-либо формы команда, ярлык, скрипт или служба для запуска программного обеспечения (вручную или автоматически). Для сложных систем это может включать настройку системы - возможно, по запросу конечный пользователь вопросы о его предполагаемом использовании или напрямую спрашивая их, как они хотели бы, чтобы он был настроен, и / или делая все необходимые подсистемы готовыми к использованию. Активация - это действие по запуску исполняемый файл компонент программного обеспечения впервые (не путать с общепринятым использованием термина активация относительно лицензии на программное обеспечение, которая является функцией Управление цифровыми правами системы.)
В более крупных развертываниях программного обеспечения на серверы, основная копия программного обеспечения, которая будет использоваться пользователями - «производственная» - может быть установлена ​​на производственном сервере в производственной среде. Другие версии развернутого программного обеспечения могут быть установлены в тестовая среда, среда разработки и среда аварийного восстановления.
В комплексе непрерывная доставка среды и / или программное обеспечение как сервис системы, версии системы с различной конфигурацией могут даже существовать одновременно в производственной среде для разных внутренних или внешних клиентов (это известно как мультитенантная архитектура) или даже постепенно развертываться параллельно различным группам клиентов с возможностью отмены одного или нескольких параллельных развертываний. Например, Twitter известно, что последний подход используется для A / B тестирование новых функций и пользовательский интерфейс изменения. «Скрытая живая» группа также может быть создана в производственной среде, состоящей из серверов, которые еще не подключены к производственной среде. балансировщик нагрузки, Для целей сине-зеленое развертывание.
Деактивация
Деактивация - это противоположность активации и относится к отключению любых уже выполняющихся компонентов системы. Деактивация часто требуется для выполнения других действий по развертыванию, например, может потребоваться деактивировать программную систему перед выполнением обновления. Практика изъятия из эксплуатации редко используемых или устаревших систем часто называется прекращение подачи заявления или вывод приложения из эксплуатации.
Удаление
Удаление - это процесс, обратный установке. Это удаление системы, которая больше не требуется. Это также может включать в себя некоторую реконфигурацию других программных систем, чтобы удалить удаленные системы. зависимости.
Обновлять
В процессе обновления более ранняя версия всего программного обеспечения или его части заменяется более новой версией. Обычно он состоит из деактивации с последующей установкой. В некоторых системах, например в Linux, при использовании системного менеджер пакетов старая версия программного обеспечения обычно также удаляется автоматически в процессе. (Это связано с тем, что менеджеры пакетов Linux обычно не поддерживают установку нескольких версий программного приложения одновременно, если программный пакет не был специально разработан для работать вокруг это ограничение.)
Встроенное обновление
Механизмы установки обновлений встроены в некоторые программные системы (или, в случае некоторых операционных систем, таких как Linux, Android и iOS, в саму операционную систему). Автоматизация этих процессов обновления варьируется от полностью автоматической до инициируемой и управляемой пользователем. Norton Internet Security представляет собой пример системы с полуавтоматическим методом получения и установки обновлений как для определений антивируса, так и для других компонентов системы. Другие программные продукты предоставляют механизмы запросов для определения доступности обновлений.
Отслеживание версий
Системы отслеживания версий помогают пользователю находить и устанавливать обновления программных систем. Например: Каталог программного обеспечения хранит версию и другую информацию для каждого пакета программного обеспечения, установленного в локальной системе. Одним нажатием кнопки открывается окно браузера на веб-страницу обновления приложения, включая автоматическое заполнение имени пользователя и пароля для сайтов, требующих входа в систему. В Linux, Android и iOS этот процесс еще проще, потому что стандартизованный процесс отслеживания версий (для пакетов программного обеспечения, установленных официально поддерживаемым способом) встроен в операционную систему, поэтому отдельные шаги входа, загрузки и выполнения не требуются, поэтому процесс можно настроить на полную автоматизацию. Некоторое стороннее программное обеспечение также поддерживает автоматическое отслеживание версий и обновление определенных программных пакетов Windows.

Роли развертывания

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

Смотрите также

Рекомендации

  1. ^ Роджер С. Прессман Программная инженерия: подход практикующего (восьмое издание)
  2. ^ Рис-Картер, Стивен (13 июля 2018 г.). «Как установить и настроить Ansible в Ubuntu 18.04». DigitalOcean. Архивировано из оригинал 9 июня 2019 г.. Получено 8 июн 2019. Системы управления конфигурацией предназначены для упрощения управления большим количеством серверов для администраторов и рабочих групп. Они позволяют вам управлять множеством различных систем в автоматическом режиме из одного центрального пункта.

внешняя ссылка