Книга: Руководство по DevOps
Управление сменой баз данных
Управление сменой баз данных
Проблему создает наличие двух версий приложения в производстве, зависящих от общей базы данных: когда при развертывании требуется изменить схему базы данных или в самой базе добавить, изменить либо удалить таблицу или колонку, она не в состоянии поддерживать обе версии приложения. Есть два общих подхода к решению:
• создание двух баз данных (например, синей и зеленой): каждая версия приложения — синяя (старая) и зеленая (новая) — имеет собственную базу данных. В процессе релиза мы ставим синюю базу данных в режим «только для чтения», выполняем ее резервное копирование, восстанавливаем данные в зеленую базу данных и, наконец, переключаем трафик на зеленую среду. Проблема этой модели в том, что, когда нам необходимо вернуться к синей версии, мы потенциально можем потерять транзакции, если только сначала не перенесем их вручную из зеленой версии;
• отделение изменений базы данных от изменений приложения: вместо того чтобы поддерживать две базы данных, мы отделяем релиз изменений в базе данных от релиза изменений в приложении, сделав две вещи. Во-первых, мы делаем только дополнения к нашей базе данных и никогда не видоизменяем существующие объекты базы данных, во-вторых, мы не делаем никаких предположений в нашем приложении о том, какая версия базы данных будет работать в производстве. Это сильно отличается от традиционного отношения к базам данных, то есть установки на то, чтобы избегать дупликации данных. Процесс отделения изменений базы данных от изменений приложения был использован компанией IMVU (и другими) приблизительно в 2009 г., что позволило ей делать 50 развертываний в день, причем некоторые из них требовали изменения базы данных[96].
- Количество разработчиков в неделю, развертывающих свой код
- Автоматизируем процесс развертывания
- Практический пример
- Ежедневное развертывание в компании CSG International (2013 г.)
- Включите автоматизированное самообслуживание развертываний
- Интегрируйте развертывание кода в конвейер развертывания
- Практический пример
- Самообслуживаемое развертывание разработчиками в компании Etsy — пример непрерывного развертывания (2014 г.)
- Отделить развертывания от релизов
- Шаблоны релиза на основе среды
- Шаблон Blue-Green развертывания
- Управление сменой баз данных
- Практический пример
- Blue-Green развертывание для системы торговых точек компании Dixons Retail (2008 г.)
- Шаблоны канареечных релизов и cluster immune systems
- Шаблоны релиза на основе приложений обеспечивают более безопасный релиз
- Реализация переключателей функциональности
- Выполняйте теневые запуски
- Практический пример
- Теневой запуск чата Facebook (2008 г.)
- Обзор непрерывной доставки и непрерывного развертывания на практике
- Заключение
- Резервное копирование базы данных InterBase
- Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Владелец базы данных
- ЧАСТЬ IV. База данных и ее объекты.
- Перевод базы данных InterBase 6.x на 3-й диалект
- Типы данных для работы с датой и временем
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Обзор основных причин повреждения базы данных
- Ошибки проектирования базы данных
- Профилактика повреждений баз данных InterBase