Единицы
1. Введение в искусственный интеллект в управлении системами и сетями: роли, границы, аутентификация и полномочия 2. Скрипты автоматизации: безопасное создание Bash, PowerShell и Python 3. Анализ журналов и анализ первопричин: поиск сигнала в шуме 4. Мониторинг мощности и производительности: считывание показателей и планирование на будущее 5. Управление конфигурацией: создание конфигурации, проверка и фиксация отклонений 6. Управление инфраструктурой как кодом (IaC): Terraform, Ansible и Plan Control 7. Управление документацией и информацией: Runbook, Post-mortem и корпоративная память 8. Прогнозируемое обслуживание: выявление сбоев до того, как они произойдут 9. Управление изменениями: оценка рисков, откат и окно обслуживания 10. Безопасность и оборона: использование искусственного интеллекта в целях обороны и в пределах полномочий 11. Сквозная интеграция: управление инцидентом от начала до конца
Единица 9 / 11

Управление изменениями: оценка рисков, откат и окно обслуживания

Прибыль:

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

Управление изменениями: оценка рисков, откат и окно обслуживания с помощью ИИ

Подавляющее большинство катастроф в производственных системах возникает не в результате атаки, а в результате изменения: патча, обновления конфигурации, выпуска релиза, «незначительного» исправления. Вот почему в каждой зрелой организации есть управление изменениями: дисциплинирующий процесс планирования производственных изменений, оценки их рисков, их утверждения, внедрения и отката при необходимости. Цель состоит не в том, чтобы предотвратить изменения, а в том, чтобы сделать их безопасными и предсказуемыми. Здесь ИИ является мощным помощником при составлении запроса на изменение, составлении списка рисков и затронутых систем, создании структуры плана отката и подготовке контрольного списка развертывания. Но основное правило остается: ИИ создает схему документирования изменений и рисков; Человек, который утверждает, планирует и несет ответственность за изменения.

В этом модуле рассматриваются концепции запроса на изменение, оценки рисков, плана отката, окна обслуживания, канареечного/поэтапного распространения и CAB (Консультативного совета по изменениям); Вы узнаете, как планировать безопасные изменения с помощью ИИ.

Анатомия хорошего запроса на изменение

Неконтролируемое изменение — это предложение «Я обновил это»; Контролируемое изменение — это план. Хороший запрос на изменение отвечает на следующие вопросы: Что меняется? (объем), Почему? (обоснование), Какие системы затронуты? (домен и зависимости), Каков уровень риска? (низкий/средний/высокий), Когда? (окно обслуживания), Как подать заявку? (шаги), Как проверить? (критерий успеха), Как вернуть его, если он испортился? (откат), Кто утверждает? (власть). ИИ быстро заполняет этот скелет, но именно вы действительно знаете сферу деятельности и риски, знаете организацию; Вы дополняете список ИИ своими собственными знаниями о зависимостях.

Совет: Две наиболее часто упускаемые из виду части изменения — это «план отката» и «критерии проверки успеха». Если у вас нет письменного ответа на вопросы «куда именно с какой командой обратиться, если что-то пойдет не так» и «как доказать, что оно прошло успешно» перед внедрением изменения, то это изменение еще не готово.

Откат: выход из любого изменения

Сердцем управления изменениями является план восстановления. Каждое изменение должно иметь путь отката: откат патча, восстановление предыдущей конфигурации, откат версии к предыдущей версии, откат со снимка. Критическое различие заключается в следующем: некоторые изменения легко отменить (строка конфигурации), некоторые необратимы или очень сложны (миграция схемы базы данных, удаление данных). Необратимые изменения представляют собой самый высокий класс риска и требуют наибольшего внимания, наибольшего количества резервных копий и самого узкого окна обслуживания. Спросите ИИ: «Можно ли отменить это изменение, и если нет, то какие дополнительные меры безопасности мне следует принять?»

Окно обслуживания и поэтапное развертывание

