В настоящее время я готовлю новую небольшую виртуальную среду для разработки и тестирования с Windows Server + SQL Server + AD + Sharepoint + Exchange + IIS (ASP.NET) + Biztalk +? Для небольшой (до 5) группы разработчиков.
Каковы плюсы и минусы разных подходов, например. разделение на разные машины или упаковка всего на одну машину.
По вашему опыту, каковы лучшие практики, которым я должен следовать с точки зрения архитектуры и размещения различных систем / серверов. Чем поделиться и что разделить на человека.
Я хотел бы добиться некоторой гибкости для процесса разработки и тестирования (чтобы члены команды не наступали друг другу на пятки) и ограничить административные усилия, необходимые для распространения настроек, интеграции рабочих элементов и возврата изменений, когда что-то выходит из строя.
Это не должна быть повседневная рабочая среда разработки, скорее среда тестирования разработчика второго уровня, и еще не среда тестирования интеграции или обеспечения качества с формальным процессом изменения.
ИМО, два пограничных решения:
Какую золотую середину вы бы порекомендовали и почему?
Это действительно зависит от того, как разработчики будут использовать это и как часто они могут что-то ломать. Если каждый из ваших разработчиков должен развертывать свой код в тестовой среде каждый день и, вероятно, перезапишет настройки тестирования других разработчиков, вы, вероятно, захотите рассмотреть возможность предоставления каждому разработчику своей собственной тестовой среды. То же самое происходит, если ошибка в коде одного разработчика может повлиять на всех других разработчиков, выполняющих там работу, может ли он заблокировать весь сервер и т. Д. Если тестировщики хотят, чтобы в их среде что-то вроде настройки Exchange и AD было их собственные требования, то опять же, им, вероятно, понадобится собственный тестовый бокс.
Тем не менее, если каждый разработчик запускает свой собственный сайт в IIS, который работает в собственном пуле приложений и нуждается только в общем доступе к ресурсам, таким как Exchange и AD, то, возможно, в одной общей среде. Вы можете разделить AD на подразделения, чтобы такие вещи, как создание и удаление учетной записи пользователя, не влияли на других пользователей и т. Д.