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

Как ИТ-отделу выбрать стандартный дистрибутив Linux?

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

Предполагая, что мы пытались выбрать дистрибутив Linux для стандартизации (потому что мы заинтересованы в том, чтобы наши среды были как можно более однородными), какие критерии важны и как вы определяете, насколько разные дистрибутивы соответствуют этим критериям?

Я поделюсь своим опытом работы технологом в нескольких разных областях ...

(Внимание: это история о Red Hat и о том, как я профессионально с ней вырос)

Я начал профессионально работать с Linux в 2000-2002 годах. Это было во время широкого распространения Red Hat и Red Hat Professional Editions (6.x, 7.x, 8.0). Они были доступны для бесплатной загрузки, а также в коробках. Их легко можно было найти в компьютерных магазинах.

Для меня это помогло привлечь любителей и домашних пользователей к тем же продукт, который начал появляться на предприятии. Моя работа в то время заключалась в переводе клиентских серверных систем с коммерческих Unices (HP-UX, AIX и SCO) на платформу Red Hat.

Снижение затрат было существенным! Замена серверов HP9000 PA-RISC стоимостью более 100 тысяч долларов на серверы Compaq ProLiant Intel стоимостью 40 тысяч долларов была абсолютным выигрышем по стоимости и производительности.

Итак, почему Red Hat?

Red Hat первой вышла на этот рынок, получив критически важную поддержку бизнеса, поставщиков и оборудования. Сделка была заключена в том, что крупные поставщики приложений используют Red Hat в качестве целевой платформы. Пользователи-любители, такие как я, смогли с легкостью перенести навыки, отточенные дома, в нашу рабочую среду. Сообщество росло. Slashdot, Свежее мясо и Стеки LAMP правил! Это было хорошее время для Linux.

К этому моменту я отвечал за разработку и оценку дистрибутивов Linux как платформы для проприетарного программного решения ERP. Я придерживался Red Hat. Время от времени я пробовал другой дистрибутив (Мандрагора, SuSE, Debian, Gentoo), но обнаружил бы проблемы с упаковкой, поддержкой оборудования (серверов или периферийных устройств), (размер) сообщество или другой нарушитель сделки.

Пример: я использовал оборудование Compaq / HP ProLiant с Карты расширения Digi Serial PCI-X и Программное обеспечение для производственных факсов Esker VSIfax. Последние два поддерживали драйверы только для операционных систем Red Hat. В некоторых случаях программное обеспечение поставлялось только в двоичной форме или в форме RPM, что не позволяло легко использовать его в других вариантах Linux.

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


Медовый месяц Red Hat закончился для меня в 2003 году. прекращение профессиональных изданий программного обеспечения. Red Hat Enterprise Linux была заменой и пришла с немалым багажом ... Стоимость (дорогая модель на основе подписки), доступность (сокращение пользовательской базы и сообщества) и общая путаница в отношении будущего ...

Я начал искать альтернативы, переоценивая Gentoo, Debian и SuSE. Я не мог получить правильную поддержку по всем компонентам нашего технологического стека. Я был вынужден придерживаться экосистемы Red Hat ... Из-за резкого сдвига стоимости, связанного с Red Hat Enterprise Linux, я в конечном итоге запустил сильно модифицированную Red Hat 8.0 для лет истек срок его службы. Только когда клоны RHEL созрели (Whitebox Linux, и позже, CentOS), что я подготовил настоящий отход от своих стандартов.

Основным преимуществом производных от Red Hat было и является бинарная совместимость с платными версиями RHEL. Возможно даже преобразование на месте между RHEL и CentOS, и наоборот. Я продолжал работать с RHEL-подобными системами, пока не сделал следующий карьерный шаг ...


Позже я оказался в высокочастотная финансовая торговля промышленности, где я отвечал за исследования и разработки и разработку Linux для критически важных автоматизированных торговых систем. Акцент в этом мире был скорость, путем тщательного тестирования и настройки. Опять же, поддержка оборудования была ключевой. У меня были бы конкретные сетевые карты, специализированное оборудование, серверное оборудование или библиотеки приложений, которые были сертифицированы только для систем RHEL или RHEL-подобных. Даже в тех случаях, когда что-то могло быть скомпилировано для других вариантов Linux, возникал фактор сообщества. Когда мне нужно было исследовать проблему, часто возникала проблема, которую можно было отследить по заметкам или комментариям в отчетах Red Hat Bugzilla, а иногда я просто отправлял патч или запрос для следующего выпуска. .

