AOSC от Atlassian: онлайн-миграция индексов и масштабирование шардов в OpenSearch без простоев

Плагин AOSC (Atlassian OpenSearch Conductor) от компании Atlassian позволяет выполнять онлайн-миграцию индексов и масштабирование шардов в OpenSearch без остановки сервиса. Инструмент с открытым исходным кодом автоматизирует изменение схемы индексов и перераспределение шардов, что критически важно д

AOSC от Atlassian: онлайн-миграция индексов и масштабирование шардов в OpenSearch без простоев

Плагин AOSC (Atlassian OpenSearch Conductor) от компании Atlassian позволяет выполнять онлайн-миграцию индексов и масштабирование шардов в OpenSearch без остановки сервиса. Инструмент с открытым исходным кодом автоматизирует изменение схемы индексов и перераспределение шардов, что критически важно для production-сред с высокими требованиями к доступности. AOSC уже используется внутри Atlassian для управления поисковыми индексами в Jira и Confluence, а теперь доступен всему сообществу.

Что такое AOSC и как он работает

AOSC — это плагин для OpenSearch, который автоматизирует процесс изменения схемы индексов и перераспределения шардов без даунтайма. Ключевая особенность — работа без остановки кластера: AOSC создаёт новый индекс с нужной конфигурацией, синхронизирует данные с исходным индексом в реальном времени, а затем переключает трафик. Для обеспечения консистентности плагин использует двухфазную фиксацию и обработку контрольных точек.

В основе AOSC лежит механизм, который отслеживает изменения в исходном индексе с помощью OpenSearch Listeners. Плагин поддерживает как полную, так и инкрементальную синхронизацию, что позволяет минимизировать задержки при миграции больших объёмов данных. После завершения синхронизации AOSC автоматически переключает псевдонимы индексов, делая новый индекс активным.

Какие возможности онлайн-миграции индексов предоставляет AOSC?

AOSC поддерживает любые изменения схемы индексов, включая добавление или удаление полей, изменение типов данных и настройку анализаторов. В отличие от встроенных API OpenSearch (split и shrink), AOSC не требует остановки индекса и может масштабировать количество шардов как в большую, так и в меньшую сторону, без ограничения кратности двум. Это делает его универсальным инструментом для администраторов, которым нужно адаптировать поисковые индексы под меняющиеся требования.

Предыстория и контекст

Atlassian использует OpenSearch в качестве поискового движка для своих продуктов, включая Jira и Confluence. По мере роста данных и нагрузки инженеры столкнулись с необходимостью часто изменять схему индексов и количество шардов. Стандартные инструменты OpenSearch не позволяли делать это без остановки кластера, что приводило к простоям и сложностям в обслуживании.

Ранее для миграции индексов команды использовали самописные скрипты и ручные процедуры, которые были подвержены ошибкам и требовали длительного планирования. AOSC стал результатом внутренней потребности Atlassian в надёжном и автоматизированном решении, которое можно было бы использовать в production-среде без прерывания сервиса.

Чем AOSC отличается от других инструментов для масштабирования шардов?

В отличие от встроенных механизмов OpenSearch, таких как split и shrink API, AOSC не требует остановки индекса и поддерживает любые изменения схемы, включая добавление или удаление полей, изменение типов данных и настройку анализаторов. Кроме того, AOSC может масштабировать количество шардов как в большую, так и в меньшую сторону, в то время как split API увеличивает количество шардов только кратно двум.

Плагин также предоставляет REST API для управления миграцией, что позволяет интегрировать его в CI/CD пайплайны и автоматизировать процессы обновления индексов. Это выгодно отличает AOSC от ручных методов, где каждый шаг требует вмешательства администратора.

Технические детали и архитектура

AOSC построен как плагин к OpenSearch, что означает его установку непосредственно в кластер. Он использует фоновые потоки для копирования данных и не блокирует операции записи в исходный индекс. Плагин поддерживает контрольные точки для восстановления после сбоев и обеспечивает консистентность данных за счёт двухфазной фиксации.

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

Код AOSC написан на Java и опубликован под лицензией Apache 2.0 в репозитории Atlassian Labs. Документация включает примеры конфигурации и инструкции по установке. Плагин совместим с OpenSearch версий 2.x и выше.

Кого затронет и как

Разработчики и администраторы OpenSearch-кластеров получат возможность проводить миграции без простоев, что критично для production-сред с высокими требованиями к доступности. Инструмент особенно полезен для команд, использующих OpenSearch в масштабных проектах, где изменение схемы индекса ранее требовало длительного окна обслуживания.

Для бизнеса это означает сокращение времени на обновление поисковых систем и снижение риска ошибок при ручных операциях. Пользователи Atlassian-продуктов, таких как Jira и Confluence, могут косвенно выиграть от более быстрых и безопасных обновлений, хотя AOSC не является частью этих продуктов напрямую.

Что будет дальше

Atlassian планирует развивать AOSC как open-source проект, принимая вклады от сообщества. В ближайших планах — улучшение документации, добавление поддержки большего числа сценариев миграции и оптимизация производительности. Команда также рассматривает возможность интеграции AOSC с системами оркестрации, такими как Kubernetes, для автоматизации развёртывания.

Ожидается, что сообщество OpenSearch активно подключится к тестированию и доработке плагина. Atlassian приглашает разработчиков к участию через репозиторий на GitHub.

Итог

AOSC решает давнюю проблему администраторов OpenSearch — возможность изменять индексы и масштабировать шарды без остановки кластера. Инструмент уже используется внутри Atlassian и теперь доступен всему сообществу с открытым исходным кодом. Для команд, работающих с OpenSearch в production, AOSC может стать незаменимым помощником в управлении поисковыми индексами.