Рекомендации по инструментам для распространения программного обеспечения

Рекомендации по инструментам для распространения программного обеспечения

Я пишу программное обеспечение для компании с глобальными сайтами распространения. Программное обеспечение работает на различных серверах Windows (server 2003), расположенных по всему миру.

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

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

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

Это очень ручная, утомительная, трудоемкая и подверженная ошибкам операция.

Мне было интересно, может ли кто-нибудь порекомендовать программное обеспечение для автоматизации наших процедур выпуска?

Мне бы очень хотелось иметь функцию «отката» и возможность планировать релизы.

Приветствуются все рекомендации.

решение1

Решение Microsoft — SCCM, ранее SMS. Какой у вас бюджет? Оно не бесплатное, но вы и не говорили, что вам нужно недорогое решение.

решение2

Я использовал CFengine, чтобы добиться этого, но это было на Linux. Я думаю, что CFEngine ТОЖЕ поддерживает Windows, но я думаю, что это платная версия. Вы можете использовать ее для запуска скриптов или рецептов на всех серверах.

решение3

Если вы ищете бесплатное решение, вы можете попробоватьРазвертывание PDQ(наш продукт). Он ограничивает вас выполнением только одного действия на развертывание, но вы можете легко использовать пакетный скрипт для выполнения нескольких шагов и просто использовать PDQ Deploy для запуска .bat на ваших серверах.

решение4

я используюУстановка Inno(бесплатное ПО) для такого рода вещей. Хотя на первый взгляд это выглядит как не более чем простой установщик, на самом деле это очень открытый язык сценариев, который может выполнять очень сложные задачи. Делать то, что вы описываете, проще простого. Единственный недостаток для меня в том, что скрипты основаны на Pascal, на котором я обычно не программирую.

Связанный контент