Кратко

  • Apache вырос из исправлений, которые администраторы сайтов независимо вносили в NCSA httpd 1.3. Список рассылки, общее пространство и испытания на серверах самих участников превратили эти изменения в общий выпуск, доступный для проверки.
  • В 1995 году NCSA не исчез: разработка возобновилась, а его команда обменивалась исправлениями с Apache. Тем временем Apache перешёл от объединения патчей к модульной архитектуре Shambhala.

Пользователи уже занимались сопровождением

В начале 1995 года NCSA httpd широко использовался в вебе, но после ухода Rob McCool из NCSA в середине 1994 года разработка замедлилась. Операторы не стали просто ждать, пока учреждение возобновит работу. Администраторы уже добавляли возможности и исправляли ошибки в собственных установках. Не хватало надёжного способа сопоставить изменения, объединить их и выпустить версию, которую могли бы испытать другие.

В позднейшей официальной истории Apache говорится, что сначала администраторы связались друг с другом по частной электронной почте. Затем Brian Behlendorf и Cliff Skolnick создали список рассылки, общее информационное пространство и учётные записи разработчиков на машине в районе залива Сан-Франциско; HotWired предоставила пропускную способность канала. К концу февраля восемь основных участников образовали первоначальную группу Apache. Эта инфраструктура не уравняла серверы разных сайтов. Она дала операторам общее место, где изменения можно было увидеть и обсудить.

Группа взяла за основу NCSA httpd 1.3, собрала опубликованные исправления и полезные улучшения и испытала результат на собственных серверах. Apache 0.6.2 впервые вышел публично в апреле 1995 года. В объявлении от 27 апреля Randy Terbush представил его как общедоступный HTTP-сервер на основе патчей к NCSA 1.3. Среди перечисленных возможностей были согласование содержимого, несколько доменных имён, настраиваемые ответы об ошибках, передача файлов без изменений, более строгое соответствие спецификациям и аутентификация DBM.

В современном событию объявлении также назывались первые пользователи — HotWired, MIT AI Lab, Organic и Hyperreal — и несколько систем Unix, на которых сервер проходил проверку. Там же подчёркивалось, что это бета-версия и ошибки ещё возможны. Общий выпуск не устранил эксплуатационный риск: он сделал конкретный набор изменений доступным для оценки другими.

NCSA продолжала развивать свой вариант

Упрощённый рассказ изображает Apache как замену после полного прекращения работы NCSA. Собственная ретроспектива Apache точнее: NCSA возобновила разработку в тот же период. Brandon Long и Beth Frank из команды серверов NCSA присоединились к списку в марте в качестве почётных участников, чтобы проекты могли обмениваться идеями и исправлениями. Обсуждение в Usenet в октябре 1995 года также описывало развивающуюся ветку NCSA и функции, перенятые из Apache.

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

У такого сотрудничества была цена. Объединение изменений из разных сред могло привести к несовместимости. Группе приходилось проверять больше платформ, документировать выпуски и поддерживать растущее сообщество пользователей. В истории Apache признаётся, что 0.6.2 быстро стал популярным, но кодовую базу всё равно требовалось основательно переработать. Открытая совместная работа не отменяет сопровождение: она распределяет его, а рост использования повышает требования к координации.

От набора патчей к новой архитектуре

В мае и июне группа продолжила реализовывать функции ветки 0.7, в том числе предварительно запускаемые дочерние процессы, и одновременно помогала большему числу пользователей. В это же время Robert Thau спроектировал Shambhala — новую архитектуру с модулями и API, распределением памяти через пулы и адаптивной моделью prefork. В июле группа перешла на эту основу; в августе появился Apache 0.8.8. После дополнительных бета-испытаний, портирования и подготовки документации 1 декабря 1995 года вышел Apache 1.0.

Переход изменил поверхность, на которой предстояло строить дальнейшие изменения. Сначала общая работа заключалась в отборе и объединении исправлений вокруг уже известного сервера. Shambhala изменила структуру будущей разработки: модульность и API сделали расширяемость свойством конструкции сервера, а не только результатом очередного пакета патчей.

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

Принятие видно по работающим узлам

Самые ясные данные о росте Apache относятся к 1996 году. В августовском сообщении Netcraft сравнивались 18 957 ответивших узлов в августе 1995 года и 342 081 годом позже. В выборке 1996 года на Apache приходилось 35%, на NCSA — 18%. Netcraft предупреждала, что рост выборки был связан и с естественным расширением веба, и с тем, что компания стала лучше находить сайты. Это ответившие имена узлов, классифицированные по серверу, а не число уникальных организаций, людей или посещений; эти цифры сами по себе не устанавливают причину успеха.

Тем не менее обследование показывает то, чего не может показать объявление о выпуске: многие операторы выбрали Apache. Путь проявился в действующих установках — известная базовая версия, сравнимые изменения, локальные испытания, общий выпуск, а затем перестроенная архитектура. Практический авторитет версии основывался на возможности её запустить и проверить. Список и группа сделали принятие возможным, но не принимали решение за каждый сайт.

Источники и ограничения

История проекта Apache — позднейшее институциональное воспоминание. Объявление апреля 1995 года и обследование Netcraft за 1996 год — источники того времени. Первичные архивы раннего списка разработчиков и полные журналы установок для этой работы найти не удалось. Поэтому числа Netcraft следует читать как ограниченную выборку; они не доказывают, что одна лишь модель сопровождения Apache изменила рынок.

Использованные источники