Размещение программного обеспечения в больших сетевых системах

Иллюстрации

Показать все

Изобретение относится к области развертывания программного обеспечения. Техническим результатом является повышение надежности развертывания программного обеспечения в серверных узлах в больших сетевых системах. Обеспечивается развертывание программного обеспечения в узлах сервера в больших сетевых системах с использованием развертывания на основе образов. Главным образом неизменный образ обеспечивается на центральной службе и передается из центральной службы в узлы сервера. Образ включает в себя базовый образ, который является неизменным, и дополнительный образ, который является перезаписываемым и обеспечивает в базовую часть состояние, специфическое для роли и/или специфическое для узла. Когда узел сервера принимает образ из центрального сервера, узел сервера сохраняет образ нетронутым без установки. Затем узел сервера начинает исполнять программное обеспечение непосредственно из сохраненного образа. 3 н. и 13 з.п. ф-лы, 5 ил.

Реферат

Предшествующий уровень техники

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

Сущность изобретения

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

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

Краткое описание чертежей

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

Фиг.1 - блок схема иллюстративной вычислительной среды, подходящей для использования в реализации настоящего изобретения,

Фиг.2 - блок схема иллюстративной системы, в которой могут применяться варианты осуществления настоящего изобретения,

Фиг.3 - блок схема иллюстративной внутриузловой кэш-памяти, сохраняющей образы программного обеспечения для многочисленных ролей и многочисленных версий согласно вариантам осуществления настоящего изобретения,

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

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

Подробное описание предпочтительных вариантов осуществления

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

Как указано ранее, варианты осуществления настоящего изобретения обеспечивают развертывание программного обеспечения в серверных узлах в больших сетевых системах, используя развертывание на основе образа. Здесь термин «образ» относится к любому замкнутому пространству имен.

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

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

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

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

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

Как показано на фиг.1, вычислительное устройство 100 включает в себя шину 110, которая непосредственно или опосредованно соединяет следующие устройства: запоминающее устройство 112, один или несколько процессоров 114, один или несколько компонентов 116 представления, порты 118 ввода/вывода, компоненты 120 ввода/вывода и иллюстративный источник 122 питания. Шина 110 может представлять собой одну или несколько шин (таких как адресная шина, шина данных или их комбинация). Хотя различные блоки фиг.1 показаны для ясности линиями, в действительности, схематическое изображение различных компонентов не является таким четким, и метафорически, точнее линии могут быть серыми и размытыми. Например, кто-то может рассматривать компонент ввода/вывода как компонент представления, такой как устройство отображения. Также процессоры имеют запоминающее устройство. Авторы осознают, что такова природа данного уровня техники, и повторяют, что схема фиг.1 является просто иллюстрацией для примерного вычислительного устройства, которое может быть использовано в связи с одним или несколькими вариантами осуществления настоящего изобретения. Не делается различия между такими категориями как «рабочая станция», «сервер», «ноутбук», «карманное устройство» и т.п., поскольку считается, что все они подразумеваются, как находящиеся в рамках фиг.1 и упоминаются как «вычислительное устройство».

Вычислительное устройство 100 обычно включает в себя множество считываемых компьютером носителей, которые могут представлять собой любой доступный носитель, к которому может иметь доступ вычислительное устройство 100, и включает в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители. Например, считываемые компьютером носители могут содержать носители данных и средства связи, но, не ограничиваясь ими. Компьютерные носители данных включают в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители, осуществляемые любым способом или технологией для хранения информации, как например, считываемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя оперативное запоминающее устройство (RAM, ОЗУ), постоянное запоминающее устройство (ROM, ПЗУ), флэш-память или любую другую технологию памяти, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), постоянное запоминающее устройство на компакт-диске (CD-ROM), цифровые многофункциональные диски (DVD) или другие оптические запоминающее устройства на дисках, магнитные кассеты, накопители на магнитных дисках или любые другие магнитные запоминающие устройства, другие типы энергозависимой и энергонезависимой памяти или любой другой носитель, который может быть использован для сохранения желательной информации, к которым может иметь доступ вычислительное устройство 100, но, не ограничиваясь ими. Средства связи обычно осуществляют считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, как например, несущая волна или другой транспортный механизм, и включает в себя любые средства доставки информации. Термин "модулированный информационный сигнал" означает сигнал, который имеет одну или несколько его характеристик, устанавливаемых или изменяемых так, чтобы кодировать информацию в сигнале. Например, средства связи включают в себя проводные средства связи, такие как проводная сеть или прямое проводное соединение, и беспроводные средства связи, такие как акустические, радиочастотные (РЧ, RF), инфракрасные и другие средства связи, но, не ограничиваясь ими. Комбинации любых из упомянутых средств также входят в рамки понятия - считываемые компьютером носители.

