Усовершенствование процесса обновления
Компания Wiz добилась практически нулевого времени простоя при обновлениях основных версий Amazon Aurora PostgreSQL. Переход с версии PostgreSQL 14 на 16 обеспечил значительные улучшения в производительности, безопасности и эффективности. Используя возможности
Процесс с автоматизацией и репликацией
Важную роль в этом проекте сыграл разработанный инструмент DB Upgrade Pilot, представляющий собой автоматизированный процесс из восьми этапов. Он основан на
Преимущество и безопасность обновлений
Введение DB Upgrade Pilot начало с подготовки: создание снимка кластера, включение rds.logical_replication
, настройка log_statement=ddl
, отключение мешающих дополнений, синхронизация параметров и пауза для ввода данных. Обновление происходит через создание
После создания выполняется операция VACUUM ANALYZE
на зеленом кластере для обновления статистики. Мониторинг уровня задержки репликации осуществляется через CloudWatch, и выполняются проверки состояния данных. Когда задержка достигает нуля, выполняется переключение с автопереключением на случай ошибки и перенаправление трафика, сохраняя точку доступа.
Пост-обновление и мониторинг
После удачного переключения расширения, такие как pg_cron
и pg_partman
, повторно включаются и обновляются, а входящие данные возобновляются. Очистка включает снятие с эксплуатации старой инфраструктуры и удаление развертывания Blue/Green. Наблюдение ведется через Grafana, в которой отслеживаются фазы, задержки репликации, выполненные шаги и общее время простоя.
Система автоматической откатки до переключения обеспечивает безопасность, предлагая проверки шагов, идемпотентность и удаление заблокированных транзакций, что гарантирует создание слотов репликации. Образы применения специально тестировались на различных размерах кластеров и нагрузках.
Будущие направления развития
Подводя итог, Wiz добилась средней задержки системы до 30 секунд на кластер с минимальными накладными расходами. В будущем компания планирует поддерживать новые крупные версии и интегрировать функции FULL VACUUM
и другие задачи по техническому обслуживанию с минимальным воздействием на клиентов.