Насколько болезненной может быть миграция Linux на OpenSolaris?
-
06-09-2019 - |
Вопрос
У нас есть бизнес-приложение, которое в основном работает на независимом от ос стеке (tomcat + java + mysql), но мы всегда запускаем его redhat или centos.
Есть клиент, который настаивает на запуске его на opensolaris по своим собственным причинам (дорогостоящее соглашение о поддержке everything-is-included с Sun).
Насколько болезненной может быть такая миграция?У нас есть множество конфигурационных файлов и сценариев поддержки, таких как:
- апач
- соединитель apache/ tomcat
- взаимодействие по электронной почте с postfix
- запуск/остановка индивидуального сервиса
- пара заданий cron (резервное копирование, мониторинг)
- разные пользователи и разрешения (java, mysql, электронная почта, резервное копирование ...)
Наш процесс сборки выдает .tar.gz файл с нашим бизнес-кодом + несколько сценариев оболочки, которые редактируют все файлы конфигурации ОС.
Любой предыдущий опыт по этому поводу.
Решение
Самые большие проблемы будут связаны с не-POSIX (нестандартными) опциями, которые вы использовали для инструментов GNU, предоставляемых в Linux, которых нет в стандартных командах Solaris.Вы можете решить, что перенести соответствующие инструменты из набора GNU проще, чем модифицировать вашу систему.Если вы дополнили код абсолютными путями к командам (/usr/bin/ls
) но если вы решите использовать вместо этого версии GNU, вы должны найти способ их исправить.Я был бы крайне осторожен при замене версий OpenSolaris версиями GNU;вы не знаете, когда вы нарушите что-то, на что опирается система.Итак, вы бы поместили команды GNU в отдельный каталог - вероятно, нет /usr/local
потому что заполнять это должны владельцы компьютеров, а не вы как разработчик приложений, и позаботьтесь о том, чтобы это использовалось вместо системных команд.(Примечание:на Солярисе, /bin
является символической ссылкой на /usr/bin
;Я предполагаю, что то же самое верно и для OpenSolaris.) AFAIK, Postfix не является стандартным для OpenSolaris, поэтому вам также нужно убедиться, что он установлен.
Все это выполнимо - нет ничего непреодолимого.Но многое зависит от вашей кодовой базы.
Другие советы
Мы запускаем оба, хотя и не используем OpenSolaris в качестве веб-серверов.
Хорошее:
OpenSolaris поставляется с инструментами gnu, так что укажите правильный путь, и все в порядке.
Большинство вещей просто строятся и работают просто отлично.
То, что не так хорошо:
Убедитесь, что вы установили и используете bash.В противном случае все те bashisms, которые вы используете, о которых вы не думали, что используете, укусят вас.
Убедитесь, что вы не используете жестко закодированные пути к /usr/bin или /bin.Эти инструменты не являются инструментами GNU и поэтому имеют разные опции.Используйте /usr/gnu, как упоминалось выше.
У вас нет такого огромного количества пакетов, которые вы можете установить сразу, как вы делаете с yum или apt.Да, у вас есть менеджер пакетов, просто он не так хорошо заполнен.В результате вы, вероятно, будете устанавливать пакеты вручную.Они должны быть установлены, это просто немного больше работы для ваших системных администраторов.
Вы уверены, что OpenSolaris хорошо работает на вашем оборудовании?Это стоит проверить.Вы можете обнаружить, что некоторые драйверы оборудования протестированы не так хорошо.
В остальном мы находим OpenSolaris приятным.В нем много хороших идей.
Вы смотрели на Nexenta - http://www.nexenta.org/os Это ядро OpenSolaris с пользовательской средой Ubuntu.
OpenSolaris уже включает в себя все утилиты GNU, просто укажите ваши скрипты в /usr/gnu/bin
Установка Postfix не должна представлять никаких проблем, а Apache / MySQL присутствуют в базовой установке OpenSolaris (по правде говоря, классный веб-стек делает администрирование примерно таким же простым, как WAMP / Instant Rails).Помимо этого, манифесты SMF (SMF является заменой rc-скриптов, вроде launchd в OSX, хотя вы все еще можете использовать обычные сценарии инициализации) могут облегчить вашу жизнь, поскольку указание зависимостей и порядка выполнения несколько приятнее (это также рекурсивно запускает / останавливает все зависимые службы).
Tomcat, безусловно, работает, хотя все, кого я знаю по OpenSolaris, используют GlassFish.YMMV, но развертывание .war практически везде одинаково.
Возможно, это неплохой первый шаг для развертывания в фирменной зоне LX (для сравнения вспомните FreeBSD jails или Linux VServer), поскольку фирменные зоны LX могут запускать двоичные файлы Linux и явно основаны на CentOS / RHEL.
Кроме этого, OpenSolaris - это Xen dom0 начиная с b77 или что-то в этом роде, и поместить CentOS / RHEL в domU очень просто, если это возможно.
Вместе с ним вы также получаете все преимущества Solaris (DTrace, ZFS, виртуализацию сети [через CrossBow] и т.д.).Кто знает?Возможно, вам это даже понравится!Java есть Java, так что это не должно создавать никаких проблем.
вероятно, вам придется переписать большую часть ваших скриптов (создание пользователем, запуск сервиса), поскольку в CentOS и OpenSolaris это, вероятно, отличается.
как писалось ранее, попросите вашего клиента установить инструменты GNU, чтобы у вас было меньше работы по переписыванию ваших сценариев.
файлы конфигурации операционной системы также могут быть в другом формате, вам нужно будет проверить.
ваш tar.gz файл должен быть извлекаем без проблем, но опять же, у вас будет меньше сюрпризов, если вы используете инструменты GNU.некоторые ОС unix имеют tar с некоторыми ограничениями
Любой предыдущий опыт по этому поводу.
(может быть, немного оффтопик)
мы упаковываем и распространяем наше приложение java / tomcat / postgresql / unix со всеми двоичными файлами, на которые ссылаются наши скрипты.это подразумевает наличие 1 системы сборки для каждой поддерживаемой нами ОС, это подразумевает, что мы поддерживаем наше приложение, но также и внешние двоичные файлы, но в итоге у нас нет неприятных сюрпризов для клиентов.
мы также просим их выполнить все операции root (создание пользователя, каталога, настройку sendmail, настройку системы) перед установкой приложения.мы написали сценарии завершения работы / запуска для всех поддерживаемых ОС, и их установка - это единственное, что мы делаем в root на компьютере клиента.
Помимо того факта, что вы тролль, кто-то только что сказал выше, что (Открытый) Solaris имеет:- ZFS - DTrace
Мы можем понять, что вы боитесь не потерять свою работу в RHCE, но вы только что еще раз доказали мне, что мое решение как работодателя игнорировать все сертификаты при собеседовании с людьми было правильным.Похоже, что большой процент таких людей (особенно в мире Microsoft) таковыми не являются...непредубежденный, мягко говоря.
С уважением, Алекс