12.3

Смотреть на английском

12.3 Шаблоны

Эти шаблоны готовые к копированию отправные точки. Перенесите любой шаблон в вашу вики, репозиторий или систему заявок и заполните заполнители в скобках. Заметки курсивом и встроенные комментарии объясняют, что относится к каждому разделу; удалите их, когда раздел заполнен. Держите шаблоны лёгкими: шаблон, который быстрее пропустить, чем заполнить, использоваться не будет. Адаптируйте заголовки и разделы к вашей организации, но сохраняйте назначение каждой части.

Несколько условностей, используемых ниже:

  • Текст в [квадратных скобках] заполнитель для замены.
  • Текст в курсиве или <!-- комментариях --> указание для удаления.
  • Держите готовый документ настолько коротким, насколько возможно, пока он отвечает на свои вопросы.

Запись архитектурного решения (ADR)

# ADR [NNNN]: [Краткое название решения]

- Статус: [Предложено | Принято | Устарело | Заменено ADR-XXXX]
- Дата: [ГГГГ-ММ-ДД]
- Принимающие решение: [имена или роли]
- Консультированные: [имена или роли]

## Контекст

<!-- Какая проблема, сила или ограничение движут этим решением?
     Изложите факты и требования нейтрально. Включите только то, что
     нужно будущему читателю, чтобы понять, почему решение было
     необходимо. -->

## Решение

<!-- Изложите выбор в одном-двух ясных предложениях: «Мы будем ...» -->

## Рассмотренные альтернативы

<!-- Перечислите реалистичные варианты, которые вы взвесили, и почему
     каждый был или не был выбран. Здесь должны быть как минимум две
     альтернативы. -->

- Вариант A: [краткое описание]; отклонён, потому что [причина].
- Вариант B: [краткое описание]; отклонён, потому что [причина].
- Выбранный вариант: [краткое описание]; выбран, потому что [причина].

## Последствия

<!-- Честные результаты решения, как хорошие, так и плохие. -->

- Положительные: [полученные выгоды]
- Отрицательные: [принятые цены, риски или ограничения]
- Последующее: [миграции, новая работа или решения, которые это запускает]

## Связанное

<!-- Ссылки на предыдущие ADR, RFC, заявки или документы, к которым
     это относится. -->

RFC / проектный документ

# RFC: [Название]

- Автор(ы): [имена]
- Статус: [Черновик | На рецензии | Одобрен | Отклонён | Реализован]
- Рецензенты: [имена или роли]
- Создан: [ГГГГ-ММ-ДД]
- Последнее обновление: [ГГГГ-ММ-ДД]
- Заявка / отслеживание: [ссылка]

## Резюме

<!-- Один абзац: что это предлагает и почему важно. Читатель должен
     уловить суть из одного этого раздела. -->

## Проблема и мотивация

<!-- Какую проблему мы решаем? Кого она затрагивает? Что случится,
     если мы ничего не сделаем? Включите релевантный фон и ограничения. -->

## Цели и не-цели

- Цели: [как выглядит успех, измеримо, где возможно]
- Не-цели: [явно вне объёма, чтобы предотвратить расползание объёма]

## Предлагаемый проект

<!-- Ядро документа. Опишите подход, архитектуру, модель данных,
     интерфейсы и ключевые потоки. Используйте диаграммы там, где они
     проясняют. Объясните, как это работает, а не только что это. -->

## Рассмотренные альтернативы

<!-- Другие подходы и почему они не были выбраны. Показывает читателю,
     что пространство проектных решений было исследовано. -->

## Воздействие и риски

- Безопасность и приватность: [последствия и смягчения]
- Производительность и масштаб: [ожидаемая нагрузка и поведение]
- Эксплуатируемость: [мониторинг, режимы отказа, выкатка, откат]
- Цена: [влияние на инфраструктуру или лицензирование]
- Обратная совместимость: [миграция и устаревание]

## План тестирования и выкатки

<!-- Как изменение будет проверено и безопасно выпущено. -->

## Открытые вопросы

