Назад | Перейти на главную страницу

Обеспечение среды разработки в облаке

Я планирую среду разработки в облаке. Моя целевая платформа - Microsoft .Net и предпочтительный облачный идентификатор Amazon AWS (хотя я открыт для предложений).

Я планирую купить Экземпляр с большим объемом памяти по запросу и развернуть в ней одну гостевую виртуальную машину для каждого разработчика. Вот мои вопросы:

Спасибо.

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

Наиболее распространенное решение - это что-то вроде этого:

  • Каждый разработчик работает непосредственно на своем собственном локальном ПК, и у него установлен набор зависимостей по мере необходимости (Visual Studio, .NET, IIS Express, SQL Express и т. Д.).
  • Код помещается в центральный репозиторий (Subversion, что угодно).
  • Сервер непрерывной интеграции (CI) (FX Hudson, TeamCity) извлекает код из репозитория, собирает его, запускает модульные тесты и, возможно, устанавливает его непосредственно на тестовый или промежуточный сервер.

Ваш CI-сервер, тестовый и промежуточный серверы могут с радостью жить в облаке (проще с чем-то вроде Виртуальное частное облако). То же самое и с вашим репозиторием кода, но если вы не предпочитаете его локально, вам следует просто передать его на аутсорсинг в размещенную службу Subversion / Git.

Редактировать: Вы можете протестировать его (это одно из преимуществ облачных вычислений - вы можете развернуть сервер за считанные минуты и проверить, как он на самом деле работает для вас). Но как насчет того, чтобы запустить собственный сервер Windows 2008 R2 и вместо этого настроить виртуальные машины на этом сервере? Почти нулевая задержка в сети, и это совсем несложно.

Прежде чем мы пойдем дальше - почему бы вам спроси своих разработчиков как они привыкли делать что-то и что предпочитают ...

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

Если вы ДЕЙСТВИТЕЛЬНО этого хотите, я бы порекомендовал где-нибудь выделить выделенный сервер и просто подключиться к нему через VPN.

Если вы ищете преимущества облака, вам, вероятно, нужно выбрать подходящий модуль (один ящик на разработчика, один ящик на команду и т. Д.), А затем выбрать размер экземпляра, соответствующий этим потребностям. Чтобы воспользоваться преимуществами настройки облака здесь, вам также необходимо вращать экземпляры вверх / вниз в зависимости от потребностей. Шаблоны использования команды разработчиков действительно не подходят для этой настройки.

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