Хранилище и восстановление
Выбирайте хранилище в зависимости от данных, которые должны выжить при перезапуске процесса, новом развёртывании или сбое хоста. Это разные события. Постоянное хранилище само по себе не даёт резервную копию, точку восстановления или высокую доступность.
| Данные | Где хранить | Граница |
|---|---|---|
| Записи приложения | Managed Postgres или другая база данных | Перезапуск отличается от восстановления удалённых или повреждённых данных. Протестируйте отдельный путь экспорта и восстановления. |
| Данные кэша и очередей | Managed Redis | Решите, может ли нагрузка восстановить своё состояние или нужен собственный план восстановления. |
| Файлы, общие для приложений | Managed Object Storage | Установите политику доступа бакета перед загрузкой приватных данных. Автоматически создаваемый бакет default имеет публичный доступ на чтение. |
| Файлы, нужные для последующих Sandboxes | Persistent Volumes, подключаемые в /data | Одновременно только одно подключение песочницы; том остаётся на своём узле. |
| Временные файлы песочницы | Гостевая файловая система вне /data | Не ожидайте их после завершения песочницы или замены гостя. |
| Состояние приостановленного процесса | Память хоста | Пауза — не устойчивый снимок; сбой хоста лишает это состояние. |
Сохраняйте файлы после завершения песочницы
Создайте Persistent Том в том же проекте, подключите его при создании песочницы и пишите в /data. Завершите первую песочницу перед подключением тома к следующей. См. полный пример.
Планируйте восстановление базы данных
Перед миграцией или релизом, меняющим данные:
- Выберите метод экспорта для используемой базы данных и версии.
- Храните экспорт отдельно от изменяемого ресурса.
- Восстановите в отдельную тестовую базу и проверьте, что приложение может её прочитать.
- Зафиксируйте длительность восстановления и самые свежие данные, вошедшие в экспорт.
Не полагайтесь на запланированные бэкапы, восстановление к точке во времени, многоузловую репликацию или гарантии времени восстановления от управляемой базы данных. Подтвердите текущее соглашение об уровне сервиса и доступные средства управления для вашего ресурса.
Ссылки на окружение
Приложение должно читать подключение к базе из ссылки на окружение. Строка подключения — это секрет; не выводите её для проверки обновления. Проверка подключения, например SELECT 1, доказывает больше, чем просто видимость переменной в оболочке.