У меня есть около 3 серверов, которым, вероятно, почти 10 лет, и все они используют код, который можно считать наихудшим для программирования.
Я боюсь вносить изменения в эту вещь (производственные серверы всегда были платформой разработки до того, как я сюда попал, и я действительно хочу это изменить), но у нас нет реального способа эмулировать сервер, кроме как использовать его.
Итак, мы должны изменить веб-сайт, на котором он работает, и я действительно не хочу говорить «Упс». Совет о том, как сделать что-то вроде переноса этих трех зверей в виртуальные машины на моем рабочем столе или что-то, где я могу безопасно выполнять некоторую работу по разработке, не чувствуя себя звездой Mission Imposable, свисающей с нитки над лазерными лучами, и пот, капающий с моих лицо, как я аккуратно делаю свою работу?
Чтобы дать вам представление о том, что я имею в виду под наихудшими практиками ... у нас есть 14 копий «основного» блока кода, монстр из 14 000 строк кода «пожалуйста, повторите себя», над которым семь разработчиков работали более десяти лет, все сидят в корневом каталоге производственного веб-сервера. Мне нужно это изменить, мне нужно внести серьезные исправления, но это как играть в кальто, когда меня застреливают наркотиками, изменяющими сознание. Помогите?
Серверы - это сервер Windows2000, база данных - MSSQL 2008, серверы работают с IIS с PHP и ASP. Сотня приложений, о которых я ничего не знаю, разделяют серверное пространство. Один сервер управляет нашей AD. Sharepoint существует, но не используется. Там существует какое-то программное обеспечение для входа в систему, о котором никто не знает. По какой-то причине Postgres запущен. Там есть программное обеспечение брандмауэра. Exchange 2008 там. Там есть антивирусный сервер ... Честно говоря, я просто хочу скопировать сайт.
У VMware есть инструмент под названием Конвертер VMware vCenter специально для перевода существующих физических машин в виртуальную среду.
Для серверов, предшествующих XP / Server 2003, я бы посмотрел на использование чего-то вроде Norton Ghost или Acronis для создания резервной копии, а затем восстановления на виртуальном оборудовании.
Прежде чем рисковать своим рабочим сервером сложными решениями P2V, вы можете попробовать клонировать рабочий сервер с помощью Drive Snapshot. Вкратце, необходимые шаги:
Имейте в виду, что создание образов / клонирование / p2v требует очень много ресурсов жесткого диска. Попробуйте сделать это в непиковый период сервера, чтобы минимизировать влияние на производительность существующих приложений.
Сделайте образ сервера (Clonezilla, ghost4unix). Попробуйте с помощью VMware Converter скопировать машину. Если это не работает, попробуйте использовать образ Clonezilla для восстановления на виртуальную машину. (Или вы используете dd plus netcat).
Затем сделайте уборку. Переместите каждую производственную службу на новую виртуальную машину. И используйте эти виртуальные машины в качестве производственных серверов. Таким образом вы проверите, что контролируете новые серверы. Документируйте все. Для каждой производственной виртуальной машины создайте виртуальную машину контроля качества и виртуальную машину разработчика. Разработчики будут иметь доступ исключительно к виртуальным машинам Dev. Не давайте им права администратора. Вы будете использовать виртуальные машины QA для тестирования их нового кода. Возьмите код для миграции в QA и развертывания в Prod только из системы контроля версий.
Кроме того, если один из этих серверов является контроллером домена, НЕ виртуализируйте его копию в среде, которая имеет любую возможность взаимодействовать с производственной машиной (или даже с сетью), с которой он был клонирован. ПЛОХО ПЛОХО ПЛОХО ПЛОХО. Ваша среда разработки в любом случае должна быть отдельной, но я думаю, что это стоит повторить.
Если у вас есть запасная система, вы можете установить на нее vmware и использовать его преобразователь p2v для создания виртуальной копии вашей физической машины. Однако есть пара уловок:
В процессе преобразования агент устанавливается на физическом компьютере, и, поскольку вы используете Windows 2000, вам необходимо перезапустить сервер после установки агента.
После того, как ваша виртуальная машина запущена и работает, я бы предложил отключить физическую машину, пока вы не поместите ее на другой IP-адрес и другое имя хоста, чтобы предотвратить конфликты IP-адресов.
После завершения p2v вам необходимо настроить вашу виртуальную машину на использование сетевых интерфейсов vmware вместо тех, которые она скопировала с физического сервера. следить эти инструкции по очистке интерфейсов, которых больше нет.
Конвертер vCenter сделает свое дело, особенно с холодным клонированием, о чем упоминал entens и Кристофер. Запланируйте время простоя, клонируйте все машины, затем запустите их как виртуальные машины в полностью отдельный сеть. Если есть DHCP-сервер, предоставляющий аренду некоторых из этих производственных машин, убедитесь, что он также клонирован.
Основная проблема - это возможность клонировать используемую вами машину.
Я добился хороших результатов, используя Acronis TrueImage на Windows 2000 Server, а затем преобразовал изображение с помощью VmWare Converter. Если возможно, вы можете сделать это за ночь в самый мертвый момент. Загрузочный компакт-диск Acronis может сохранять образ по сети, поэтому вы можете быть уверены, что ничего не трогаете на исходном сервере.
Для восстановления и работы, конечно, ДЕЙСТВИТЕЛЬНО ОБЯЗАТЕЛЬНО работаете как можно дальше от вашей производственной LAN.
Просто поставьте одинокий компьютер с vmware и сервером, который вы преобразовали, и, если вам нужно попробовать разные клиентские соединения, просто подключите один переключатель, к которому можно подключать и сервер, и клиентов, и убедитесь, что НИ ОДИН никогда не связывал его.
Следуя моему совету и советам всех других пользователей, вы сможете настроить систему, которая позволит вам «играть» столько, сколько вы хотите, и очистить код.
Дважды проверяйте каждый отрывок, будьте спокойны и точны, и никто не пострадает :)