<!-- Нерешённые вопросы, по которым вы хотите услышать рецензентов. -->

Разбор инцидента (безвинный)

# Разбор: [Название инцидента]

- ID инцидента: [ID]
- Дата инцидента: [ГГГГ-ММ-ДД]
- Авторы: [имена]
- Статус: [Черновик | Окончательный]
- Серьёзность: [SEV1 | SEV2 | SEV3]

> Эта рецензия безвинна. Мы сосредоточены на системах и способствующих
> факторах, а не на отдельных людях. Цель учиться и предотвратить
> повторение.

## Резюме

<!-- Два-три предложения: что случилось, воздействие и разрешение,
     понятные неспециалисту. -->

## Воздействие

- Длительность: [от начала до времени восстановления, с часовым поясом]
- Затронутые пользователи: [охват и число]
- Влияние на бизнес: [выручка, SLA, репутация или иное]

## Хронология

<!-- Фактическая последовательность событий с метками времени. Включите
     обнаружение, эскалацию, ключевые действия и восстановление. -->

- [ЧЧ:ММ] [событие]
- [ЧЧ:ММ] [событие]

## Способствующие факторы

<!-- Цепочка условий, приведших к инциденту. Предпочитайте
     «способствующие факторы» единственной первопричине. -->

## Обнаружение и реагирование

- Как это было обнаружено? [оповещение, сообщение клиента и т. д.]
- Что помогло реагированию?
- Что замедлило реагирование?

## Что прошло хорошо

<!-- Отметьте эффективные действия и защиты, которые сработали. -->

## Действия

<!-- Конкретные, с владельцем и датой. Касаются предотвращения,
     обнаружения и смягчения. Отслеживайте их в обычном бэклоге. -->

| Действие | Владелец | Срок | Тип (предотвращение/обнаружение/смягчение) | Заявка |
|----------|----------|------|--------------------------------------------|--------|
| [действие] | [имя] | [дата] | [тип] | [ссылка] |

## Извлечённые уроки

<!-- Что более широкая организация должна вынести. -->

Модель угроз (на основе STRIDE)

# Модель угроз: [Название системы или функции]

- Автор(ы): [имена]
- Дата: [ГГГГ-ММ-ДД]
- Рецензенты: [контакт безопасности, владельцы]
- Объём: [что охвачено и что нет]

## Обзор системы

<!-- Краткое описание системы, её назначения и пользователей. -->

## Активы

<!-- Что стоит защищать: данные, учётные данные, функциональность,
     репутация. Отметьте чувствительность каждого. -->

## Границы доверия и поток данных

<!-- Опишите или изобразите компоненты, хранилища данных, внешние
     сущности и границы, где меняется доверие. -->

## Угрозы (STRIDE)

<!-- Для каждого элемента рассмотрите категории STRIDE. Запишите каждую
     правдоподобную угрозу, её риск и смягчение или принятый риск. -->

| Угроза | Категория STRIDE | Затронутый элемент | Риск (Н/С/В) | Смягчение | Статус |
|--------|------------------|--------------------|--------------|-----------|--------|
| [угроза] | Spoofing | [элемент] | [риск] | [контроль] | [открыта/смягчена/принята] |
| [угроза] | Tampering | [элемент] | [риск] | [контроль] | [статус] |
| [угроза] | Repudiation | [элемент] | [риск] | [контроль] | [статус] |
| [угроза] | Information disclosure | [элемент] | [риск] | [контроль] | [статус] |
| [угроза] | Denial of service | [элемент] | [риск] | [контроль] | [статус] |
| [угроза] | Elevation of privilege | [элемент] | [риск] | [контроль] | [статус] |

## Допущения и зависимости

<!-- Допущения безопасности, на которые опираются, и внешние контроли,
     которым доверяют. -->

## Открытые вопросы и последующая работа

<!-- Угрозы, требующие дальнейшей работы, отслеживаемые как заявки. -->

Руководство по эксплуатации

# Руководство по эксплуатации: [Название задачи или сценария]

