Перейти к содержимому

11. Риски и технический долг

Эти риски следуют из принятых контрактов, внешних зависимостей и пробелов в подтверждении их работы. Это не перечень происшествий в промышленной эксплуатации. Записанное превышение времени запуска Python — наблюдаемое отклонение; остальные пункты в основном относятся к реализации и интеграции. Нереализованная возможность не становится техническим долгом автоматически, а принятие ADR не закрывает риск.

P1 обозначает риск для полномочий, целостности данных или достоверности результата. Его нужно устранить до заявления соответствующей гарантии. P2 обозначает риск для удобства, производительности или пригодности к эксплуатации, который нужно оценить для заявленной конфигурации поддержки. Это приоритеты проверки, а не измеренные вероятности и не план выпуска продукта.

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

РискПриоритет / ответственная рольПоследствие и необходимые подтверждения
R01 — Контракты согласованы на бумаге, но реализации расходятсяP1 · разработчики ядра и адаптеровРазборщик, встроенный обработчик или адаптер MCP может пропустить проверку, действующую в другом пути. Исполняемые схемы, отрицательные проверки соответствия и единая локальная сборка CLI/MCP должны подтвердить общие контракты команды, полномочий и результата, включая независимое обновление расширений. Эталонные проверки процессов не подтверждают такую сборку. Q05, Q07, Q17, Q19
R03 — Заявленные гарантии исполнения недоступны на конкретной машинеP1 · разработчик исполнителя и владелец CLIОграниченная учётная запись, правила запуска процессов, наследование дескрипторов, подмена путей или вышедшие из контроля потомки могут нарушить гарантию. Нужны точные ОС, среда, файловая система и политика, проверка установления ограничений до запуска кода, обработки отказа и очистки. Доверенный процесс остаётся вне изоляции независимо от квот задачи. Q09, Q15
R04 — Одновременная запись или авария нарушают общий учёт владенияP1 · разработчик хранилища и координатораСмешанная ревизия профиля, повторно выданный бюджет или преждевременное удаление могут запустить другой выпуск либо потерять защищаемое состояние. Нужны искусственные сбои при записи, сохранении, фиксации и получении ссылок из нескольких процессов; незавершённый хвост нужно отличать от повреждения. Сетевое или синхронизируемое хранилище требует собственных подтверждений и не равно проверенному локальному. Q03, Q08
R05 — Внешний источник полномочий меняется или отказывает во время операцииP1 · разработчик интеграции идентичности/прав и владелец CLIУстаревший ответ, обновление токена или локальный запасной путь могут восстановить отозванные права. Нужны проверки окончательного допуска при отзыве и смене учётной записи, а также описание доставки изменений и сроков действительности выбранного поставщика. Наблюдаемый локальный отзыв не доказывает мгновенный отзыв на всех машинах. Q02, Q16
R06 — Внешнее действие состоялось, но ответ потерянP1 · разработчики адаптера операции и хранилища действийСлепой повтор может выполнить действие дважды; удаление неопределённости — освободить уже потраченный лимит. Нужны проверки одноразового допуска, восстановления после аварии и сверки с конкретной службой. Неопределённые действия удерживают резервы и могут исчерпать ёмкость; отмена не является откатом. Q10, Q18
R07 — Целостность артефакта принимается за одобрение издателяP1 · владелец CLI и разработчик адаптера доставкиКонтрольная сумма из того же недоверенного источника не устанавливает доверие. Проверяются одобрение издателя/пакета/содержимого, изменённые байты, границы распаковки, отозванные выпуски и возврат к версии при текущей политике. Более сложные подписи и доставка ключей требуют явных решений о жизненном цикле доверия. Q11
R08 — Подготовка среды или доверенная интеграция выходят за границу владенияP1 · разработчик поставщика среды или интеграцииОбработчик менеджера сред, глобальная установка или неотменяемый вызов внутри процесса могут превысить полномочия либо сорвать остановку. Проверяются точные планы подготовки, права каждого ожидающего, отмена, конечные ресурсы и сохранность заимствованных инструментов. Для принудительной остановки работы нужна поддерживаемая привязка с внешним контролем исполнения. Q04, Q05, Q14
R09 — Вывод, диагностика или взаимодействие пересекают неверную границуP1 · разработчики ядра, интерфейса и адаптеров операцийУправление терминалом, секреты или закрытый состав групп могут попасть в протокольный вывод, журналы, публичный каталог или недоверенное подтверждение. Проверяются сохранность байтов конвейера, владение терминалом, неинтерактивный режим, защищённые ссылки на учётные данные и отказ обязательного аудита. Доступность интерфейса и работа настоящих терминалов требуют отдельных подтверждений в выбранной среде. Q12, Q16, Q18
R02 — Запуск Python превышает принятые сравнительные пределыP2 · разработчик адаптера процесса/средыЭталон ADR-0003 укладывается в пределы короткого IPC, но превышает пределы готовности и полного вызова для Python. Нужно разделить затраты запуска, импорта и адаптера и повторить сопоставимые измерения, сохранив обязательные проверки. Пределы остаются прежними. Q06
R10 — Проектные квоты принимаются за измеренную ёмкостьP2 · разработчик ядра и владелец CLIРазмер каталога, одновременные вызовы, вывод, медленные зависимости и накопленная неопределённость могут сделать допустимую конфигурацию непрактичной. Нужно измерить выбранную нагрузку и поведение при исчерпании ресурсов; квоты не являются гарантиями пропускной способности, памяти, задержки или доступности. Простота локальной настройки и работы входит в ту же оценку. Q13, Q14, Q15