Окно обслуживания — это заранее объявленный период времени, в течение которого изменение затронет наименьшее количество пользователей — обычно ночью или в выходные дни, когда трафик низкий. Но недостаточно хорошо выбрать время; Постепенное внедрение изменений еще больше снижает риск. Canary-развертывание заключается в том, чтобы сначала применить изменение к небольшой части (один сервер, 5% пользователей), отслеживать его и распространять, если нет проблем. Таким образом, ошибка затронет не весь автопарк, а лишь его небольшую часть и будет обнаружена на ранней стадии. Вы можете запросить у ИИ план поэтапного развертывания и показатели для отслеживания на каждом этапе.

Шаг за шагом: изменения с помощью ИИ

  1. Составьте запрос. Задокументируйте изменения с помощью ИИ в заголовках выше.
  2. Расширьте влияние. Дополните список затронутых систем ИИ своей собственной картой зависимостей; «Что еще подключено к этой услуге?»
  3. Классифицируйте риск. Низкий/средний/высокий и обратимый? Это требует строжайшего процесса, высокого и необратимого.
  4. Напишите откат и протестируйте его. Запишите шаги отката и, если возможно, попробуйте выполнить откат в тестовой среде — «план отката», который невозможно откатить, не считается планом.
  5. Спланируйте окна и уровни. Определите окно обслуживания и канареечные этапы, а также показатели, которые будут отслеживаться на каждом этапе.
  6. Подтверждение и общение. Получите одобрение властей (при необходимости CAB), проинформируйте тех, кого это касается, реализуйте, контролируйте и проверяйте.

три мини-кейса

Случай 1. План отката спас ситуацию. Одна команда применила патч для веб-сервера; Патч неожиданно сломал зависимость, и сайт начал выдавать ошибку 500. Но в запросе на изменение был четкий шаг отката, подготовленный с помощью ИИ: «удалить патч, восстановить предыдущий пакет, перезагрузить сервис». Команда вернулась через 6 минут. Без плана отката отключение длилось бы несколько часов, а поиск причины проводился бы посреди ночи.

Случай 2 — Canary обнаружила ошибку на уровне 5%. Будет распространена новая версия. Команда попросила у AI поэтапный план развертывания: сначала 1 сервер, наблюдение, затем 25%, затем все. Время ответа на сервере Canary увеличилось вдвое; распространение прекращено. Ошибка сохранилась только на одном сервере, при этом 95% пользователей не пострадали. Если бы он распространился сразу, весь сервис рухнул бы.

Случай 3. Дополнительная мера необратимых изменений. Была запланирована миграция схемы базы данных — изменение, которое будет очень трудно отменить. Инженер спросил ИИ о риске; YZ заявил, что изменение было необратимым, и рекомендовал создать полную резервную копию, отдельный тестовый запуск и узкое окно. Команда сделала полную резервную копию непосредственно перед миграцией и сначала опробовала ее на копии. Во время миграции возникла проблема, но благодаря резервной копии целостность восстановилась в течение 20 минут.

Четыре копируемых шаблона

1) Проект запроса на изменение:

Ваша роль: специалист по управлению изменениями. Составьте запрос на следующее изменение: [изменение]. Заголовки: Что/Почему, Затронутые системы и зависимости, Уровень риска (низкий/средний/высокий + обоснование), Является ли откат, Этапы реализации, Критерии проверки успеха, Шаги отката, Рекомендация по периоду обслуживания, Требуемое одобрение. Отметьте зависимость, в которой вы не уверены, как «проверить».

2) Оценка риска и воздействия:

Оцените следующее изменение с точки зрения риска: [изменение]. (1) Перечислите системы, которые могут быть прямо или косвенно затронуты, (2) каков наихудший сценарий, (3) обратим ли он, если нет, то какие дополнительные меры мне следует принять, (4) обоснуйте уровень риска. Объясните, что это предварительная оценка и решение за мной.

3) Создание плана отката:

Напишите пошаговый план отката для [изменения]. Убедитесь, что каждый шаг можно скопировать и проверить. Если есть необратимые части изменения, четко сформулируйте это и запишите, какую резервную копию мне следует сделать для них. Добавьте, как проверить успешность отката.

