revise July 2026 migration playbook articles
Build and deploy / deploy (push) Successful in 15s

This commit is contained in:
2026-07-31 19:43:02 +03:00
parent 0003133514
commit f312d7a598
7 changed files with 351 additions and 1 deletions
+45
View File
@@ -0,0 +1,45 @@
# P101 — июль 2026: migration playbook
Историческая граница: 31.07.2026. Пакет ограничен июльским overlay, этим review и тремя SVG. Все routes, records, доли traffic, окна, owners и return states в статьях — именованные fixed synthetic literals; они не описывают переход, инцидент или среду.
## Проход 1 — проблема, плотность, голос и независимость
- Practice начинает с проблемы плана без инвентаря и цены невозможного ответа при сбое. Его предмет — собрать phases и gates до любого разговора о cutover.
- Mechanism отделяет инварианты inventory, comparable traffic, reversible data и decidable rollback. Это не второй checklist phases.
- Field ограничен synthetic rehearsal/evidence hand-off: вход, criterion, counterexample и exact stop. Он не сообщает о проведённой репетиции.
- Повторно проверено: первые два абзаца каждого текста называют проблему и цену; у каждой статьи отдельные таблица, figure, пример, последовательность, границы и следующий шаг. Попарный scan исключает source lists, но включает code: 0 одинаковых абзацев длиной от 160 символов и 0 общих 12-словных фрагментов.
## Проход 2 — источники, cutoff и literal execution
1. [Kubernetes Deployments v1.33](https://v1-33.docs.kubernetes.io/docs/concepts/workloads/controllers/deployment/) — versioned Kubernetes 1.33 documentation line, доступная до cutoff. Использован только узкий предел: Deployment rollback относится к revision/Pod template, поэтому controller rollback нельзя приравнивать к recovery данных. Это не доказательство состояния кластера, traffic или результата миграции.
2. [Google SRE Book: Addressing Cascading Failures, Wayback capture 2025-01-23](https://web.archive.org/web/20250123164219id_/https://sre.google/sre-book/addressing-cascading-failures/) — immutable archival capture. Использовано только понятие положительной обратной связи и ценность ранней остановки. Источник не подтверждает failure mode или threshold synthetic record.
3. [RFC 2119, March 1997](https://www.rfc-editor.org/rfc/rfc2119.txt) — immutable RFC text. Он определяет requirement keywords; MUST/MAY в статьях относятся только к проверяемой структуре in-memory model, не к внешнему распоряжению.
Public exports выполнены буквально: `inspectFixedMigrationInventory` вернул `fixed-inventory-complete`; `evaluateFixedTransitionState` на candidate без control вернул `stop-unbounded-traffic-slice`; `reviewFixedMigrationPlaybook` без trigger вернул `stop-unnamed-rollback-trigger`. Fixture: 14/14. Положительный status остаётся `synthetic-migration-review-hand-off` с `productionEffect: not-attempted`.
## Проход 3 — публикационное качество и мобильные схемы
- `node --check`, fixture и `npm run audit:draft` прошли. Длина тел: 8 660 / 9 492 / 9 620 знаков.
- XML и safety scan для трёх SVG прошли: нет `script`, `foreignObject`, JavaScript URL, data image или event handler.
- Первичные схемы отклонены: `viewBox 1200` и 14–18px рабочий текст давали нечитаемый рендер на 375px. Они заменены на оригинальные схемы `720px` с рабочим текстом 20–24px; Sharp renders проверены визуально — текст, стрелки и стоп-ветви не обрезаны.
- Draft готов для независимой production-приёмки. Registry, README, staging, commit и push не входят в этот sidecar review.
## Независимая приёмка основным редактором — 31 июля 2026
### Проход 1 — проблема, плотность и независимость
- Practice не начинает с target architecture: он требует inventory и gates. Mechanism разбирает инварианты recovery и comparable traffic. Field ограничивает rehearsal evidence и hand-off. Три материала различаются по вопросу и по механизму, а не только заголовком.
- Повторный audit подтвердил 8 660 / 9 492 / 9 541 знака. В каждой статье есть table, отдельный visual, literal public export, последовательность, границы и следующий шаг; сильные глаголы не маскируют реальный cutover.
### Проход 2 — факты и исполняемость
- [Kubernetes v1.33 Deployments](https://v1-33.docs.kubernetes.io/docs/concepts/workloads/controllers/deployment/) проверен напрямую: документация разделяет rollback Deployment revision и отмечает, что при возврате ранней revision откатывается только Pod template. Это использовано ровно как предел аналогии, не как утверждение о данных, traffic или кластере.
- Зафиксированный [Wayback capture SRE Book](https://web.archive.org/web/20250123164219id_/https://sre.google/sre-book/addressing-cascading-failures/) отвечает HTTP 200; тот же первичный текст SRE Book прямо определяет cascading failure через positive feedback. [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119.txt) непосредственно определяет MUST и MAY. Оба источника ограничивают язык модели, а не создают распоряжения к среде.
- Literal execution повторно вернул `fixed-inventory-complete`, `stop-unbounded-traffic-slice`, `stop-unnamed-rollback-trigger` и `synthetic-migration-review-hand-off`; у положительной ветки остаётся `productionEffect: not-attempted`.
### Проход 3 — выпускная проверка
- `node --check`, fixture `14/14`, `npm run audit:draft`, XML validation и safety scan повторно прошли.
- В принятом mobile review была обнаружена обрезка правой колонки rollback matrix на 375px. Подписи сокращены без подмены смысла, SVG повторно прошёл XML/safety, был отрендерен Sharp и визуально просмотрен; все три схемы читаемы, без обрезанных стрелок и полей.
- Строгий pairwise scan без source lists, с code, даёт для всех трёх пар `exactParagraphs160: 0` и `common12WordFragments: 0`.
- Итог: P101 готов как synthetic migration-review пакет. Он не является планом запуска реальной миграции, разрешением cutover, recovery procedure или claim о production state.