Запоминающее устройство 112 включает в себя считываемые компьютером носители в форме энергозависимой и/или энергонезависимой памяти. Запоминающее устройство может быть, съемным, несъемным, или их комбинацией. Иллюстративные устройства аппаратных средств включают в себя твердотельную память, жесткие диски, оптические носители и т.д. Вычислительное устройство 100 включает в себя один или несколько процессоров, которые считывают данные с различных логических объектов, таких как запоминающее устройство 112 или компоненты 120 ввода/вывода. Компонент(-ы) 116 представления представляют индикации данных пользователю или другому устройству. Иллюстративные компоненты представления включают в себя устройство отображения, громкоговоритель, компонент печати, компонент вибрации и т.д.

Порты 118 ввода/вывода позволяют логически соединять вычислительное устройство 100 к другим устройствам, включая компоненты 120 ввода/вывода, некоторые из которых могут быть встроенными. Иллюстративные компоненты включают в себя микрофон, джойстик, игровую клавишную панель, спутниковую сферическую антенну, сканер, принтер, беспроводное устройство и т.д.

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

Среди других компонентов, которые не показаны, система 200 может вообще включать в себя центральную службу 202, серверные узлы 204 и сеть 206. Каждый из компонентов системы 200, включая центральную службу 202 и серверные узлы 204, может содержать вычислительное устройство любого типа, как например, вычислительное устройство 100, описанное со ссылкой на фиг.1. Компоненты могут поддерживать связь друг с другом через сеть 206, которая может включать в себя одну или несколько локальных вычислительных сетей (LAN) и/или глобальных вычислительных сетей (WAN), но, не ограничиваясь ими. Такие сетевые операционные среды - обычное дело в офисах, корпоративных сетях, интрасетях или интернете. Должно быть понятно, что любое количество центральных служб, серверных узлов и сетей может быть использовано в системе 200 в рамках настоящего изобретения. Кроме того, хотя многие другие компоненты системы 200 не показаны, специалистам должно быть понятно, что такие компоненты и их межкомпонентные соединения хорошо известны. Соответственно, дополнительные детали, касающиеся компонентов, не показанных в системе 200, дополнительно не раскрываются здесь.

Центральная служба 202 может включать в себя одно или несколько вычислительных устройств (таких как вычислительное устройство 100 фиг.1) для координации развертывания программного обеспечения (ОС и/или прикладных программ) в серверных узлах 204 в системе 200. Центральная служба 202 отвечает за построение и хранение образов. Дополнительно, центральная служба 202 отвечает за передачу образов в серверные узлы 204.

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

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

Каждый образ программного обеспечения (например, образ операционной системы или образ прикладной программы) в вариантах осуществления включает в себя базовый образ и дополнительный образ. Базовый образ является неизменным (или только для чтения), тогда как дополнительный образ является перезаписываемым. Дополнительный образ служит, чтобы обеспечивать для базового образа состояние, специфическое для каждой роли и/или специфическое для каждого узла. Специфические для роли и/или специфические для узла данные могут быть записаны в дополнительный образ в центральной службе 202 перед развертыванием и/или на отдельном серверном узле 204 после развертывания. Базовый образ и дополнительный образ могут поддерживаться отдельно на центральной службе 202 и объединяться во время развертывания.

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

В одном варианте осуществления настоящего изобретения, образы сохраняются с использованием формата виртуального жесткого диска (VHD) Microsoft®, который определяет виртуальный жесткий диск машины, который может находиться в файловой системе родительского главного компьютера, заключенной в одном файле. Формат VHD диска обеспечивает дифференцирующие диски, в которых один логический диск поддерживается в двух файлах: «базовый» VHD файл и дополнительный VHD файл. В вариантах осуществления настоящего изобретения, общее состояние пребывает в базовом VHD диске, тогда как состояние для роли и состояние для узла пребывает в дополнительном VHD диске. Базовый VHD диск является диском только для считывания, и любые изменения, производимые в эмулированном диске, записываются на дополнительный VHD диск. Хотя здесь особенно упоминается VHD формат, специалистам должно быть понятно, что в рамках вариантов осуществления настоящего изобретения могут быть использованы другие технологии (например, WIM).

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

- Отсутствует фаза установки на серверных узлах 204, так что, как только образ развертывается на серверном узле 204, узел может быстро выполнить загрузку предоставленного программного обеспечения.

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

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

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

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

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

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

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

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

Как упоминалось ранее, центральная служба 202 включает в себя компоненты для построения и обслуживания развертываемых образов. Образы строятся автономно (в режиме офлайн) (то есть не на активных серверных узлах 204) центральной службой 202.

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

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

В некоторых вариантах осуществления, центральная служба 202 также обеспечивает возможность для зависящих от узла параметров настройки конфигурации операционной системы, как, например, параметры настройки, задаваемые разработчиком прикладных программ. Кроме того, могут иметь место параметры настройки конфигурации операционной системы, зависящие от узла, генерируемые центральным сервером 202. Эти параметры настройки развертываются в серверном узле 204 наряду с образом операционной системы и применяются на узле 204 к копии дополнительного образа, зависящего от роли, для создания дополнительного образа, зависящего от узла. Узел 204 выполняет загрузку операционной системы непосредственно из этого образа.

