В современном мире управления проектами и задачами, инструменты наподобие Jira играют ключевую роль в работе миллионов команд и организаций. Вся информация о проектах, задачах, пользователях и настройках хранится в базе данных, и от ее надежности и производительности напрямую зависит эффективность работы пользователей. Компания Atlassian, разработчик Jira, недавно реализовала масштабный проект миграции базы данных своего продукта с традиционной платформы PostgreSQL на облачный сервис AWS Aurora. Данная операция является одной из крупнейших в своем роде и имеет огромное значение для индустрии, поскольку она без значительных сбоев и потерь данных коснулась миллионов пользователей одновременно. Изначально архитектура Jira была построена на модели, где для каждого арендатора или клиента создается отдельная база данных.
Такой подход обеспечивает максимальную изоляцию данных, высокую масштабируемость и независимость в управлении ресурсами. Однако из-за огромного количества арендаторов (около четырех миллионов баз данных) возникали значительные вызовы в плане управления инфраструктурой, равномерного распределения нагрузки и повышения производительности баз данных на глобальном уровне. Решением Atlassian стало использование возможностей AWS Aurora, облачного продукта, основанного на PostgreSQL, который предлагает улучшенные SLA, автоматическое масштабирование и возможность одновременно использовать как читающие, так и записывающие экземпляры базы данных. Это обеспечило способ снизить размеры отдельных инстансов баз данных, сохраняя при этом высокий уровень производительности и надежности. Главной задачей при миграции было выполнить перенос данных без видимых для конечных пользователей перебоев в работе Jira.
Для этого компания использовала различные методы в зависимости от размера базы данных. Для небольших баз достаточным был быстрый бэкап и восстановление данных. Для крупных баз применялась более сложная стратегия логической репликации, позволяющая синхронизировать данные между исходным и целевым экземплярами, обеспечивая непрерывный доступ к сервису на время миграции. Особенностью процесса стало то, что миграция происходила не отдельной базой, а целыми экземплярами, содержащими до 4000 баз данных одновременно. Для перевода экземпляра с RDS PostgreSQL на Aurora создавался реплика экземпляра, который синхронизировал данные с новым кластером Aurora.
Позже происходило преобразование реплики в автономный кластер, и приложения перенастраивались на новый адрес подключения. Этот процесс требовал тщательной координации, чтобы обеспечить переключение без риска записать данные в старую базу или потерять соединение. Однако процесс не прошел без сложностей. При попытке миграции одного из крупных тестовых экземпляров оказалось, что рост общего количества файлов, хранящихся на диске, влияет на время запуска кластеров Aurora, что приводило к таймаутам и ошибкам. В PostgreSQL каждой таблице, индексу и другой структуре соответствуют файлы на диске, и учитывая огромное количество баз данных и огромный размер Jira-баз, суммарное число файлов на диске достигало беспрецедентных величин.
Совместно с AWS Atlassian разработали стратегию «слива» экземпляров — уменьшение количества баз данных на одном экземпляре до приемлемого уровня, позволяющего избежать перегрузки и обеспечить успешный запуск Aurora кластера. Этот дренаж происходил с прицелом на миграцию и дальнейшее перераспределение баз на новых Aurora кластерах. Важным аспектом проекта стало управление конвейером миграций. Для эффективной работы было необходимо контролировать количество параллельных миграций с исходных RDS и на целевые Aurora кластеры, чтобы не создавать чрезмерную нагрузку и поддерживать стабильность системы во время выполнения операций. Баланс между расширением количества кластеров, стоимостью инфраструктуры и скоростью выполнения миграций требовал тщательного анализа и корректировки параметров в режиме реального времени.
Результатом проделанной работы стало значительное улучшение ключевых показателей системы. Миграция позволила снизить размеры инстансов в среднем в два раза, благодаря возможности Aurora использовать сразу несколько экземпляров для чтения и записи. Это повлияло на снижение операционных затрат Atlassian и улучшило время отклика Jira для конечных пользователей. Благодаря лучшим SLA AWS Aurora обеспечил более высокую надежность и устойчивость к сбоям. Опыт Atlassian представляет собой уникальный кейс массового перехода с традиционных СУБД на облачную платформу, особенно учитывая масштаб — миллионы пользователей и сотни тысяч отдельных баз данных.
Он демонстрирует, насколько детальная подготовка, тесное сотрудничество с поставщиком облачных услуг и гибкие стратегии миграции критичны для успешного проведения подобных проектов. За счет использования современных облачных технологий и автоматизации процессов компании удается не только поддерживать стабильную работу бизнес-критичных систем, но и получить значительный выигрыш в эффективности и снижении затрат, что имеет решающее значение в конкурентной среде. Данный пример от Atlassian может стать ориентиром для других организаций, которые стремятся перейти на облачные платформы управления данными и сервисами. В заключение стоит отметить сотрудничество Atlassian и AWS, благодаря которому была преодолена сложность с огромным количеством файлов и масштабируемостью баз данных. Такое партнерство является примером того, как совместная работа инженеров и разработчиков позволяет создавать надежные и устойчивые решения для крупномасштабных задач.
Будущее облачных технологий за инновациями и умением адаптироваться к постоянно меняющимся требованиям бизнеса и пользователей, и миграция Jira на AWS Aurora стала ярким свидетельством этого пути.