Skip to content
Tech

Почему миграция схемы запускается до проверки того, выдержат ли её развёрнутые сервисы?

83

Возможность

Когда вы применяете изменение схемы к рабочей базе данных, миграция выполняется прежде, чем какой-либо инструмент проверит, способны ли текущие версии сервисов читать и писать данные в новом формате. Удалённый столбец или переименованное поле попадают в базу данных раньше, чем старые поды завершают работу, а откат восстанавливает схему, но не данные, записанные новой версией в этот промежуток. ORM-инструменты генерируют SQL из диффов, но ничего не моделируют в отношении топологии деплоя, одновременно работающих версий сервисов или реальных паттернов чтения и записи. Команды компенсируют это ритуалами expand-contract, задокументированными в вики и хранящимися в виде неформальных знаний, а не реализованными в инструментарии. Один-единственный неправильно упорядоченный шаг спровоцировал каскадные сбои в нескольких сервисах и задокументированный инцидент стоимостью 4,5 миллиона долларов только за последний год.

Почему это важно

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

Как я оцениваю возможность

Оценка возможности отражает моё личное суждение, а не точное измерение: насколько проблема болезненна, как часто она встречается и насколько мало существует решений сегодня. Чем выше оценка, тем более достойной реализации я считаю эту задачу.

Серьёзность9/10

Насколько серьёзные проблемы это создаёт.

Частота8/10

Как часто люди с этим сталкиваются.

Пробелы7/10

Насколько мало хороших инструментов для этого существует сегодня.

Ещё задачи, достойные решения

Tech

Почему программное обеспечение, от которого мы зависим больше всего, так неудобно использовать?

Tech

Почему я по-прежнему не владею ни одними из данных, которые генерирую?

Tech

This is a fundamental limitation of how most data deletion works today, and it comes down to a few core problems: **Deletion is an absence, not a presence** A receipt is a positive artifact -- proof that something *happened*. Proving a negative ("this data no longer exists anywhere") is cryptographically and architecturally much harder than proving a positive ("this file was signed at time T"). **No standard audit trail** Most systems are not built to emit a verifiable, tamper-proof log of what was deleted, when, and from which storage layer. Even if a company tells you "your data was deleted," that statement lives in their system, which they control. **Backups and replication** Data often lives in dozens of places: primary DBs, read replicas, backups, logs, caches, CDN edge nodes, analytics pipelines. A deletion receipt would need to account for all of them -- and companies rarely track this end-to-end. **No legal requirement to provide one** GDPR Article 17 gives you the right to erasure, and Article 19 requires notification to recipients -- but neither mandates a cryptographically verifiable receipt. Companies only have to confirm deletion, not *prove* it in a way you can independently verify. **Technical proof would require architectural changes** A trustworthy receipt would need something like: a Merkle-tree deletion proof, a signed timestamp from an independent witness, and a commitment scheme proving the original data existed before deletion. Almost no consumer product is built this way. The gap here is a policy and incentive problem as much as a technical one -- companies have little motivation to build verifiable deletion infrastructure when regulators don't require it.

Tech

Почему я не могу знать, соответствует ли то, что запущено, тому, что задекларировано в моём SBOM?

Tech

Почему мой сканер безопасности не обнаруживает тот класс уязвимостей, который чаще всего указывает мой ИИ-помощник?

Tech

Почему мой ИИ-агент без предупреждения направляет европейские медицинские данные через сервер в США?