NuGet/OpenWrap для развертывания и управления зависимостями во время выполнения

Я полностью понимаю, для чего изначально были созданы и разработаны NuGet/OpenWrap, и как они были адаптированы и применены с тех пор, как были выпущены некоторое время назад.

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

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

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

Лично я не большой поклонник создания установочных пакетов (MSI, Web Installer и т. д.) для каждого уникального решения, так как это скоро выйдет из-под контроля и не очень хорошо масштабируется.

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


person sourishkrout    schedule 04.05.2011    source источник


Ответы (1)


Мы сделали это успешно. OpenWrap можно просто вызвать для обновления пакетов в определенных каталогах. Развертывание приложения — это всего лишь вопрос добавления нового дескриптора с пакетами, которые вы хотите видеть развернутыми, и предоставления openwrap решения за вас.

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

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

Если вы хотите подняться на один уровень выше, вы можете сделать свое приложение составным, используя OpenWrap API и динамически добавляя/удаляя пакеты. У нас есть разрешение сборки во время выполнения.

person SerialSeb    schedule 04.05.2011
comment
Спасибо, Себ. Я ценю ваш быстрый ответ и буду продолжать изучать это! - person sourishkrout; 17.05.2011