- Сервис: [название сервиса]
- Владелец: [команда]
- Последняя рецензия: [ГГГГ-ММ-ДД]
- Связанные оповещения: [названия оповещений]

## Назначение

<!-- Когда использовать это руководство и чего оно достигает. -->

## Предпосылки

<!-- Доступ, инструменты и разрешения, нужные перед началом. -->

## Обнаружение / симптомы

<!-- Что наблюдает оператор: оповещения, сигнатуры ошибок, панели. -->

## Диагностика

<!-- Пошаговые проверки для подтверждения проблемы и сужения причины.
     Включите точные команды, запросы или ссылки на панели. -->

1. [шаг и ожидаемый результат]
2. [шаг и ожидаемый результат]

## Разрешение

<!-- Конкретные упорядоченные шаги для исправления или смягчения.
     Отметьте любой рискованный или необратимый шаг и как проверить
     успех. -->

1. [шаг]
2. [проверить восстановление]

## Откат

<!-- Как отменить действия, если разрешение ухудшает положение. -->

## Эскалация

<!-- К кому обращаться и когда эскалировать. Вторичный дежурный,
     владеющая команда и контакты поставщиков. -->

## Источники

<!-- Панели, связанные руководства, архитектурные документы. -->

README сервиса / запись каталога сервисов

# [Название сервиса]

- Команда-владелец: [команда]
- Дежурство: [ссылка на ротацию]
- Уровень / критичность: [Уровень 1 | 2 | 3]
- Репозиторий: [ссылка]
- Статус: [Активен | Устарел]

## Что он делает

<!-- Один абзац об ответственности сервиса и его потребителях. -->

## Архитектура

<!-- Ключевые компоненты, зависимости (вышестоящие и нижестоящие) и
     ссылка на проектный документ или диаграмму. -->

## Интерфейсы

- API / конечные точки: [ссылка на спецификацию]
- События опубликованные / потребляемые: [темы]
- Хранилища данных: [базы данных, кэши, корзины]

## Исполнение и развёртывание

- Окружения: [dev, staging, prod]
- Как развернуть: [ссылка на конвейер и процесс]
- Конфигурация и флаги функций: [где и как]

## Наблюдаемость

- Панели: [ссылки]
- Оповещения: [ссылки]
- Журналы: [где их найти]
- SLO: [ссылка]

## Эксплуатация

- Руководства по эксплуатации: [ссылки]
- Типичные задачи: [масштабирование, перезапуск, дозаполнение]
- Известные проблемы и ограничения: [заметки]

## Начало работы (для новых участников)

<!-- Как собрать, протестировать и запустить локально. -->

## Контакты

- Канал в Slack / чате: [ссылка]
- Эскалация: [путь]

Политика SLO / бюджета ошибок

# Политика SLO и бюджета ошибок: [Название сервиса или пути]

- Владелец: [команда]
- Дата вступления в силу: [ГГГГ-ММ-ДД]
- Ритм рецензии: [например, поквартально]

## Индикаторы уровня обслуживания (SLI)

<!-- Определите каждый SLI точно: измеряемую величину, как она
     измеряется и откуда (в идеале с точки зрения пользователя). -->

| SLI | Определение | Источник данных |
|-----|-------------|-----------------|
| Доступность | [например, успешные запросы / все запросы] | [источник] |
| Задержка | [например, доля запросов быстрее X мс] | [источник] |

## Цели (SLO)

| SLI | Цель | Окно измерения |
|-----|------|----------------|
| Доступность | [например, 99,9%] | [например, скользящие 28 дней] |
| Задержка | [например, 95% быстрее 300 мс] | [скользящие 28 дней] |

## Бюджет ошибок

<!-- Допустимая ненадёжность: 100% минус цель за окно. Укажите бюджет
     в конкретных терминах (например, минут в месяц). -->

- Бюджет: [выведенное допущение]

## Политика при исчерпании бюджета

<!-- Согласованные последствия. Сделайте их конкретными и
     принуждаемыми. -->

