среда, 29 декабря 2010 г.

Killer feature


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

Вот, например, выдержка из одного весьма уважаемого ресурса:

- А чем так хороша Solaris в сравнении с .... гм, другими ОС? Какая у нее killer feature, которой нет в других системах?
- А...гм, ну, эта... ZFS, DTrace.... ах, да - зоны!

Устриц не ел, но мнение имею.

Дорогие джентльмены. Надо лучше разбираться в предмете, о котором вы болтаете.

Первое и самое основное. Solaris - одна из самых высокопроизводительных и масштабируемых систем с полностью динамическим ядром на основе кода AT&T. Одна из первых систем, которая перешла на 64 разряда и при этом была исчерпывающе реализована в этом качестве - включая userland. Способная работать на реально больших боксах с сотнями процессоров. Причем была таковой еще задолго до того, как на что-то подобное стал способен, скажем, Линукс.

Второе. Задолго до появления любых промышленных реализаций виртуализации имела logical domains - технологию виртуализации инстансов операционной системы на больших SMP-машинах. Причем это было задолго до того, как тот же Линукс приообрел человеческие черты. Практически технология не имела и по сей день не имеет аналогов. Hot plug и мониторинг ооборудования тоже поддерживается с незапамятных времен.

Третье. Практически с самого начала имела в своем составе volume manager - чего многие системы в составе штатного operational environment не имеют по сей день, причем позволяла выполнять установку сразу на RAID.

Четвертое. Имеет и имела в своем составе JumpStart - блестящую технологию сетевой установки, включая установку через WAN, жалкое подобие левой руки которой появилось в Линуксе сравнительно недавно. То, что вы понятия не имеете, как ставить Solaris посредством JS - не означает, что этой технологии не существует. Более того, JS интегрирован в штатный процесс установки настолько, что позволяет выполнять пред- и постинсталляционные шаги по конфигурированию железа (например, созданию RAID и последующей установки на него) и самой системы (настройка, установка и развертывание ПО после установки) полностью автоматически. Kickstart - лишь бледный отголосок JumpStart. И существовала эта технология за много лет до того, как KS вообще оформился в виде идеи. Ни в одной системе не существует настолько мощного и гибкого механизма сетевой установки, как в Solaris.

Пятое. Содержит в своем составе ролевой механизм контроля доступа (RBAC), позволяющий системе в принципе обходиться без использования sudo - жалкого ублюдка из BSD-like систем. Кроме того, имеет мощный механизм trusted extensions, позволяющий расширять безопасность системы дл trusted-уровня легко и непринужденно. Поддерживает separation of duties и мандатный доступ. Легко доводится до уровня защиты B (и сертифицирована по этому уровню). Поддерживает FIPS-140 (разумеется). Поддерживает смарт-карты (тоже давным-давно).

Шестое. Имеет в своем составе SMF - механизм управления сервисами и их запуском, который только начали разрабатывать и встраивать в некоторых остальных UNIX-like системах. SMF использует XML для описания сервисов, основывается на SQLite БД и позволяет проделывать с сервисами все то, что с грехом пополам пытается разработать сообщество Линукс. Кроме того, имеет мощнейший механизм Fault Management, принципиально рассчитанный на работу в режиме 24x7x365. И о существовании которого многие так называемые сисадмины даже не догадываются.

Седьмое. ZFS - файловой системы с такими качественными и эксплуатационными характеристиками нет ни в одной другой ОС. Volume manager и файловая система в одном флаконе. Являющаяся частью системы. Позволяющая стартовать систему с нее. Безотказная и практически не фгарментируемая (повторяю для тех, кто на бронепоезде - ZFS является extent-based и не фрагментируется по определению). Это помимо штатной FS - JFS (начиная с релиза Солярис 9 4/04, до этого был UFS). А еще со снапшотов рута можно стартовать систему. Штатно. Ваша FS позволяет подобное проделывать? Кстати, поытайтесь разработать полную FS подобного уровня и за пяток лет довести ее до продуктива и промышленной пригодности.

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

