Почему открытое ПО может бесить ИТ-специалистов

Так и быть, рискну сказать: вот у Microsoft никогда не случится такой казус. Это преамбула моей речи для тех, кто готовит свои пафосные тирады о ПО, созданном без профессиональной системы управления разработкой.

На сей раз объектом моего гнева стала даже не Linux, а Apache. Мне нравится Apache. Ну, я люблю её в той степени, в которой можно любить очень симпатичную подружку, которая в подавляющем большинстве случаев ведет себя абсолютно адекватно. Однако наступают моменты, когда она полностью съезжает с катушек, превращаясь в чокнутую дуру, которую обычно только в кино и можно увидеть.

Нас с Apache связывают долгие отношения. Я работал с этим ПО на бесчисленном множестве систем примерно с 1996 г. Я знаю, что у него есть специфические свойства, знаю, что иногда он слишком сложный, но знаю и то, что в конечном итоге у меня всё получится. Ну, во всяком случае в основном.

Windows ему явно нравится меньше, чем Linux, то есть если вам нужно поставить Apache на рабочий сервер, лучше сделать его под Linux. Бывали случаи в разные годы, когда даже в официальной сопроводительной документации было указано, что по определенным причинам Apache менее стабилен и надежен при работе под Windows.

Поэтому даже достигнув невероятных уровней недовольства Linux в течение последних лет, я до сих пор устанавливаю эту ОС на рабочие серверы. Чтобы система обладала адекватным уровнем экономичности, я организовал архитектуру таким образом, чтобы Linux исполнялась на виртуальной машине, а сама виртуальная машина работала на Windows Server 2008 R2. Конечно, любители Linux думают, что это ужасно, но возможность внедрить протокол удаленного рабочего стола в реальную серверную среду, включая полноценный графический интерфейс, и при этом не бороться с ужасного качества документацией и непостоянством конфигураций для каждой функции, — да это просто дар свыше.

Но как бы то ни было, вернемся к моей сегодняшней проблеме с Apache.

Я занимаюсь разработкой на ноутбуке с Windows 7 и затем выгружаю свой код на сервер. Чтобы протестировать свой код в локальной среде, запускаю стек XAMPP WAMP. Эта система работает уже несколько лет.

Мне приходится портировать крупные системы управления контентом, а это требует мгновенной обработки почти сотни тысяч ссылок. Для этого раньше я использовал модуль mod_rewrite в Apache при помощи команды RewriteMap, что позволяет мне запустить скрипт Perl, который читает входящий URL, ищет в базе данных и перенаправляет на конечный URL. Код, разработанный для этой операции, был создан и протестирован на моем стеке XAMPP, прежде чем он был загружен на основной сервер.

Недавно я купил более быстрый ноутбук. Отличный ноутбук. Но на него пришлось перенести все программы, которые у меня были, включая XAMPP. И тогда, не ставя меня в известность, XAMPP обновился с версии 1.7x до версии 1.8. Основное отличие этих версий в том, что 1.8 использует Apache 2.4, а не 2.2, — знаю, знаю, слишком много цифр, но потерпите еще немного.

Мне следовало, конечно, проверить обе версии, но ведь Apache — это все равно Apache? Так? А вот и нет!

Проблема в том, что когда Apache обновился с версии 2.2 до 2.4, изменился принцип работы Rewrite. Раньше в Apache использовали команду под названием RewriteLock, или prn: rewrite code. А теперь используется что-то абсолютно другое, команда Mutex, или взаимного исключения.

Знаю, все кажется очень заумным, поэтому суммирую сказанное: новая версия совершенно аннулирует старую.

Да-да, меня заблокировало обновление Apache.

Сама команда Mod_rewrite практически не задокументирована, информацию о ней можно найти на некоторых хороших сайтах, а остальное овеяно фольклором. У программируемой дополнительной функции RewriteMap документации еще меньше. Но вся имеющаяся документация указывает на необходимость использовать RewriteLock. Ни в одном документе не сказано о Mutex.

Однако сегодня, как только я установил XAMPP на ноутбук и попытался запустить Apache при старых файлах конфигурации, он не запустился. Я покопался, и результатом стало сообщение об ошибке, в котором было написано, что я ничего не знал об этой ситуации с RewriteLock.