Когда я начал разбираться в сетях с малой задержкой и настройке ядра, я начал разбирать стандартные ядра RHEL и RHEL MRG в реальном времени ядра. Я заметил, сколько работы в релизах ... 200+ патчей к ядру vanilla kernel.org. Прочтите комментарии и сделайте заметки. У вас могут быть такие мелочи, как sysctl выставлены параметры или применены более разумные значения по умолчанию. Red Hat платит людям за исправление, тестирование и исправление этих проблем. Я не видел такого же обязательства со стороны других дистрибутивов Linux ... Добавьте тот факт, что корпоративная платформа гарантированно имеет реальную безопасность, исправление ошибок и поддержку обратного порта для лет.


В конце концов я перешел в другую финансовую фирму, которая почти полностью работала на Gentoo на сервере. и рабочий стол ... Для меня это была катастрофа. Приходя из мира Red Hat и CentOS, я столкнулся с многочисленными проблемами стабильности и управления установкой Gentoo. Контроль версий был самой большой проблемой, но также беспокоило сокращение поддержки сообщества и отсутствие реального тестирования. Я начал внедрять RHEL в среду, потому что это требовалось некоторым нашим сторонним программам ...

Но возникла проблема ... Мои разработчики привыкли к Gentoo и имели относительно простые пути обновления для основных библиотек и версий приложений. Они не могли приспособиться к фиксированным основным версиям, на которых стандартизирован Red Hat Enterprise Linux. В процессе разработки и выпуска возникали вопросы о почему GLIBC 2.7 нельзя было перенести на RHEL 5.x или почему не была доступна определенная версия компилятора или библиотеки. Когда сказали, что обновления между основными версиями RHEL / CentOS по существу требовалась полная перестройка, они потеряли уверенность в решении.

В этот момент я понял, что Red Hat двигалась слишком медленно для разработчиков, которые хотели быть на переднем крае. RHEL 6.x был очень необходимым и долгожданным обновлением, но эта тема стала более очевидной, когда я начал интервьюировать стартапы и фирмы, которые подписались на Принципы DevOps.


Cегодня...
Все большее число разработчиков и пользователей Linux приходят из не-Red Hat, не-SuSE, некорпоративных сред Linux.

  • Они используют Ubuntu или Debian ...
  • Им не приходилось иметь дело с оборудованием старой школы или поддержкой крупных поставщиков.
  • Они пишут свои собственные приложения с нуля (самостоятельно).
  • Виртуализация и облачные вычисления абстрагируются от аппаратного уровня, поэтому опасения по поводу причудливых драйверов RAID-контроллеров, периферийных устройств PCI-X или двоично-распределенных агентов управления даже не обсуждаются.
  • Этим пользователям нужны инструменты и пользовательская среда, к которым они привыкли.

Итак, есть конфликт ... Эти пользователи не понимают, почему они ограничены в использовании версий приложений или библиотек. Администраторы старой закалки все еще приспосабливаются к новая парадигма. Аргументы, которые кажется быть укорененными в религии - это просто функция того, как люди развили свои соответствующие навыки.

Сегодня я увидел объявление о вакансии на должность очень старшего инженера DevOps Linux, в котором говорилось:

Должен быть экспертом в области дистрибутивов Linux на основе Debian (разрешены Ubuntu и его варианты. Red Hat сносный, но не предпочтительно)

Так что, полагаю, это работает в обоих направлениях ... Я отказался от вакансий, потому что 800 серверов CentOS, которыми я управлял, планировалось преобразовать в Ubuntu. Конечно, Linux - это Linux ... но я не чувствовал, что буду настолько эффективен, насколько мог ... Я возился с установками Debian и хотел, чтобы использовался дистрибутив на основе RPM. У меня были горячие споры о достоинствах различных платформ (обычно Gentoo помещается в конец списка).

Итак, что правильно для ВАШЕЙ среды? Это зависит. Я был в компаниях, где решения принимают системные инженеры, а также в организациях, где король разработчиков. Я думаю, что лучший способ - это когда разработчики и люди, поддерживающие системы, согласовывают платформу. Но помимо этого подумайте о долгосрочной поддержке, удобстве использования, сообществе и о том, что лучше всего подходит для вашего стека приложений.

