Введение
Деятельность, обеспечивающая доступность программной системы для использования.
Развертывание программного обеспечения охватывает все действия, необходимые для обеспечения доступности программной системы для использования. Общий процесс развертывания состоит из нескольких взаимосвязанных действий с возможными переходами между ними. Эти действия могут выполняться как на стороне разработчика, так и на стороне пользователя, или обеими сторонами. Поскольку каждая программная система уникальна, точные процессы и процедуры в рамках каждого действия сложно определить. Поэтому термин "развертывание" следует понимать как общий процесс, который необходимо адаптировать к конкретным требованиям и характеристикам.
История
Когда компьютеры были чрезвычайно большими, дорогими и громоздкими (мейнфреймы и миникомпьютеры), производители часто поставляли программное обеспечение в комплекте с аппаратным обеспечением. Если для установки бизнес-программы на существующий компьютер требовалось вмешательство, это могло потребовать дорогостоящего и трудоемкого визита системного архитектора или консультанта. Для сложных локальных установок корпоративного программного обеспечения это все еще может быть актуально и сегодня. Однако с развитием массового программного обеспечения для новой эры микрокомпьютеров в 1980-х годах появились новые способы распространения: сначала картриджи, затем компакт-кассеты, дискеты, а позже (в 1990-х и далее) оптические носители, интернет и флеш-накопители. Это позволило переложить ответственность за развертывание программного обеспечения на клиента. Однако со временем все больше признавалось, что настройка программного обеспечения клиентом важна, и что она должна иметь удобный пользовательский интерфейс (а не, например, требовать от клиента редактирования записей реестра в Windows). В эпоху до интернета развертывания (и тесно связанные с ними новые выпуски программного обеспечения) неизбежно были дорогостоящими, редкими и сложными процессами. Таким образом, можно утверждать, что распространение интернета сделало возможной разработку программного обеспечения по гибкой методологии. Действительно, появление облачных вычислений и программного обеспечения как услуги означало, что программное обеспечение можно развертывать для большого числа клиентов за считанные минуты через интернет. Это также означало, что графики развертывания теперь обычно определялись поставщиком программного обеспечения, а не клиентами. Такая гибкость привела к появлению непрерывной поставки как жизнеспособного варианта, особенно для менее рискованных веб-приложений. Другие варианты развертывания программного обеспечения включают в себя blue-green развертывание и canary release развертывание.
Деятельность по развертыванию
Выпуск. Выпуск является результатом завершенного процесса разработки и иногда классифицируется как часть процесса разработки, а не процесса развертывания. Он включает в себя все операции по подготовке системы к сборке и переносу на компьютерную систему (или системы), на которой она будет эксплуатироваться в производственной среде. Следовательно, он может включать определение ресурсов, необходимых для работы системы с допустимой производительностью, а также планирование и/или документирование последующих этапов процесса развертывания. Установка и активация. Для простых систем установка подразумевает создание команды, ярлыка, скрипта или службы для запуска программного обеспечения (вручную или автоматически). Для сложных систем это может включать настройку системы, возможно, путем запроса у конечного пользователя информации о предполагаемом использовании или прямого запроса предпочтительной конфигурации, и/или подготовку всех необходимых подсистем к работе. Активация – это запуск исполняемого компонента программного обеспечения в первый раз (не путать с обычным использованием термина "активация" в отношении лицензии на программное обеспечение, которая является функцией систем управления цифровыми правами). В крупных развертываниях программного обеспечения на серверах основная копия программного обеспечения, используемая пользователями в "производственной" среде, может быть установлена на производственном сервере в производственной среде. Другие версии развернутого программного обеспечения могут быть установлены в тестовой среде, среде разработки и среде аварийного восстановления. В сложных средах непрерывной поставки и/или системах Software as a Service различные сконфигурированные версии системы могут даже одновременно существовать в производственной среде для разных внутренних или внешних клиентов (это известно как многопользовательская архитектура), или даже постепенно развертываться параллельно для разных групп клиентов с возможностью отмены одного или нескольких параллельных развертываний. Например, известно, что Twitter использует последний подход для A/B-тестирования новых функций и изменений пользовательского интерфейса. В производственной среде также может быть создана группа "скрытого режима", состоящая из серверов, еще не подключенных к балансировщику нагрузки, для целей blue-green deployment. Деактивация. Деактивация является обратной операцией активации и подразумевает остановку любых уже выполняющихся компонентов системы. Деактивация часто необходима для выполнения других операций развертывания, например, программную систему может потребоваться деактивировать перед обновлением. Практика вывода из эксплуатации редко используемых или устаревших систем часто называется выводом из эксплуатации или прекращением поддержки. Удаление. Удаление является обратной операцией установки. Это удаление системы, которая больше не требуется. Оно также может включать перенастройку других программных систем для удаления зависимостей от удаленной системы. Обновление. Процесс обновления заменяет более раннюю версию всей или части программной системы новой версией. Обычно он состоит из деактивации с последующей установкой. На некоторых системах, таких как Linux при использовании системного менеджера пакетов, старая версия программного приложения обычно также удаляется как автоматическая часть процесса. (Это связано с тем, что менеджеры пакетов Linux обычно не поддерживают одновременную установку нескольких версий программного приложения, если только пакет программного обеспечения не был специально разработан для обхода этого ограничения.) Встроенные механизмы обновления. Механизмы установки обновлений встроены в некоторые программные системы (или, в случае некоторых операционных систем, таких как Linux, Android и iOS, в саму операционную систему). Автоматизация этих процессов обновления варьируется от полностью автоматической до инициируемой и контролируемой пользователем. Norton Internet Security – пример системы с полуавтоматическим методом получения и установки обновлений как для антивирусных определений, так и для других компонентов системы. Другие программные продукты предоставляют механизмы запроса для определения доступности обновлений. Отслеживание версий. Системы отслеживания версий помогают пользователю находить и устанавливать обновления программного обеспечения. Например: Software Catalog хранит информацию о версии и другие данные для каждого программного пакета, установленного на локальной системе. Одно нажатие кнопки открывает окно браузера на веб-страницу обновления приложения, включая автоматическое заполнение имени пользователя и пароля для сайтов, требующих авторизации. В Linux, Android и iOS этот процесс еще проще, поскольку стандартизированный процесс отслеживания версий (для программных пакетов, установленных официальным способом) встроен в операционную систему, поэтому отдельные шаги входа, загрузки и запуска не требуются, и процесс может быть настроен на полную автоматизацию. Некоторые сторонние программы также поддерживают автоматическое отслеживание и обновление версий для определенных пакетов Windows.