Кратко

  • В феврале 1995 года Brian Behlendorf и Cliff Skolnick создали почтовый список и общую инфраструктуру разработки, позволившие веб-администраторам координировать исправления для NCSA httpd.
  • Группа испытала основанный на NCSA Apache на собственных серверах; публичная публикация не доказывала, что внешние операторы установили и запускали эту версию.

История Apache началась не с проекта с чистого листа, а с проблемы сопровождения, распределённой между операторами. После ухода Rob McCool из NCSA в 1994 году разработка NCSA httpd замедлилась. Веб-администраторы независимо добавляли расширения и исправляли ошибки; им не хватало общего канала для обмена изменениями и их объединения.

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

Первая граница отделяла разрозненные исправления от общей основы

Группа взяла за основу NCSA httpd 1.3, собрала опубликованные исправления и полезные улучшения, проверила результат на собственных серверах и в апреле 1995 года выпустила Apache 0.6.2 — первую официальную публичную версию. Здесь описаны разные состояния: исправление создано; участники выбрали и объединили его; их серверы испытали общий результат; затем появилась опубликованная версия. Ни один этап сам по себе не показывает, что именно установил каждый внешний администратор.

Разрыв с NCSA тоже не был полным. В тот же период центр возобновил собственную разработку. Brandon Long и Beth Frank из команды серверов NCSA в марте присоединились к списку как почётные участники, чтобы оба проекта могли обмениваться идеями и исправлениями. Первая общая версия Apache оставалась частью обмена между проектами.

Публичной версии требовалась ещё одна проверка

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

Это важно, потому что «опубликовано» не означает «работает». Участники могли проверить сборку на своих машинах и выложить файл; внешним операторам ещё предстояло учитывать собственное оборудование, конфигурацию, модули, окна обслуживания и способы отката. По истории проекта, в 1996 году Apache обогнал NCSA и стал самым используемым веб-сервером в интернете. В опубликованном тогда майском исследовании Netcraft доля Apache среди опрошенных сайтов составляла 30%, NCSA — 25%. Это убедительное свидетельство широкого распространения, но не перепись всех хостов и не журнал каждой версии, запущенной в производстве.

Документированный вклад Behlendorf лучше всего виден на этом переходе. Его работа помогла создать коммуникационные и инфраструктурные условия, при которых распределённое сопровождение могло привести к общей публикации. Разработка и испытания были работой более широкой группы; у последующей архитектуры был конкретный автор; каждый владелец сервера сохранял собственное эксплуатационное решение. Этот механизм объясняет возможность общей версии, а не всеобщее её принятие.

Note 64 — аналитическая оптика, а не история происхождения Apache

В Note 64 Heng Lu различает опубликованное предложение и изменение, которое участники реализовали, развернули и приняли. Это полезный современный вопрос к истории Apache, но сама заметка не служит историческим источником о проекте; данных о том, что основатели её предвосхитили, нет. Её заявленная область проектирования включает распределённые реестры или эквивалентные механизмы проверяемого состояния. Apache был совместно сопровождаемым веб-сервером, который позднее получил формальную проектную структуру управления. Сравнение ограничено одним наблюдением: объявление релиза не запускает его на сервере оператора.

Поэтому оператору нужно собирать доказательства и после upstream-тега: определить пакет или сборку, проверить локальные настройки и модули, развернуть поэтапно, наблюдать за процессом после переключения и сохранить путь отката. Репозиторий показывает, что выпустили сопровождающие. Только проверки под контролем оператора показывают, что работает на конкретном сервисе.

Источники