Amazon Web Services предлагает ряд инструментов непрерывного развертывания и управления, таких как Elastic Beanstalk, OpsWorks, Cloud Formation и Code Deploy в зависимости от ваших потребностей. Основная идея заключается в том, чтобы облегчить развертывание и обновление кода с нулевым временем простоя. Они также помогают управлять лучшей архитектурной практикой с использованием ресурсов AWS.Как обрабатывать миграцию БД с помощью средств развертывания AWS
Для простоты позволяет использовать базовую архитектуру, в которой у вас есть 2 структуры слез; набор серверов приложений за балансировщиком нагрузки, а затем уровень сохранения с использованием многозонной базы данных RDS.
Фактическое обновление кода через флот экземпляров (серверов приложений) легко понять. Для очень упрощенного обзора служба AWS обновляет каждый узел, в свою очередь, передавая соединения, поэтому данный экземпляр не используется.
Однако я не могу понять, как управлять обновлениями БД. Предположим, что мы переходим от версии 1.0.0 к 2.0.0 приложения и что существует потребность в изменении структуры БД. Обычно вы должны использовать сценарий или библиотеку, такую как Flyway, для выполнения обновления. Однако, если для обновления имеется парк серверов, существует точка, в которой приложения 1.0.0 и 2.0.0 существуют во всем флоте, каждый из которых требует другую структуру БД.
Мне нужно понять, как это на самом деле достигнуто (высокий уровень), чтобы узнать, какой лучший способ/время выполнения миграции БД. Я предполагаю, что есть несколько способов, которыми они могли бы достичь этого, но я изо всех сил пытаюсь понять, как они могут это сделать, и позволить как 1.0.0, так и 2.0.0 сохранять данные без потерь.
Если они перенести структуру БД с обновлением первого узла приложения и одновременно создать кешированную версию 1.0.0. Пользователи, подключенные к версии 1.0.0, сохраняются с использованием кешированной версии БД, а пользователи, подключенные к приложению 2.0.0, сохраняются в новой перенесенной БД. После переноса всех узлов приложения кэшированные данные объединяются в БД.
Кажется маловероятным, что они могут это сделать, поскольку слияние будет довольно сложным, но я не вижу другого пути. Любые указатели/помощь будут оценены.
Вы нашли хороший ответ на этот вопрос? – jkerak