Мы небольшая компания по разработке программного обеспечения для веб (~ 10 человек). В настоящее время каждый разработчик работает на своей локальной машине (некоторые окна, некоторые Ubuntu), используя локальный apache. У нас есть общий ресурс samba для общих файлов и центральных репозиториев SVN.
Я хотел бы в будущем централизовать нашу инфраструктуру, чтобы все работали на центральном сервере. Есть 2 варианта:
Оба решения нуждаются в быстрой сети и мощном сервере. На данный момент я бы предпочел использовать xrdp для доступа к удаленному рабочему столу. Какой у вас опыт? Есть ли недостатки у одного подхода перед другим? Варианты, которые я пропустил? Есть ли здесь кто-нибудь, кто успешно виртуализировал команду разработчиков программного обеспечения?
Описанные вами минусы не совсем актуальны в современном ИТ-мире. Оборудование довольно дешевое, а окупаемость инвестиций при использовании виртуализации высока и быстро. Обновлениями и управлением программного обеспечения легко управлять с помощью повара или марионетки. Проблемы безопасности локализованы на одной виртуальной машине, а не на всей терминальной машине, и, если вы выберете правильное решение, безопасность на уровне обновления будет осуществляться поставщиком. Кстати, чтобы ускорить доступ к репозиторию, используйте git - ваши разработчики влюбятся в него, как только они преодолеют первоначальный шок.
С терминальной машиной управление ресурсами может оказаться довольно сложным, с виртуальными машинами вы не только получите лучшее распределение ресурсов, но и получите лучшее обоснование для получения лучшего оборудования.
У нас есть 3 разработчика, и мы используем удаленный рабочий стол (за исключением того, что мы фактически не используем RD, потому что это веб-сайт, который мы разрабатываем, поэтому мы разрабатываем код, используя «удаленный просмотр файлов» в Eclipse, Notepad ++ или Coda, и просматриваем сайт через Интернет). Я думаю, что это хорошо работает, и преимущества одновременных обновлений огромны. Мы не так озабочены безопасностью в команде, поэтому я не могу говорить об этом. Перезагрузка Apache занимает 2,5 секунды, так кого это волнует?
редактировать И я использую окна, а двое других - Mac. Это отлично работает для всех.
Пытаться NoMachine (NX). У него есть как бесплатные предложения, так и коммерческие решения. Он легкий, быстрый, имеет довольно универсальный набор клиентских приложений и использует ssh в качестве транспорта. При необходимости вы также можете комбинировать NoMachine с виртуальными системами для получения различных уровней изоляции. Вы можете запустить NX на сервере, работающем в текстовом режиме. Пока установлены элементы графического интерфейса, пользователи будут получать X-сеансы в полноэкранном режиме (которые также могут охватывать мониторы).
Подход, при котором каждому предоставляется собственная виртуальная машина, намного менее эффективен с точки зрения памяти, чем общая система, но он значительно упрощает возможность одновременного запуска разных конфигураций Apache. Также проще управлять масштабируемостью - при необходимости вы можете перенести виртуальные машины на новое оборудование. Хотя вы можете не ожидать, что внезапно наберете больше сотрудников, оба этих подхода означают, что вы не можете легко провести тестирование масштабируемости производительности в своих приложениях (поэтому возможность перенести пользователя на выделенный компьютер на пару дней звучит как отличная идея).
Есть несколько отличных инструментов для управления «кластерами», большинство из которых применимо для обслуживания нескольких настольных компьютеров, поскольку вы уже используете Ubuntu, Canonical's Landscape это очевидный выбор. Однако, если бы это был я, я бы пошел со стандартной сборкой, а затем переместил бы домашний каталог пользователей за пределы виртуальной машины на общий ресурс NFS. И какой-то хитрый план для / etc / sudoers, чтобы пользователь мог получить root-доступ на своей «собственной» машине.