Синее / зеленое развертывание, канареечные релизы и согласованность базы данных - PullRequest
0 голосов
/ 10 мая 2018

Существует несколько методов, позволяющих гарантировать, что новые изменения не сломают систему, например, упомянутое выше сине-зеленое или канареечное развертывание. И то и другое означает частичное применение изменений (изменение только части инфраструктуры или запуск новой версии параллельно со старой).

Однако я не понимаю, как сохранить согласованность данных, если в структуре данных произойдут какие-либо серьезные изменения (скажем, вы внесли изменения в GDPR - довольно вероятный случай, а?).

Даже на решениях на основе NoSQL это может вызвать проблемы (как я себе это представляю). Я пытался найти решения, но проблема широко упоминается, но редко решается.

Как можно внедрить такие методы и обеспечить согласованность данных? Как это обычно достигается в реальных приложениях?

1 Ответ

0 голосов
/ 19 июня 2018

Если я правильно понимаю ваш вопрос, вы говорите о шаблоне Expand-Contract , в котором вы изменяете свою систему для поддержки нескольких структур данных во время обновления.

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

Также известный как Параллельное изменение.

https://martinfowler.com/bliki/ParallelChange.html

...