Час поисков в Интернете — и вот ответ: функция RewriteLock устарела и была заменена на эту самую ерунду, Mutex. Хоть что-то было по этому поводу сказано в сообщении об ошибке? Нет, конечно. У вас же есть Google.

Но потом стало еще хуже. Вот что говорится об использовании RewriteMap на официальном сайте Apache: “Эта функция использует взаимное исключение rewrite-map, что необходимо для стабильной работы с программой. Механизмы взаимного исключения и блокировка файла могут быть сконфигурированы при помощи команды Mutex”.

Отлично. А вот что написано в документации к обновлению Apache с 2.2 до 2.4: “Команды AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMute и WatchdogMutexPath были заменены на единую команду Mutex. Оцените необходимость использования любой из этих устаревших команд в конфигурации 2.2, чтобы определить, можно ли их удалить или они должны быть заменены на Mutex”.

Вот и всё. “Оцените необходимость использования любой из этих устаревших команд”. Спасибо большое!

Думаете, есть какая-то документация, где было бы сказано: “Ну а если вы используете старые команды, кодируйте их так-то”? Нет. Конечно же нет. Потому что это открытое ПО. Просто сами выясняйте.

А может, есть какая-либо переходная функция, чтобы апгрейд не обрушил вам весь сервер? Ну разумеется, нет. Опять же потому что это открытое ПО. Не можете заставить функцию работать — не используйте ее.

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

Но в случае с открытым ПО понятие “управление продуктом” не существует. Если есть более совершенная технология или более красивая функция, они просто внедряют их. Даже если при этом нарушится множество хороших конфигураций — не важно. Если это доставит пользователям неудобства или оставит их без малейшего понятия, что делать дальше, ну и что? И вообще, если вы действительно хотите знать, как что работает, код открыт для всех -- идите и читайте.

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

Что же касается меня, то я скачаю и установлю старую версию XAMPP. Для ноутбука, на котором я программирую, это неважно. Но мне только что пришло уведомление, что я не могу обновить рабочие серверы до Apache 2.4, не выяснив каким-либо образом, как заставить свою сложную систему исполнения rewrite работать в абсолютно новой — и никак не задокументированной — манере.

А люди еще удивляются, почему я такой злой. Часы потрачены на то, чтобы хотя бы сохранить то, что было.

P.S. Причина того, почему я не использую сервер IIS (а я пытался), состоит в нестабильной работе на нем WordPress и PHP. Серьезно, если вам нужно, чтобы WordPress работал устойчиво и с полной поддержкой, вам нужен LAMP. Но это не значит, что он мне во всем нравится. Хи-хи.

Автор: Дэвид Гевирц

Ваша оценка: Нет Средняя оценка: 1 (6 votes)
pomidorius аватар

Вот ведь лживый пид@#$%дорас! Лишь бы оклеветать! И ладно бы какое-нибудь Юнити охаял, а то покусился на святое — Apache. Люди из-за одной только этой софтины Linux изучают.

Брешет же не стесняясь. Например, я как-то сам разбирался с mod_rewrite. Хорошо помню, что была целая толстенная книга на эту тему, тогда как пейсатель утверждает:

Сама команда Mod_rewrite практически не задокументирована

А это что?

Целая книга о mod_rewrite

И вообще, пишет под Apache, сидит в Маздае, документацию читать не хочет, а во всем виновато свободное ПО. Раздражает, видите ли, IT-специалиста. Вон из профессии! ;) Освободи место тем, кто в Апаче разбирается и тащится от него. ;)

Ваша оценка: Нет Средняя оценка: 4.2 (10 votes)

Как бы считается, что документация достаточного уровня качества должна находиться не в сторонних книгах (это что получается, при выходе новой версии Apache нужно будет покупать новую книгу?), а в официальной документации самого Apache.

Ваша оценка: Нет Средняя оценка: 3.3 (6 votes)
pomidorius аватар

Не как бы считается, а как бы лично Вы так считаете. У меня, например, другое мнение. Платить кучу бабла за подписку на MSDN — это пожалуйста, а купить одну книгу о свободной программе — удавятся. ;) Open Source — это же халява, все должны бегать вокруг пейсателя, снабжать его документацией, бесплатно обучать, бесплатно дарить книги. ;)