Образы прикладной программы аналогично включают в себя базовый образ и дополнительный образ. В одном варианте осуществления, разработчики прикладных программ могут обеспечивать явное описание их исполняемых файлов и параметров настройки конфигурации, и это описание используется для построения базового образа для прикладной программы. Зависящие от узла параметры настройки конфигурации прикладной программы развертываются в серверном узле 204 наряду с базовым образом и применяются на узле 204 для создания зависящего от узла дополнительного образа. Серверный узел 204 начинает прогонять прикладную программу непосредственно из этого образа.

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

Как указывалось ранее, образы, построенные на центральной службе 202, развертываются в серверных узлах 204. Другими словами, образы могут переноситься из центральной службы 202 в различные узлы 204 в пределах системы 200. В некоторых вариантах осуществления, из-за того, что базовые образы не содержат состояние, зависящее от узла, одни и те же базовые образы операционной системы и прикладной программы могут быть использованы многими серверными узлами 204. Это означает, что когда многие узлы 204 должны снабжаться в одно и то же время, одинаковые файлы нужно копировать много раз. Чтобы уменьшить использование ширины полосы сети, варианты осуществления настоящего изобретения используют многоадресный протокол, чтобы посылать файл во множество узлов одновременно.

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

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

В некоторых вариантах осуществления, когда развертывается новая версия образа, предыдущая версия удерживается в кэш-памяти образов на серверном узле 204. Если проблема возникает во время развертывания последовательности, например, если после активации образа на 500 из 1000 серверных узлов 204, замечается, что служба ведет себя ненормально, узлы 204, которые уже продвинулись вперед, могут очень быстро развертываться обратно путем выполнения перезагрузки предыдущего образа. Нет необходимости скачивать предыдущий образ заново или переустанавливать предыдущий образ. Как только проблема улажена, развертывание можно повторить. (Следует заметить, что если наладка не влечет за собой изменения в новом образе, то нет необходимости повторно копировать новый образ).

Варианты осуществления также содействуют возвращению серверного узла 204 обратно в последнее известное хорошее состояние. Изменения, которые выполняются в отношении объема операционной системы или объема прикладной программы на узле 204, сохраняются в дополнительном образе. Исходный дополнительный образ может записываться в памяти перед тем, как активируется роль, и если возникают проблемы из-за изменений, то исходный дополнительный образ можно восстановить, не копируя из сервера развертывания (то есть центральной службы 202).

Дополнительно, варианты осуществления настоящего изобретения позволяют серверным узлам 204 легко переключать роли, используя образы в кэш-памяти. В частности, образы, соответствующие более, чем одной роли, могут быть помещены в кэш-память на заданном серверном узле 204. Соответственно, переключение узла 204 с одной роли на другую является примером перезагрузки узла 204. Для выполнения переключения нет затрат переустановки.

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

Фиг.3 иллюстрирует блок схему, показывающую пример содержимого кэш-памяти 300 образов на узле, но, не ограничиваясь этим. В настоящем примере, образы сохраняются в кэш-памяти для двух ролей. Например, роль 1 может позволить серверному узлу обеспечивать услуги электронной почты, тогда как роль 2 может позволить серверному узлу обеспечивать службы поискового механизма. Как указывалось ранее, записывая образы в кэш-память для обеих ролей, серверный узел может легко и быстро переключаться от одной роли к другой, просто выполняя перезагрузку узла. Дополнительно, имеется две версии роли 1, версия 1.0 и 1.1., тогда как для роли 2 в кэш-памяти имеется только одна версия 1.1. Как описано выше, записывая в кэш-память многочисленные версии конкретной роли, серверный узел при необходимости может быстро возвращаться к предыдущей версии. Например, если версия 1.1 роли 1 является активной ролью, то серверный узел может быстро возвращаться к версии 1.0 роли 1 посредством перезагрузки, поскольку предыдущая версия сохраняется в кэш-памяти.

Как показано на фиг.3, версия 1.0 роли 1 включает в себя базовый образ 302 операционной системы в.1.0, дополнительный образ 304 операционной системы в.1.0, базовый образ 306 прикладной программы 1 в.1.0 и дополнительный образ 308 прикладной программы 1 в.1.0. Версия 1.1 роли 1 включает в себя базовый образ 312 операционной системы в.1.1, дополнительный образ 314 операционной системы в.1.1, базовый образ 316 прикладной программы 1 в.1.1 и дополнительный образ 318 прикладной программы 1 в.1.1. Версия 1.1 роли 2 включает в себя базовый образ 312 операционной системы в.1.1, дополнительный образ 324 операционной системы в.1.1, базовый образ 326 прикладной программы 2 в.1.1 и дополнительный образ 328 прикладной программы 2 в.1.1. Следует заметить, что обе версии версия 1.1 роли 1 и версия 1.1 роли 2 используют базовый образ 312 операционной системы в.1.1, так что только одна копия этого образа сохраняется в кэш-памяти и может совместно использоваться.

На фиг.4 изображена блок схема последовательно