НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Гимн вождям апачей

"Серверы, инновации и облака", "Мощь, престиж и продвижение вперед" -- под такими лозунгами прошла в ноябре очередная североамериканская конференция ApacheCon, посвященная открытым технологиям фонда Apache. И это не пиар и не громкие слова, а совершенно точное отражение тенденций развития тяжелых серверных технологий Free and OpenSource Software (FOSS).

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

Одна из причин такого прагматичного подхода в том, что решения FOSS создаются по иной модели, нежели коммерческие: планы их развития редко выстраиваются на длительные сроки, а совершенствование происходит в гибком режиме и ориентировано исключительно на пожелания и потребности конечных пользователей, а не на удовлетворение рыночно-рекламных стратегий.

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

Ключевые топ-проекты фонда, массово применяемые по всему миру -- такие, как сервера httpd и tomcat, развиваются, конечно, в основном эволюционно.
По данным W3Techs на октябрь 2010 г. веб-сервер Apache применяют в 69,8% организаций, Microsoft-IIS - в 20,4% (меньше 10% приходится на Nginx, LiteSpeed и Google Web Server). В 65,1% случаев они работают под *nix, а Windows используется в 34,9% случаев. Для реализации серверной логики в 74,9% задействован PHP, в 23,8% - ASP.NET, в 3,9% - Java. На клиентской стороне безраздельно властвуют JavaScript (88,5%) и Flash (28.8%).

Однако эти данные довольно туманно характеризуют лишь общую массовую ситуацию в сфере малых и средних проектов и не отражают тенденции серьезного взросления технологий FOSS -- масштабы новых проектов требуют новых технологий, иногда принципиально иных, которые уже есть, но пока не так известны. Как правило, это некоторые "инкубаторские" системы, а также поступающие от сторонних организаций -- они представляют собой поистине революционные решения, на глазах меняющие, казалось бы, устоявшиеся концепции построения инфраструктуры. Так, заметно шатаются звенья легендарной платформы LAMP (Linux, Apache, MySQL, PHP) -- под некоторые современные проекты сверхбольшого масштаба она уже подходит далеко не идеально. Особенно в свете сильнейшего конфликта между Apache и Oracle, сперва по поводу MySQL, затем и по Java.

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

Ведется работа над версией 2.4 веб-сервера Apache. Что в ней появится:
-- мультипроцессные модули можно кодировать для управления несколькими многопоточными обработчиками, а сами они станут динамически загружаемы;
-- модуль mod_cache сможет кэшировать HEAD-запросы, а "устанавливать" его можно будет на конкретные каталоги;
-- поддерживается скрипт-язык Lua;
-- поддерживается FastCGI (наконец-то);
-- таймаут можно задавать с точностью до миллисекунд.

Кросс-платформный поисковый API Apache Lucene (сам по себе реализованный в виде немалого числа расширений и портов) добрался до версий 2.9/3.0. Улучшена масштабируемость, точность индексации и стабильность. Включен KStemmer (алгоритм выделения морфологической основы слова), позаимствованный в университете Массачусетса, правда, пока он понимает только английский язык. Добавлено средство Luke для тестирования и разработки систем на базе Lucene. Для упрощения администрирования Lucene предлагается Lucandra.

Lucene -- пакет достаточно мощный и сложный, поэтому для быстрой организации текстового поиска с его помощью создан фреймворк Solr 1.4.1, не требующий знаний программирования (хотя конфигурирование Solr не сильно проще :) ).

Ожидается версия Solr 2.0 (которая возможно получит номер 1.5): она станет масштабируемой, и хотя сегодня успешно обрабатывает миллиарды документов, этого уже мало, поэтому появится распределенно-облачный поиск с использованием ZooKeeper (сервис поддержки распределенной синхронизации). Добавится в Solr 1.5/2.0 множество новых функций, возможность геопространственного поиска, схлопывание результатов в компактный вид и т. д.

Сервер Java-приложений Tomcat добирается до седьмой версии. В ней будет существенно улучшена структура кода, ликвидируются утечки памяти, появится поддержка сервлетов 3.0 (модульность, защищенность, асинхронность, простота), JSP 2.2 (серьезно улучшенный механизм создания и развертывания интегрированных корпоративных веб-систем) и EL 2.2 (скрипт-язык, позволяющий встраивать в JSP-странички JavaBeans-модули). Доля Tomcat на рынке серверов приложений выросла за год с 10% до 13%.

Поддержка распределенной системы серверов обеспечится системой Geronimo, полностью сертифицированной в качестве сервера Java EE 5-приложений.

Управлять распределенными вычислениями и организовывать распределенные файловые системы позволит Hadoop 0.20. Среди ее новых возможностей -- стыковка с Kerberos и реализация частично доверенных зон, когда, например, в корпорации существует несколько кластеров с оригинальной доверенной информацией, и доступ к ним надо раздельно разграничивать и контролировать. В Yahoo, например, с помощью Hadoop обслуживаются кластеры по 4000 узлов.

Инфраструктура для создания и управления SOA-приложениями по стандарту Service Component Architecture (SCA), поддержанному крупнейшими ИТ-корпорациями, реализована в виде продукта Tuscany.

Отметим также КИС OFBiz, реализующую обширный функционал, от э-коммерции до ERP, и ускоритель загрузки веб-страниц -- аддон Page Speed для Firefox/Firebug, который в виде mod_pagespeed стал модулем Apache. Интересно, что Гугль задействовал этот модуль в своем сервере Google Web Server для ускорения загрузки веб-страничек -- выигрыш оказался в два и более раз.


далее фонд Apache представит NoSQL СУБД, средства стандартизации облачных и веб-интерфейсов и универсальные системы работы с документами