К тому же, "в официальной документации самого Apache" все официально и прекрасно расписано. Даже про переход с RewriteLock на Mutex. Не говорю уже о таких "глупостях", как списки рассылки, где все эти вопросы поднимаются и освещаются. Но пейсателю же некогда разбираться. Это разработчики Апача должны были прекратить развивать продукт, чтобы избавить Его Сиятельство от внесения пары новых строчек в конфиг.

Пейсатель даже не понимает роль сообщества вокруг свободного софта. Видите ли, документация от сообщества "овеяна фольклором". А я подозреваю, что это не сообщество виновато, а просто пейсатель не может, или, что более вероятно, не хочет принимать участие в жизни сообщества. Уж на вопрос о смене RewriteLock ему бы ответили.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)

>> Платить кучу бабла за подписку на MSDN

Вроде же ресурсы MSDN бесплатны и доступны даже без наличия Visual Studio (у которой и так есть бесплатная версия), не так ли?

>> купить одну книгу о свободной программе

Проблема с книгами -- как о свободных, так и о проприетарных программах -- в том, что за год-два половина из них успевает устареть, так как выходят всё новые версии софта.

Ваша оценка: Нет
dk аватар

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

вот-вот. а потом костылится, костылиться, пока одни костыли и не остануться

Ваша оценка: Нет Средняя оценка: 5 (2 votes)

http://tsya.ru

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

К тому же, не всякая попытка обеспечения этой самой обратной совместимости обязательно является костылём.

Ваша оценка: Нет
pomidorius аватар

А если еще серьезней, то Вы теряете способность незаметно насаждать двойные стандарты. ;) Вы же не сильно возмущались, когда было объявлено, что одна из новых версий Windows не будет поддерживать плавное обновление, а потребуется полная переустановка? Тут все нормально, бизнес из-за простоев не страдает. Но когда свободная программа при обновлении новых фич требует внесения соответствующих изменений в конфиг, то здесь уже начинаются басни о недопустимости остановки предприятия. :)

Ваша оценка: Нет Средняя оценка: 5 (1 vote)

Это какая версия?

XP обновляется до висты, виста до семёрки, а Windows 8 будет доступна в том числе как обновление для Windows 7.

Ваша оценка: Нет
pomidorius аватар

Даже не с каждой Висты перейдешь на Семерку:

Обновление с Windows Vista до Windows 7

А что делать тем представителям многомиллионной армии любителей XP, которые, вдруг решат перейти на Windows 8? Покупать заодно Висту и Семерку? ;)

Ваша оценка: Нет

Картинка специально усложняет условия.

Смотрите: Для обновления с Windows Vista всё просто. С Home Basic или Home Premium можно обновляться на Home Premium; с Business -- на Professional, а на Ultimate -- с любой (кроме Starter, которая фактически является демо-версией винды). Обновляться можно только на версию такой же разрядности, какой была оригинальная винда. После установки Windows 7 при желании можно будет, купив другую версию Windows 7, обновиться на более высокую версию Windows 7 через Windows Anytime Upgrade (кроме Ultimate, т.к. с Ultimate обновляться дальше некуда). Думаю, что такая же сиуация будет и с обновлением Windows 7 до Windows 8 -- можно будет апгрейдить только эквивалентные версии такой же разрядности.

C обновлением XP до Vista всё проще -- обновляться можно на любые версии выше уже установленной -- для Home это HB, HP, Business и Ultimate, а для Pro -- Business и Ultimate.

То есть желающие обновиться с XP Pro до Windows 8 должны будут пройти через цепочку:
XP Pro -> Vista Business -> 7 Pro -> 8, а с Home -- XP Home -> Vista HB -> 7 HP -> 8.

Всё совсем не так сложно.

Ваша оценка: Нет
pomidorius аватар

MrBison, требуется Ваш комментарий по поводу этого поста. ;)

Ваша оценка: Нет

Гнать в шею таких специалистов.

Ваша оценка: Нет

Отправить комментарий

Яндекс.Метрика