Девятое. Имела и имеет совершенно блестящий стек TCP/IP. Да, он не позволяет сделать Solaris бриджом. Но позволял выполнять, например, link aggregation и multipathing давным-давно. Позволяет полностью изменить fingerprint системы до ее полной неузнаваемости. Полностью настраивается так, как и не снилось многим системам. Поддерживает роутинг BGP/OSPF. Поддерживает Jumbo Frames.

Десятое. Технологии кластеризации появились и поддерживаются в Солярис настолько давно, что были выбраны стандартом де-факто для Oracle RAC много лет назад. Да, это не технология штатного operational environment. Clusterware входил в состав JES - Java Enterprise System. А вам слабо?

Одиннадцатое. Технология Live Upgrade - это то, чего нет практически ни в одной ОС. Обновление системы в multi-user. На ZFS выглядящей особенно привлекательно, поскольку позволяет сделать апгрейд на тех же самых дисковых устройствах, где находится система. Включая платформу x86. Тоже реализовано давным давно. Полная замена ОС на всем скаку, с единственной перезагрузкой. С возможностью, в случае чего, откатиться к прежнему boot environment в одно действие. А ваша система так может?

Двенадцатое. Механизм flash-установки. С поддержкой ZFS. Нативно - как часть системы. Во многих системах есть имиджевание по-умолчанию? Позволяющее снять полный имидж рута на ходу, в multi-user?

Это лишь та часть функционала, который я помню навскидку и которым пользуюсь очень часто. В реальности система позволяет много больше. Некоторых вещей я не знаю, хотя работаю с Solaris больше десяти лет.

Разумеется, поддерживается USB, iSCSI, IPSec, Kerberos - тоже достаточно давно. Практически как только появилась потребность - это было немедленно реализовано.

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

Она способна работать на оборудовании, масштабов которого вы себе и вообразить не можете. Как насчет бокса на пару тысяч процессоров?

И - да, еще у нее были огромные жизненные циклы, до сих пор на ходу системы под Solaris 7 и 8. Причем посейчас система поддерживает все предыдущие архитектуры и компоненты оборудования, выпущенного более 10 лет назад. Это именно промышленная ОС, устанавливая которую, можно было не беспокоиться, что два-три года спустя ее обязательно придется обновлять или - упаси бог! - заменять. Это, согласитесь, совсем не заявление пингвинятников, что-де мы будем исключать поддержку старого оборудования из ядра.

Кстати, никакие подобные заявления не являются UNIX-way. Знаете, почему? Поддержка архитектур и железа в UNIX - это совсем немного ассемблерного кода. Который дистрибутив кардинально не увеличивает. Посмотрите на Солярис. Там это так. Весь platform-specific код не превышает размерами несколько сот мегабайт. Ах, у вас это не так? Так это уже ваши проблемы! Ах да, Linux is not UNIX... Он так, всего лишь жалкое подобие левой руки...

Лично мне, как эсплуатационнику, глубоко начхать, почему поддержка старого железа выводится из состава ОС. В промышленных системах, у которых жизненные циклы составляют десятки лет, никто не будет заменять работающий сервер возрастом 12 лет просто по причине несовместимости железа с новой версией ОС. Это вы у себя дома можете апгрейдить писюки хоть десять раз в год. Промышленные сервера эксплуатируются по принципу "Не сломалось - не чини". Поэтому лично мне важно, чтобы новые версии ОС заводились и работали на старом - по меркам писюшников - железе. (Я, кстати, сильно сомневаюсь, что Оракл будет и дальше поддерживать длительные жизненные циклы Солярис. Невыгодно. А бабло побеждает зло. Нет таких проблем, которые нельзя было бы решить с помощью бумажника).

Так что, мальчики и девочки, курите маны дальше. Всех killer features в Solaris вы не знаете и знать не будете.

Solaris реально был самой передовой ОС на планете. Жаль, что он попал в такие руки.