Стратегии обновления самостоятельно управляемого экземпляра Grafana
В Grafana Labs мы верим в выпуск функций как можно раньше и чаще, и в последние годы мы усилили нашу приверженность этой философии.
Мы больше не ждём ежегодного основного выпуска, чтобы дать вам доступ к следующему крупному улучшению. Вместо этого мы регулярно предоставляем новые функции, исправления ошибок и патчи безопасности нашим самоуправляемым пользователям (Grafana OSS и Grafana Enterprise) в течение всего года.
Наличие надёжного процесса выпуска даёт таким пользователям, как вы, лучший опыт работы с Grafana, а также предоставляет гибкость в обновлении таким образом, который лучше всего подходит вам и вашей организации.
Note
Grafana Cloud имеет другой график выпуска, чем Grafana OSS и Enterprise. В Cloud Grafana использует каналы
Rolling release. Чтобы узнать больше о каналах выпуска, см. раздел Rolling release channels for Grafana Cloud.
Чего ожидать от каждого типа выпуска
Мы разделяем выпуски Grafana OSS и Grafana Enterprise на три основные категории:
- Minor release (каждый второй месяц): Эти выпуски могут включать новые функции, уведомления об устаревании, уведомления о предстоящих разрывных изменениях, ранее объявленные разрывные изменения, исправления ошибок и патчи уязвимостей безопасности.
- Major release (раз в год, в апреле/мае): Они похожи на minor release, но сопровождаются GrafanaCON и подробным руководством по обновлению для пользователей, которые предпочитают обновляться только раз в год.
- Patching release (не реже одного раза в месяц): Они включают исправления ошибок для текущих поддерживаемых версий, а также любые патчи уязвимостей безопасности.
Вы можете выбрать свой график: для частых самоуправляемых обновлений вам следует следовать minor release (например, обновление 11.1 до 11.2), что также даёт доступ к последним функциям. Если вам нужен более длительный период для анализа наших новых выпусков, вам следует следовать major releases. Обе стратегии получают патчи безопасности (исправления безопасности высокой серьёзности также приводят к внеплановым патч-выпускам). Мы дадим дополнительные рекомендации по графикам обновления далее в этом руководстве.
Как узнать подробности о выпуске
Мы любим делиться с вами всеми нашими замечательными функциями, чтобы вы могли использовать Grafana максимально полно. Мы также понимаем, что полная документация по выпускам позволяет вам обновляться с уверенностью. Будь то знание о том, что ошибка исправлена, что уязвимость безопасности закрыта патчем, или понимание того, как смягчить последствия разрывных изменений, правильная документация позволяет вам принимать обоснованные решения о том, когда обновлять ваши локальные экземпляры Grafana.
Мы предоставляем документацию по выпускам в нескольких местах для удовлетворения различных потребностей:
- What’s new описывает новые функции, дебютирующие в каждом major и minor выпуске.
- Breaking changes уведомляют вас об обновлениях, включённых в major выпуски, которые могут повлиять на вас, и предоставляют рекомендации по смягчению последствий при необходимости.
- Upgrade guides инструктируют вас о том, как обновиться до более новой minor или major версии.
- И, наконец, changelog генерируется для каждого выпуска (major, minor, patching, security) и описывает все изменения, включённые в этот выпуск.
Когда ожидать выпуски
Grafana выпускает новую minor версию каждый второй месяц, с патч-выпусками между ними. Ниже приведены запланированные выпуски на оставшуюся часть 2026 года. Однако эти даты могут быть изменены:
Несколько важных замечаний
- Приведённый выше график описывает, как мы планируем даты выпуска. Однако непредвиденные события и обстоятельства могут привести к изменению дат.
- Инциденты безопасности высокой серьёзности и деградации функций приведут к внеплановым выпускам, которые не планируются заранее.
- Патч-выпуски предназначены для всех поддерживаемых minor-версий Grafana. Каждая поддерживаемая minor-версия получает патч-выпуски с исправлениями ошибок и патчами безопасности до окончания срока её поддержки.
- Заморозки выпусков: Каждый год Grafana проводит две заморозки выпусков, приуроченные к праздничному сезону. В это время не выполняется ни одного запланированного выпуска. Однако это не относится к изменениям, которые могут потребоваться в ходе эксплуатационного или инцидента безопасности.
Выпуски безопасности Grafana: улучшенное соглашение об именовании версий
Мы усовершенствовали наше соглашение об именовании версий выпусков безопасности, чтобы было проще чётко отличать наши выпуски безопасности от стандартных патч-выпусков.
В прошлом критические уязвимости вызывали внеплановые выпуски, которые увеличивали номер патча (например, 10.3.0 до 10.3.1). Однако мы обнаружили, что соглашение об именовании этих выпусков не чётко передавало характер обновления. Например, если была смена версии с 11.3.0 на 11.3.1, не было никакого указания, является ли это исправлением безопасности, исправлением ошибки или обновлением с новыми функциями. Это отсутствие ясности приводило к путанице в отношении срочности и характера обновления.
Note
Docker не допускает знак плюс (
+) в именах тегов образов. Знак плюс (+) будет отображаться как дефис (-) в теге docker.
Наш новый подход напрямую решает эту проблему. Впредь к выпускам безопасности будет добавляться суффикс «+security», указывающий, что выпуск является указанной версией ПЛЮС исправление безопасности.
Например: Выпуск с именем «11.2.3+security-01» будет состоять из того, что было выпущено в 11.2.3, ПЛЮС указанное исправление безопасности. После выпуска исправление безопасности также будет автоматически включено во все будущие выпуски затронутой версии.
Это соглашение об именовании должно упростить идентификацию обновлений безопасности и версии Grafana, на которой они основаны, что позволяет лучше понять важность и срочность каждого выпуска.
Что нужно знать о поддержке версий
Самоуправляемые пользователи Grafana контролируют, когда они обновляются до новой версии Grafana. Чтобы помочь вам принять обоснованное решение о том, наступило ли время обновления, важно понимать уровень поддержки, предоставляемый для вашей текущей версии.
Для самоуправляемой Grafana (как Enterprise, так и OSS) поддержка версий следует этим правилам:
- Каждая minor-версия поддерживается в течение 9 месяцев после даты её выпуска
- Последняя minor-версия major-версии получает расширенную поддержку в течение 15 месяцев после даты её выпуска
- Уровни поддержки меняются по мере выпуска новых версий:
- Full Support: Текущая major-версия получает новые функции через новые minor-выпуски
- Patch Support: Отдельные minor-версии получают патч-выпуски (исправления ошибок и патчи безопасности) до окончания срока службы
- Not Supported: Версии, вышедшие за пределы периода поддержки, не получают никаких обновлений
Вот обзор поддержки версий на период до 2027 года:
Как поддерживаются эти версии?
Самоуправляемая Grafana следует семантическому версионированию (MAJOR.MINOR.PATCH). Вот как работают различные типы выпусков:
-
Major releases (например, 12.0.0, 13.0.0):
- Отличные новые функции, а также значительные архитектурные улучшения и модернизации
- Могут включать разрывные изменения, требующие шагов миграции
- Выпускаются раз в год
-
Minor releases (например, 12.3.0, 12.4.0):
- Содержат новые функции и улучшения
- Включают исправления ошибок и патчи безопасности
- Выпускаются каждый второй месяц
-
Patch releases (например, 12.3.1, 12.3.2):
- Только исправления ошибок и патчи безопасности
- Без новых функций — они ждут следующего minor-выпуска
- Выпускаются ежемесячно
Уровни поддержки по версиям:
-
Full Support (текущая major-версия):
- Получает новые minor-выпуски с новыми функциями примерно каждый второй месяц
- Все minor-версии в рамках major получают патч-выпуски до окончания срока службы
- Пример: Major 12.x получает новые функции через 12.1.0, 12.2.0, 12.3.0 и т. д.
-
Patch Support (отдельные minor-версии):
- Каждая minor-версия получает патч-выпуски (исправления ошибок и патчи безопасности) до окончания срока службы
- Без новых функций — они появляются только с новыми minor-выпусками
- Пример: 12.3.x получает 12.3.1, 12.3.2 и т. д. только с исправлениями
-
Not Supported: Версии, вышедшие за пределы периода поддержки, не получают никаких обновлений, и их следует обновить.
Пример: Когда выпускается 12.3.0, она включает новые функции. Последующие выпуски, такие как 12.3.1 и 12.3.2, включают только исправления ошибок и обновления безопасности. Все новые функции, разработанные после 12.3.0, ждут выхода 12.4.0.
Что такое критическая деградация функций?
Критическая деградация функций обычно соответствует одному из следующих критериев:
- Основная функциональность повсеместно недоступна (например, невозможно создавать дашборды, невозможна аутентификация).
- Крупное (критическое) влияние на значительное количество клиентов.
- Крупный эскалированный инцидент для одного или нескольких клиентов.
Стратегии самостоятельного обновления
Исходя из ваших потребностей, выберите свою идеальную стратегию обновления. Вот как это может выглядеть на практике:
Следуйте стратегии «minor» для максимальной гибкости, так как вы также можете изредка удлинять график до полного квартала и по-прежнему полагаться на поддержку вашей текущей развёрнутой minor-версии исправлениями безопасности.
Как команда Grafana выявляет ошибки и разрывные изменения в процессе выпуска
- Каждая команда пишет автоматические тесты для своего кода, и мы запускаем автоматические тесты, которые включают модульные тесты, интеграционные тесты, сквозные тесты и нагрузочные тесты. Для плагинов в частности мы тестируем внешнюю и бэкенд-части источника данных (unit), интеграцию источника данных с матрицей версий Grafana (E2E) и контракт между источником данных и API, который он потребляет (integration).
- Мы выполняем внутреннее ручное приёмочное и дымовое тестирование новых функций, разворачивая их в нашем внутреннем стеке observability. После этого мы постепенно разворачиваем их в Grafana Cloud, а затем выпускаем OSS и Enterprise выпуск. Каждый этап выявляет ошибки.
- Мы выпускаем новые функции в стадиях выпуска Experimental или Private Preview, за флагами функций. Это помогает нам улучшать функцию во время разработки. Если вы заинтересованы в получении раннего доступа к функциям (включая среды разработки или тестирования), пожалуйста, сообщите нам.
- Мы непрерывно сканируем Grafana, все плагины и их зависимости на предмет уязвимостей безопасности.
Как снизить вероятность ошибок и проблем при обновлении
Несмотря на тщательное тестирование, при обновлении могут возникнуть проблемы:
Ошибки
Ошибки — это непредвиденные побочные эффекты изменений кода в выпуске, которые вызывают проблемы. Некоторые ошибки возникают у всех пользователей, и мы обычно ловим их на ранних стадиях тестирования. Другие возникают на небольшом числе экземпляров Grafana с конкретной конфигурацией или необычными случаями использования; например, конкретная настройка аутентификации или сочетание флагов функций. Плагины Grafana также взаимодействуют с внешними сервисами через API для запроса данных, и иногда эти API меняются без уведомления, вызывая проблемы для ваших дашбордов, которые зависят от этих источников данных. В Grafana Labs есть мониторинг для регулярного тестирования этих API, но иногда они ломаются неожиданными способами.
Снизьте риск ошибок, оставаясь в курсе и разворачивая обновления в средах разработки или тестирования перед production. Лицензия Grafana Enterprise даёт вам право на дополнительный экземпляр dev и test для этой цели, доступный через вашу команду аккаунта, а в Grafana Cloud вы можете создавать dev и test стеки, которые обновляются перед production, используя каналы rolling release.
- Регулярно создавайте резервные копии вашей базы данных, особенно перед обновлением.
- Откатывайтесь и сообщайте о проблемах, если они возникают в dev или test.
- В Cloud запускайте dev или test стек на канале
fast, а ваш production стек — наsteadyилиslow. Чтобы изменить канал выпуска, откройте тикет в поддержку.
Известные разрывные изменения
Как правило, мы всегда стремимся к обратной совместимости и миграции и приберегаем разрывные изменения для ежегодного major-выпуска Grafana. Однако иногда небольшие разрывные изменения (например, обновления полезной нагрузки API) выходят в minor-выпусках. Они анонсируются в руководствах по обновлению, What’s New и нашем changelog.
Всегда читайте руководство по обновлению и changelog перед обновлением, чтобы узнать и учесть разрывные изменения.
Несовместимость плагинов
Ядро Grafana поставляется как единый бинарный файл и состоит из Dashboards, Alerts, Explore, Authentication and Authorization, Reporting, некоторых встроенных источников данных и других компонентов. Однако почти все, кто использует Grafana, также используют плагины: панели, источники данных и приложения, которые выпускаются независимо от Grafana. Каждая версия плагина указывает зависимости от версии Grafana (вы можете увидеть их на https://grafana.com/grafana/plugins/), но разные версии разных плагинов также могут взаимодействовать друг с другом — например, вы можете визуализировать данные из источника данных на панели в Grafana, и все три версии независимы друг от друга. Это может создавать проблемы, которые трудно обнаружить при тестировании.
Чтобы минимизировать вероятность проблем несовместимости плагинов, запускайте последнюю доступную версию плагинов и регулярно обновляйте их. Всегда обновляйте плагины перед обновлением Grafana. Плагины также следуют паттернам Semver, поэтому проверьте changelog плагина на предмет разрывных изменений перед обновлением до новой major-версии этого плагина.