Риски сгруппированы по приоритету; при его изменении идентификатор сохраняется. Точные правила и исторические результаты остаются в определяющих решениях:

РискиОпределяющие решения
R01ADR-0002, ADR-0006, ADR-0010, ADR-0013
R02ADR-0001, ADR-0003
R03ADR-0003, ADR-0014, ADR-0015
R04ADR-0007, ADR-0009, ADR-0014
R05ADR-0005, ADR-0011, ADR-0012
R06ADR-0004, ADR-0016
R07ADR-0007, ADR-0009
R08ADR-0008, ADR-0010, ADR-0015
R09ADR-0002, ADR-0009, ADR-0011, ADR-0013, ADR-0016
R10ADR-0003, ADR-0007–ADR-0010, ADR-0014, ADR-0016

11.2 Открытые предположения и подтверждения

Заголовок раздела «11.2 Открытые предположения и подтверждения»

Представление развёртывания описывает размещение и эксплуатационные зависимости; сценарии качества — требуемую реакцию. Ни одно не заменяет описание проверенной конфигурации реализации. Для каждой заявленной конфигурации владельцу CLI и разработчикам нужны следующие подтверждения:

Открытый вопросДанные для оценки пригодности
Платформа и политика организацииТочные ОС, архитектура, среда, файловая система, права учётной записи и ограничения исполнения; результаты в обычной и ограниченной среде, а не только на машине администратора
Нагрузка и производительностьЧисло расширений/команд, размеры данных и вывода, параллельные вызовы и подготовка, состояние кэша, объём сохранённого состояния и задержки зависимостей; затраты ядра измеряются отдельно от работы команды и загрузок
Доступность зависимостейОбязательные и необязательные службы, выбранные сроки и правила актуальности, диагностика при потере связи и обязательства самого поставщика. Внешний отказ не включает более слабую локальную политику
Постоянное состояние и восстановлениеРезультаты искусственных сбоев выбранного хранилища; безопасное восстановление после повреждения или потери с учётом устаревших политик, записей задач/действий и учётных данных. Восстановление файлов само по себе не доказывает действительность старого полномочия или погашенного разрешения
Эксплуатация и обращение с даннымиОтветственная роль и порядок изменения доверия/политики, обработки отказа защищённого хранилища, исчерпания квот и неопределённых действий; допустимые поля диагностики, доступ и сроки хранения для выбранных интеграций

Эти страницы не выбирают общий процент доступности парка машин, срок восстановления, период хранения данных или обещанную параллельность. Недостающие значения явно отмечены в разделе 10, где измерения можно привязать к конкретному сценарию. Новая гарантия сначала требует уточнения определяющего ADR. Обычные результаты проверки соответствия можно добавлять, не выдавая их за новые архитектурные решения.

11.3 Границы, требующие дополнительных решений

Заголовок раздела «11.3 Границы, требующие дополнительных решений»

Принятый локальный вариант уже допускает доверенные расширения, местные правила доступа и защищённый локальный учёт. Устранение перечисленных рисков не должно делать корпоративные службы обязательными. При этом небольшая команда сохраняет проверки целостности, прав и владения ресурсами. ADR-0009, ADR-0010

Дополнительные исполнители и владение фоновой работой, более сложная доставка доверия и подписей, внешнее хранение аудита и конкретная распределённая координация требуют отдельных решений, если добавляют гарантии сверх принятых контрактов. Текущие диаграммы не означают их неявной поддержки. ADR-0002, ADR-0004, ADR-0007, ADR-0015, ADR-0016

Диаграмма

Перетаскивайте схему · + / − — масштаб · 0 — целиком · Esc — закрытьПеремещайте и увеличивайте схему двумя пальцами

100%