Талантливый разработчик должен уметь работать в среде, подобной RHEL или Debian. Платформы разработки должны отражать производственную среду. Вы идете оттуда ...

В настоящее время я работаю в среде, в которой Linux используется более десяти лет. Все в офисе используют разные дистрибутивы на своих рабочих столах и на серверах. Таким образом, выбор распределения, как правило, вращается вокруг ряда вещей без определенного порядка:

  1. История - Очевидно, что такие системы, как RedHat и Debian, существуют уже давно. Таким образом, для этого можно использовать пословицу «если не сломалось, не чини». Обновление становится проще, если программное обеспечение хорошо поддерживается в дистрибутиве.
  2. Знакомство - Как и в истории, но у всех есть свои фавориты. Я набрался опыта в Debian и перешел на Ubuntu (трудное решение в то время, потому что я склонен быть приверженцем сообщества). И наоборот, трудно вспомнить, как что-то делать в десятке разных дистрибутивов (не говоря уже о созданных с нуля).
  3. Служба поддержки - Я перешел на Ubuntu в основном потому, что мне понравилось то, что они делали в плане платной поддержки. Это было аргументом в пользу продажи, если клиент когда-либо беспокоился о долгосрочной эксплуатации системы. Подобно подходу RedHat (но в то время происходил ад RPM). По этой причине у нас также есть несколько серверов RedHat.
  4. Зависимости - Некоторое программное обеспечение проще использовать в некоторых дистрибутивах просто потому, что зависимые пакеты легче получить или собрать. Примером может служить oVirt на RedHat. В некоторых дистрибутивах нет пакетов для некоторых программ. И вы могли бы его скомпилировать, но зачем вам это делать, если пакет был прямо там, в другом дистрибутиве?
  5. Гранулярность - Такие дистрибутивы, как Gentoo, предлагают более точный контроль над версией и детализацией программного переключения. В других дистрибутивах есть «закрепление» в различных формах, но это все еще не так управляемо и надежно.
  6. Привязка - Хотя можно скомпилировать из исходного кода в большинстве дистрибутивов, некоторые дистрибутивы справляются с этим лучше, чем другие. Это может иметь эффект, например, если ваш проект исправляет существующие библиотеки для расширенной функциональности.
  7. Миловидность - Некоторые дистрибутивы просто красивее. Каждый компьютерщик знает, что это просто чушь (и в наши дни вы, вероятно, могли бы сделать это в виде веб-приложения), но некоторые клиенты в восторге от этого, и мы все это знаем.
  8. Стабильность - Некоторые дистрибутивы транслируют "стабильные" версии программного обеспечения, а не "тестовые", "экспериментальные" и т. Д. Это может иметь большое значение, если вы знаете, что версия, на которой вы строите, в конечном итоге достигнет консенсуса по стабильности. Вы можете разрабатывать «экспериментально», зная, что к тому времени, когда ваш проект будет завершен, он станет «стабильным» и на него можно будет положиться.
  9. Управление пакетами - Если вы что-то разрабатываете ежедневно, и это будет доступно на тысячах машин за один удар, то вам, вероятно, понадобится что-то, что упростит создание, поддержку и отслеживание пакетов в этих системах.
  10. Последовательность - Это больше аргумент в пользу тем же дистрибутив. Меньше ошибок делается (и меньше ошибок в безопасности), когда люди могут сосредоточиться на одном дистрибутиве, а не на нескольких.
  11. Предсказуемый график выпуска - Если вы хотите быть уверенным, что ваше программное обеспечение и дальше будет поддерживаться, запланированные обновления предлагают определенный тип стабильности.
  12. Безопасность - В некоторых дистрибутивах есть активные группы безопасности, задача которых - немедленно реагировать на реальные угрозы безопасности в любом одобренном пакете.

Это всего лишь несколько вещей, которые приходят мне в голову относительно причин, по которым была выбрана каждая система. Я не вижу в этом решении какого-либо ориентира или предпочтения одного дистрибутива другому. Разнообразие и выбор могут быть огромными и предложить вам действительно хорошие возможности для быстрого запуска проекта, но это также петля, которая может вас повесить. Убедитесь, что вы заранее думаете о том, что вам нужно. Спланируйте, каковы потребности системы, а также когда система будет обновлена ​​или выведена из эксплуатации. Не думайте, что вы всегда будете поддерживать его.