4) Поэтапный (канарейский) план распространения:

Предложите поэтапный план [развертывания] для следующего развертывания: какие этапы (например, 1 сервер -> 25% -> все), как долго мне следует ждать на каждом этапе и КАКИЕ показатели следует отслеживать (время отклика, частота ошибок и т. д.)? Какой порог следует остановить и откатить развертывание, если он превышен? Четко напишите пункты вашего решения.

Слабая подсказка / Сильная подсказка

Слабая подсказка:

Стоит ли применять этот патч?

Никакого контекста, никакого влияния, никакой избыточности, никаких окон. ИИ не знает ни вашей системы, ни вашего риска; Ответ «да/нет», который он выдаст, — это безответственная догадка.

Мощная подсказка:

Ваша роль: специалист по управлению изменениями. Я буду применять исправление безопасности к группе работающих веб-серверов (8 серверов за балансировщиком нагрузки). Дайте мне: (1) черновик запроса на изменение этого изменения, (2) зависимости, которые могут быть затронуты (я подтвержу), (3) шаги отката, (4) канареечный план как 1 сервер -> 25% -> все и метрики, которые я буду отслеживать на каждом этапе. Обоснуйте уровень риска. Я одобряю и принимаю решение.

Изменить функцию

низкий риск

высокий риск

обратимость

легкий откат

безвозвратный/трудный

домен

Одиночная подача, изолированная

Мультисервисная цепочка зависимостей

Распространение

может быть прямым

Обязательная канарейка + узкое окно

Одобрение

внутри команды

CAB / высшее одобрение

запасной

Стандартный

Дополнительное полное резервное копирование + тестовый запуск

Распространенные ошибки

  • Реализация без плана отката. Перемены — это авантюра, если не записан путь назад.
  • Сохранение сферы влияния узкой. Обход скрытых зависимостей, прикрепленных к службе, приведет к неожиданным побочным сбоям.
  • Принятие необратимых изменений за обыденность. Такие изменения, как миграция схемы и удаление данных, требуют самого строгого процесса и полного резервного копирования.
  • Распространяем его на весь флот сразу. Без Canary ошибка затронула бы сразу всех пользователей.
  • Неопределение критериев успеха. Если не написано, что означает «успешный», вы можете принять неработающее изменение за «завершенное».
Внимание: список затронутых систем, составленный ИИ, является предварительным, а не полным. ИИ не знает зависимостей вашей организации; Точный ответ на вопрос «Если этот сервис выйдет из строя, что еще выйдет из строя?» зависит от ваших корпоративных знаний. Предположим, что список ИИ неполон, и расширьте его.

В итоге

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

Задача приложения

Выберите производственное изменение, которое вы планируете внести в ближайшее время (или сделали недавно). Попросите ИИ подготовить полный запрос на изменение, используя приведенный выше шаблон «Черновик запроса на изменение». Расширьте список «затронутых систем», которые производит ИИ, как минимум на два пункта с собственной информацией о зависимостях. Распечатайте шаги отката с помощью шаблона «Создать план отката» и определите, есть ли какая-либо часть изменения, которую нельзя откатить. Наконец, придумайте канареечный план. Обобщите весь план в 6 пунктах и ​​отметьте, какие согласования необходимы.

контрольный список

  • [ ] Подготовил ли я запрос на изменение, в котором указано, что/почему, влияние, риск, шаги, проверка и откат?
  • [ ] Расширил ли я список затронутых систем ИИ своей собственной информацией о зависимостях?
  • [ ] Уточнил ли я, является ли это изменение обратимым или необратимым?
  • [ ] Я написал шаги отката и опробовал их в тестовой среде, если это возможно?
  • [ ] Определил ли я окно обслуживания, план развертывания Canary и показатели мониторинга для каждого этапа?
  • [ ] Определил ли я критерии проверки успеха и получил ли необходимые разрешения?