- [например, Заморозить некритичные выпуски функций, пока бюджет не восстановится.]
- [например, Приоритизировать работу над надёжностью в следующем цикле планирования.]
- [например, Эскалировать руководству инженерии при нарушении два окна подряд.]

## Политика при здоровом бюджете

<!-- Какой дополнительный риск команда может принять, например более
     быстрые выкатки. -->

## Оповещения

<!-- Оповещения по скорости сжигания и пороги, привязанные к этому SLO. -->

Запись реестра рисков

## Риск: [Краткое название риска]

- ID риска: [ID]
- Дата выявления: [ГГГГ-ММ-ДД]
- Владелец: [имя или роль, отвечающая за управление этим риском]
- Категория: [безопасность | операционный | соответствие | финансовый | поставка | поставщик]
- Статус: [Открыт | Смягчается | Принят | Закрыт]

### Описание

<!-- Изложите риск как: причина -> событие -> последствие. Что могло бы
     случиться и почему это важно. -->

### Оценка

- Вероятность: [Низкая | Средняя | Высокая]
- Воздействие: [Низкое | Среднее | Высокое]
- Общий рейтинг: [выводится из вероятности x воздействия]

### Текущие контроли

<!-- Что уже снижает этот риск сегодня. -->

### План смягчения

<!-- Запланированные действия по снижению вероятности или воздействия, с
     владельцами и датами. Если риск принимается, запишите, кто принял и
     почему. -->

| Действие | Владелец | Срок | Статус |
|----------|----------|------|--------|
| [действие] | [имя] | [дата] | [статус] |

### Рецензия

- Дата следующей рецензии: [ГГГГ-ММ-ДД]
- Решение / заметки: [любая подпись принятия или изменение]

Одностраничник проекта / краткое описание продукта

# [Название проекта или продукта]: одностраничник

- Спонсор: [имя]
- Руководитель: [имя]
- Дата: [ГГГГ-ММ-ДД]
- Статус: [Идея | Одобрен | В работе | Отгружен]

## Проблема

<!-- Один абзац: проблема клиента или бизнеса и свидетельства, что она
     реальна и её стоит решать. -->

## Аудитория

<!-- У кого эта проблема и кто выигрывает от её решения. -->

## Предлагаемое решение

<!-- Краткое описание того, что мы построим или изменим. Держите на
     уровне намерения, а не деталей реализации. -->

## Почему сейчас

<!-- Причина делать это сейчас, а не позже. -->

## Метрики успеха

<!-- Как мы узнаем, что сработало. Предпочитайте измеримые результаты. -->

- [метрика и цель]

## Объём

- В объёме: [что мы сделаем]
- Вне объёма: [чего мы не сделаем]

## Риски и открытые вопросы

<!-- Главные неопределённости и зависимости. -->

## Примерный план и вехи

<!-- Высокоуровневые фазы и приблизительные сроки. -->

## Цена и ресурсы

<!-- Требуемые люди, время и бюджет. -->

Заметки передачи дежурства

# Передача дежурства: [ГГГГ-ММ-ДД]

- Уходящий: [имя]
- Принимающий: [имя]
- Сервис(ы): [названия]

## Общий статус

<!-- Одна строка: тихо, шумно или текущая проблема. -->

## Открытые инциденты

<!-- Любые активные или недавно разрешённые инциденты, о которых должен
     знать следующий реагирующий, со ссылками. -->

- [инцидент, статус и что осталось]

## Текущие или запланированные изменения

<!-- Развёртывания, миграции, окна обслуживания или эксперименты в
     полёте, способные вызвать оповещения. -->

## Шумные или нестабильные оповещения

<!-- Оповещения, которые срабатывали, и их реальное значение, чтобы
     следующий человек не был введён в заблуждение. Отметьте любые
     временные заглушения и срок их истечения. -->

## Объекты наблюдения

<!-- Метрики или системы, движущиеся в тревожном направлении. -->

## Ожидающие последующие действия

<!-- Задачи, передаваемые следующей смене, со ссылками на заявки. -->

## Заметки

<!-- Всё остальное полезное: причуды доступа, проблемы поставщиков,
     контекст. -->

