Как синхронизировать развернутый код на нескольких клиентских интерфейсах BizTalk?

У нас есть несколько серверов приложений BizTalk 2006, и я считаю практически невозможным синхронизировать версии наших проектов на них. Это утомительный процесс развертывания пакетов MSI, их импорта, сопоставления файлов в GAC, развертывания некоторых изменений реестра, и если один шаг пропущен или кто-то развернул обновленную копию библиотеки DLL непосредственно на одном сервере, а не на другом, нет простой способ сказать.

Как другие гарантируют, что копии программного обеспечения между двумя серверами имеют одинаковую версию?


Немного предыстории:

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

Этим утром я сделал папку diff в GAC, а также папку, в которой хранятся копии локальных дисков библиотек DLL для нашего развернутого проекта (C:\OurProject\ на обоих серверах), и все совпадает - одинаковые размеры файлов, одинаковые метки времени. Однако, как только я включил второй набор служб, стало очевидно, что Server2 использует старую версию DLL проекта - из следующих трех обработанных файлов два имели нормальные результаты, а один явно устарел.

Пожалуйста, помогите мне избежать аневризмы.

2 ответа

Решение

Одна вещь, которую вы, возможно, захотите изучить, - это структура развертывания BizTalk.

В настоящее время мы создаем новую среду с BizTalk 2009, и я начал с набора сценариев MSBuild, которые обрабатывают экспорт исходников из SubVersion, сборку и развертывание сборок с использованием BTSTask.

Конечно, BTSTask не хватает функциональности (запуск / остановка приложений), но, по крайней мере, для BizTalk 2006 есть BTSControl.

Мы используем скрипт автоматической сборки, конечным результатом которого является MSI с файлами привязки для Dev/Stage/Prod. Все освобожденные файлы привязки хранятся в общем ресурсе и используются для загрузки сервера BizTalk вручную. Сначала приложение останавливается, MSI выполняется на обоих серверах, а затем импортируется MSI. При импорте мы указываем среду для привязок и вуаля. У нас не было проблем с потерей синхронизации.

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

Другие вопросы по тегам