Выпуски, пакеты и обновления
HAProxy — проект с открытым исходным кодом под лицензией GPLv2. Это означает, что его разрешено распространять при условии предоставления доступа к исходному коду по запросу, особенно если в него внесены изменения.
HAProxy развивается в основной ветке разработки «master» или «mainline», от которой создают новые ветки, когда код считается стабильным. Многие сайты добровольно используют ветки разработки в рабочей среде — чтобы участвовать в проекте или потому, что им нужна самая новая функция. Их обратная связь очень ценна для исправления ошибок и оценки общего качества и стабильности разрабатываемой версии.
Новые ветки, создаваемые после достижения достаточной стабильности кода, образуют стабильную версию и обычно сопровождаются несколько лет. Поэтому даже при использовании не самой новой ветки срочно переходить на следующую не требуется. После выпуска стабильная ветка получает только исправления ошибок и очень редко небольшие обновления функций, облегчающие жизнь пользователям. Все исправления в стабильной ветке обязательно происходят из ветки master. Это гарантирует, что после обновления ни одно исправление не потеряется. Поэтому, исправляя ошибку, готовьте патч для master, а не для стабильной ветки. Возможно, вы обнаружите, что ошибка уже исправлена. Этот процесс также делает регрессии в стабильной ветке исключительно редкими, поэтому нет причин отказываться от обновления до последней версии текущей ветки.
Номер ветки состоит из двух чисел, разделённых точкой, например «1.6». Начиная с 1.9 ветки с нечётным вторым числом в основном предназначены для существенных технических изменений и опытных пользователей, поскольку в них вероятнее появление ошибок. Они сопровождаются лишь около года, и их нельзя развёртывать там, где невозможно экстренно откатить обновление. Полный номер версии включает один или два номера подверсии, обозначающих уровень исправлений. Например, 1.5.14 — это 14-й корректирующий выпуск ветки 1.5 после выхода 1.5.0. Он содержит 126 исправлений отдельных ошибок, 24 обновления документации и 75 других перенесённых патчей, большинство из которых требовалось для исправления указанных 126 ошибок. Существующую функцию в стабильной ветке нельзя изменять или удалять: это гарантирует безопасность обновлений в пределах одной ветки.
HAProxy доступен из нескольких источников с разной частотой выпусков:
-
Официальный сайт сообщества http://www.haproxy.org/ предоставляет исходный код последнего выпуска разработки, всех стабильных выпусков и ночные снимки каждой ветки. Цикл выпусков небыстрый: между стабильными выпусками или снимками разработки проходит несколько месяцев. Там по-прежнему поддерживаются очень старые версии. Всё предоставляется только в виде исходного кода, поэтому полученное оттуда нужно собирать и/или упаковывать заново.
-
GitHub https://github.com/haproxy/haproxy/ — зеркало только ветки разработки, обеспечивающее интеграцию с системой отслеживания задач, непрерывной интеграцией и инструментами покрытия кода. Оно предназначено исключительно для участников разработки.
-
Ряд операционных систем, например дистрибутивы Linux и порты BSD, обычно предоставляют версии с длительным сопровождением. В них не всегда есть все исправления официальных выпусков, но как минимум критические исправления присутствуют. Часто это хороший вариант для большинства пользователей, которым не нужны сложные конфигурации и важно простое обновление.
-
Коммерческие версии с http://www.haproxy.com/ — профессиональные пакеты с поддержкой, собранные для разных операционных систем или поставляемые как готовые устройства. Они основаны на последних стабильных версиях и включают востребованные функции, перенесённые из следующего выпуска. Это лучший вариант для пользователей, которым нужны новейшие функции с надёжностью стабильной ветки, максимально быстрое исправление ошибок либо просто договор поддержки продукта с открытым исходным кодом.
Чтобы убедиться, что используется последняя версия своей ветки, действуйте следующим образом:
-
Проверьте, какой исполняемый файл HAProxy запускается. В некоторых системах он поставляется по умолчанию, а администраторы устанавливают свои версии в другом месте. Поэтому важно проверить используемый файл в сценариях запуска.
-
Определите источник своей версии HAProxy. Обычно достаточно команды «haproxy -v». Версия разработки выглядит следующим образом: после номера ветки стоит слово «dev».
Стабильная версия выглядит следующим образом, как и неизменённые стабильные
версии, поставляемые производителями операционных систем:
Ночной снимок стабильной версии выглядит следующим образом: после номера
версии идёт шестнадцатеричная последовательность, а дата снимка указывается
вместо даты выпуска:
Любой другой формат может указывать на пакет для конкретной системы
с собственным набором патчей. Например, версии HAProxy Enterprise отображаются
в следующем формате (<branch>-<latest commit>-<revision>):
Обратите внимание: версии до 2.4 выводили имя процесса с дефисом между
"HA" и "Proxy". Это относится и к версиям выше, примеры которых исправлены
лишь для демонстрации правильного формата. Поэтому в сценариях лучше
игнорировать это слово или использовать менее строгое сопоставление.
Кроме того, современные версии добавляют URL домашней страницы проекта.
Наконец, версии 2.1 и выше включают строку "Status", указывающую,
безопасно ли использовать версию в рабочей среде и, если да, до какого
срока, а также ссылку на список известных ошибок этой версии.
- Для системных пакетов проверьте репозиторий пакетов или систему обновлений поставщика, чтобы убедиться, что система всё ещё поддерживается и для вашей ветки выпускаются исправления. Для версий сообщества с haproxy.org посетите сайт, проверьте состояние ветки и сравните последнюю версию со своей. Если ваша версия не последняя, её можно обновить. Если ветка больше не сопровождается, вы сильно отстали и должны рассмотреть переход на более новую ветку, внимательно прочитав README.
HAProxy следует обновлять способом, соответствующим его источнику. Обычно это стандартная процедура обновления пакета у поставщика системы. Если HAProxy собран из исходного кода, после распаковки прочитайте README в каталоге исходников и следуйте инструкциям для своей операционной системы.