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

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Развёртывание программного обеспечения (развёртывание ПО; англ. Software deployment) — действия, которые делают программную систему готовой к использованию[1]. Данный процесс является частью жизненного цикла программного обеспечения.

Определение

В целом процесс развертывания состоит из нескольких взаимосвязанных действий с возможными переходами между ними. Эта активность может происходить как со стороны производителя, так и со стороны потребителя. Поскольку каждая программная система является уникальной, трудно предсказать все процессы и процедуры во время развертывания. Поэтому «развертывание» можно трактовать как общий процесс, соответствующий определенным требованиям и характеристикам. Развертывание может осуществляться программистом и в процессе разработки программного обеспечения[2].

История

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

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

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

Мероприятия по развертыванию

Отпускать

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

Установка и активация

Для простых систем установка включает в себя создание некоторой формы команды, ярлыка, сценария или службы для выполнения программного обеспечения (вручную или автоматически). Для сложных систем это может включать в себя конфигурирование системы - возможно, задавая конечным пользователям вопросы о ее предполагаемом использовании или непосредственно спрашивая их, как они хотели бы, чтобы она была сконфигурирована - и/или делая все необходимые подсистемы готовыми к использованию. Активация — это первый запуск исполняемого компонента программного обеспечения (не путать с общепринятым использованием термина «активация» в отношении лицензии на программное обеспечение, которая является функцией систем управления цифровыми правами). При более крупных развертываниях программного обеспечения на серверах основная копия программного обеспечения, используемая пользователями — «рабочая» — может быть установлена на рабочем сервере в производственной среде. Другие версии развернутого программного обеспечения могут быть установлены в тестовой среде, среде разработки и среде аварийного восстановления. В сложных средах непрерывной поставки и/или системе «программное обеспечение как услуга» версии системы с различной конфигурацией могут даже существовать одновременно в производственной среде для разных внутренних или внешних клиентов (это называется многопользовательской архитектурой) или даже постепенно развертываться параллельно для разных групп клиентов с возможностью отмены одного или нескольких параллельных развертываний. Например, известно, что Twitter использует последний подход для A/B-тестирования новых функций и изменений пользовательского интерфейса. «Скрытая активная» группа также может быть создана в рабочей среде, состоящей из серверов, которые еще не подключены к рабочей подсистеме балансировки нагрузки, для целей сине-зеленого развертывания.

Дезактивация

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

Удаление

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

Обновлять

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

Встроенное обновление

Механизмы установки обновлений встроены в некоторые программные системы (или, в случае некоторых операционных систем, таких как Linux, Android и iOS, в саму операционную систему). Автоматизация этих процессов обновления варьируется от полностью автоматической до инициируемой и контролируемой пользователем. Norton Internet Security является примером системы с полуавтоматическим методом получения и установки обновлений как для определений антивируса, так и для других компонентов системы. Другие программные продукты предоставляют механизмы запросов для определения доступности обновлений.

Отслеживание версий

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

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

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

  • В подготовительных средах:
― разработчики приложений (Процесс разработки программного обеспечения)
― инженеры по сборке и выпуску (Разработка релизов[англ.])
― менеджеры по выпуску (Управление релизами[англ.])
― координаторы развертывания (DevOps)
  • В производственных средах:
системный администратор
администратор базы данных
― координаторы выпусков (DevOps)
― менеджеры операционных проектов (ITIL)

См. также

Ссылки

Источники

  1. Roger S. Pressman Software engineering: a practitioner's approach (eighth edition)
  2. Rees-Carter, Stephen How to Install and Configure Ansible on Ubuntu 18.04. DigitalOcean (13 July 2018).