Запрос на изменение (для регулируемого контроля изменений)

# Запрос на изменение: [Название изменения]

- ID изменения: [ID]
- Заявитель: [имя]
- Дата подачи: [ГГГГ-ММ-ДД]
- Тип: [Стандартное | Обычное | Экстренное]
- Приоритет: [Низкий | Средний | Высокий]
- Статус: [Подан | Одобрен | Отклонён | Реализован | Закрыт]

## Описание изменения

<!-- Что меняется и почему. Сошлитесь на заявку или требование. -->

## Затронутые системы и компоненты

<!-- Сервисы, данные, окружения и пользователи, на которых влияет. -->

## Обоснование и влияние на бизнес

<!-- Причина изменения и последствия отказа от него. -->

## Оценка риска

- Уровень риска: [Низкий | Средний | Высокий]
- Возможное воздействие при сбое изменения: [описание]
- Влияние на безопасность, приватность или соответствие: [описание]

## План реализации

<!-- Упорядоченные шаги, ответственные стороны и сроки. -->

## План тестирования и проверки

<!-- Как успех будет проверен до и после изменения. -->

## План отката / возврата

<!-- Как отменить изменение при сбое и время восстановления. -->

## Расписание

- Предлагаемое окно: [начало и конец, с часовым поясом]
- Ожидаемый простой: [длительность или нет]

## Одобрения

| Роль | Имя | Решение | Дата |
|------|-----|---------|------|
| Владелец изменения | [имя] | [одобрить/отклонить] | [дата] |
| Технический рецензент | [имя] | [одобрить/отклонить] | [дата] |
| Консультативный совет по изменениям | [имя] | [одобрить/отклонить] | [дата] |

## Рецензия после реализации

<!-- Результат, возникшие проблемы и потребовался ли откат. -->

Набросок оценки воздействия на защиту данных (DPIA)

# Оценка воздействия на защиту данных: [Название деятельности по обработке]

- Оценщик: [имя]
- Дата: [ГГГГ-ММ-ДД]
- Рецензенты: [DPO / контакт по приватности]
- Статус: [Черновик | Рассмотрена | Одобрена]

## 1. Описание обработки

<!-- Какие персональные данные обрабатываются, как, кем и с какой целью.
     Включите потоки данных от сбора до удаления. -->

- Субъекты данных: [о ком данные]
- Категории данных: [типы персональных данных, отметьте особые категории]
- Цели: [зачем данные обрабатываются]
- Получатели и обработчики: [кто получает или обрабатывает данные]
- Срок хранения: [как долго данные хранятся и способ удаления]
- Международные передачи: [направления и механизм передачи]

## 2. Необходимость и соразмерность

<!-- Необходима ли обработка для цели? Является ли она наименее
     навязчивым вариантом? Каково правовое основание или полномочие? -->

- Правовое основание / полномочие: [основание для каждой цели]
- Минимизация данных: [почему необходимо каждое поле]
- Точность и обоснование хранения: [заметки]
- Как поддерживаются права субъектов данных: [доступ, удаление и т. д.]

## 3. Консультация

<!-- Заинтересованные стороны и, где релевантно, субъекты данных,
     с которыми проводились консультации. -->

## 4. Риски для физических лиц

<!-- Выявите риски приватности и оцените каждый. -->

| Риск для физических лиц | Вероятность | Тяжесть | Общий |
|--------------------------|-------------|---------|-------|
| [например, несанкционированный доступ к чувствительным данным] | [Н/С/В] | [Н/С/В] | [рейтинг] |

## 5. Меры по снижению риска

<!-- Для каждого риска смягчение и остаточный риск после него. -->

| Риск | Мера | Остаточный риск | Принят |
|------|------|-----------------|--------|
| [риск] | [контроль] | [Н/С/В] | [имя] |

## 6. Результат и подпись

- Остаточный риск приемлем: [Да | Нет]
- Меры одобрены: [имя, роль]
- Требуется консультация с надзорным органом: [Да | Нет]
- Дата рецензии: [ГГГГ-ММ-ДД]