Оперативное совершенство

Оперативное совершенство

Отличные решения Salesforce создаются не один раз, а постоянно совершенствуются. Внедрите операционное совершенство в системы, отслеживая производительность решений и настраивая их работу, чтобы они предоставляли бизнес-ценность предсказуемо и быстро восстанавливались при поломке.

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

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

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

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

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

В этом руководстве вы узнаете, как создать и внедрить операционные практики (мониторинг, автоматизация развертывания, реагирование на инциденты и постоянное улучшение), которые преобразуют решения Salesforce в надежные, устойчивые системы.

Используйте эти принципы для руководства архитектурными решениями по оперативному совершенству платформы.

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

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

  • Примите культуру DevOps. Разделите организационные различия между группами разработчиков, операционными и бизнес-группами. Совместная ответственность за результаты решений заменяет перекидывание работы через стены. Культура DevOps уменьшает трение, ускоряет циклы обратной связи и создает ответственность за оперативное воздействие. Архитекторы включают DevOps посредством выбора технологий, поддерживающих сотрудничество, и посредством организационной пропаганды, устраняющей структурные препятствия для совместной ответственности.

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

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

Понимание функций Salesforce помогает сосредоточить усилия по операционному проектированию на том, чем вы управляете. Платформа решает проблемы инфраструктуры, требующие специальных групп в традиционных ИТ-средах:

  • Надежность и производительность инфраструктуры: Salesforce отслеживает и обслуживает нагрузку сервера, производительность базы данных, доступность сети и системы хранения во всех экземплярах. Статус платформы отображается на status.salesforce.com с обновлениями инцидентов в реальном времени и запланированными окнами обслуживания.
  • Обновления и исправления платформы: Три основных выпуска в год (весна, лето, зима) предоставляют новые функции, исправления безопасности и улучшения производительности. Salesforce управляет временем выпуска, поддержкой версий API и устаревшей версией, а также управлением изменениями для изменений на уровне платформы. Вы тестируете решение по выпускам в безопасной среде перед развертыванием в производственной среде.
  • Управление ресурсами нескольких клиентов: Ограничения существуют для обеспечения справедливости общедоступной инфраструктуры: поскольку вы работаете на тех же ресурсах, что и другие клиенты, Salesforce применяет ограничения по таким параметрам, как время процессора, размер кучи, запросы языка запросов объекта Salesforce (SOQL), операторы языка манипуляции данными (DML) и вызовы API, чтобы ни один клиент не мог перерасходовать нагрузку. Хотя Salesforce отслеживает общее использование и позволяет клиентам запрашивать более высокие ассигнования для некоторых ограничений (например, вызовы API) посредством уровней лицензирования, сами управляющие ограничения Apex для каждой транзакции фиксируются и применяются одинаково для всех.
  • Базовые операции безопасности платформы: Группы безопасности Salesforce отслеживают наличие угроз, управляют раскрытием и исправлением уязвимостей, поддерживают сертификаты безопасности и реагируют на инциденты безопасности платформы. Эта базовая безопасность создает основу для создания элементов управления безопасностью решений.
  • Аварийное восстановление и обеспечение бесперебойного функционирования: Salesforce обслуживает географически распределенные центры обработки и хранения данных, тестирует процедуры послеаварийного восстановления и поддерживает резервные системы, которые включают отказоустойчивость без действий клиента. Восстановление на уровне платформы происходит прозрачно во время сбоев инфраструктуры.

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

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

Наблюдаемость — это способность понимать состояние внутренней системы на основе внешних результатов. Наблюдаемые решения Salesforce позволяют операторам отвечать на вопросы о алгоритме системы, диагностировать сбои и проверять гипотезы, не развертывая новых инструментов для каждого исследования. Различие между мониторингом (ответы на известные вопросы с помощью предопределенных панелей мониторинга) и возможностью наблюдения (ответы на произвольные вопросы с помощью комплексной телеметрии) имеет значение, поскольку производственные системы создают непредвиденные алгоритмы, превышающие те, которые вы ожидали во время проектирования.

В решениях Salesforce наблюдаемость охватывает три дополнительных типа сигналов, адаптированных к модели нескольких клиентов платформы:

  • Журналы - Сбор отдельных событий с полной контекстуальной информацией. Отслеживание событий предоставляет файлы журнала событий, собирающие вызовы API, события входа, выполнение Apex, запросы SOQL, страницы Visualforce, страницы Lightning и запуски отчетов с контекстом запроса, включительно с удостоверением пользователя, отметкой времени, продолжительностью и результатом. Журналы отвечают на вопросы: "Какие пользователи столкнулись с этой ошибкой?" и «Что изменилось между успешными и неудачными выполнениями?»
  • Показатели - числовые измерения, агрегированные за период времени, позволяющие выявить тенденции и схемы. Показатели включают уровни потребления API, распределения процессорного времени Apex, уровни успеха пакетных заданий, процентили задержки интеграции и уровни завершения потока пользователя. Показатели отвечают на такие вопросы, как "Ухудшается ли производительность со временем?" и "Приближаются ли губернаторские ограничения?"
  • Следы - Показывать пути запроса посредством распределенных систем, отображая источники задержки и точки сбоя. В решениях Salesforce трассировки могут подключать синхронные вызовы API к асинхронным цепочкам обработки, события платформы к выполнениям подписчика и запросы интеграции к ответам внешней системы. Следы отвечают на такие вопросы, как "Где накапливается задержка в этом потоке?" и «Какой компонент не удался в этом многоэтапном процессе?»

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

ЭтапАспектКомпромиссы
«Оптимизировано с бережливостью»: скорость доставки с нулевой настройкой над головойСтандартные журналы мониторинга событий платформы и собственные журналы ошибокСоответствует стандартным внедрениям. По мере усложнения, например, асинхронных операций или транзакций в нескольких объектах, больше усилий уходит на сшивание отключенной информации.
Оптимизированная шкала — распознавание схемы, изоляция порога и отслеживаемое выполнениеНастраиваемые инфраструктуры регистрации, принятие стандартизированного журнала событий в централизованные представления и уникальная настройка механизма корреляции в событиях платформы, полезных данных интеграции и асинхронных цепочкахПоявляет системные тенденции производительности и контролирующие ограничения рисков активно, а также определяет узел сбоя в многоэтапном выполнении. По мере расширения выброса он требует последовательной дисциплины разработчика для внедрения этих крючков в каждый новый актив, перемещая пропускную способность от доставки функций.
Оптимизация управления — Доказуемая и подотчетная возможность наблюдения за трансграничными процессамиТелеметрия сохраняется в соответствии с определенным обязательством, контролируемым доступом и очевидным подделкой, с сохранением резидентности данных журнала и межорганизационной корреляции за пределами рабочей группы и границ соответствияСоздает журнал уровня аудита и отвечает, кто, когда и что сделал. Требует постоянной оркестрации в разных инженерных группах для сохранения ключей и сохранности, вводя значительное управление над головой.

Salesforce предоставляет специально созданные возможности мониторинга, которые архитекторы должны проектировать с самого начала.

Отслеживание событий собирает подробные оперативные данные в вашей организации. Типы событий включают использование API, действия входа, события выхода, выполнение Apex, запросы SOQL, загрузки страниц Visualforce, просмотры страниц Lightning, запуски отчетов, вложения документов, переносы содержимого и заданные настраиваемые события. Отслеживание событий предоставляет основу для анализа безопасности, оптимизации производительности, планирования нагрузки и составления отчетов о соответствии.

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

Proactive Monitoring постоянно проверяет вашу организацию на наличие рисков производительности и масштабируемости, предупреждая о предопределенных сигналах, прежде чем они станут доступными пользователям. Proactive Monitoring обнаруживает закономерности, включительно со скачками ограничения запросов API, приближающимися к ежедневному распределению, параллельными ошибками выполнения Apex, указывающими на спор о совместном использовании ресурсов, ограничениями строк SOQL, приближающимися к пороговым значениям губернатора, и спором о блокировке строк, предлагающим улучшения дизайна.

Proactive Monitoring использует набор предопределенных порогов предупреждения и оповещения под управлением Salesforce. Для организаций, которым нужна более глубокая видимость производительности и которые хотят исследовать базовые показатели и тенденции, Scale Center предоставляет подробную аналитику среды выполнения, охватывающую время ожидания процессора, блокировки совпадений и строк, ошибки контролирующего ограничения и производительность базы данных.

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

Используйте выводы для стимулирования управления в нисходящем направлении для обновления классификаций соответствия, внедрения Shield Platform Encryption, запуска политик безопасности Event Monitoring или применения маскировки данных sandbox.

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

Установите базовые значения центра масштаба во время стабилизации решения и вернитесь к базовым значениям после каждого основного выпуска. Производительность без контекста трудно интерпретировать. Сравнение базиса показывает, улучшили или ухудшили производительность изменения, направляя дальнейшие решения оптимизации.

  • Контрольный журнал настройки: отслеживает изменения конфигурации, включая изменения полномочий, развертывания метаданных, административные действия и обновления параметров безопасности с сохранением до 180 дней нативно. Контрольный журнал настройки поддерживает расследования безопасности, проверку соответствия и посмертные инциденты, определяя, кто и когда изменил конфигурацию. Экспортируйте записи контрольного журнала настройки для хранения свыше 180 дней, если соответствие или требования контракта требуют более длительных архивных окон.
  • Контрольный журнал поля: (обязательно Salesforce Shield) отслеживает архивные изменения значений полей. Выборочно включите функцию «Контрольный журнал поля» для полей, содержащих конфиденциальные данные, регламентированные данные, требующие журнала изменений или критические бизнес-данные, где понимание архивных значений помогает операциям и отчетности о соответствии.
  • Проверка состояния: предоставляет автоматическую оценку конфигурации безопасности, сравнивая текущие параметры с базовыми рекомендациями безопасности Salesforce. Запланируйте ежеквартальные проверки состояния и исправление выводов на основе приоритетов рисков для вашей среды. Не все выводы требуют исправления, если у вас есть компенсирующий контроль или другие допустимые риски, чем стандартные рекомендации, но каждый вывод заслуживает тщательной проверки.

Мониторинг платформы отображает работоспособность организации, но пропускает проблемы приложения. Отслеживайте работоспособность приложения с точки зрения пользователя, используя инструменты для важных бизнес-путешествий:

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

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

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

Создайте интеграционные соглашения об интеграции с внешними партнерами и отслеживайте фактическую производительность по сравнению с принятыми целями. При нарушении соглашения об уровне обслуживания (SLA) телеметрия различает, исходят ли проблемы из Salesforce, уровня интеграции, пути сети или внешней системы. Это различие имеет значение во время эскалации инцидентов и переговоров по контрактам.

Индикаторы уровня обслуживания (SLI) - это тщательно выбранные показатели, представляющие воспринимаемое пользователем качество. Цели уровня обслуживания (SLO) - это целевые значения для SLI, которые балансируют ожидания пользователей с операционными инвестициями. В решениях Salesforce эффективные SLI включают:

  • Доступность: Процент успешного ответа решения на запросы пользователей. Определите доступность с точки зрения пользователя, а не инфраструктуры. Решение, при котором платформа доступна, но пользователи не могут войти из-за неправильной настройки единой регистрации (SSO), недоступно вне зависимости от времени работы платформы.
  • Задержка: Время от запуска действия пользователя до видимого ответа. Определите цели задержки на определенных процентилях (р50, р90, р99), а не на средних значениях, поскольку средние значения скрывают ужасные переживания, испытываемые самыми медленными запросами. Задержка p99 8 секунд означает, что 1 из 100 запросов занимает более 8 секунд, что может представлять тысячи неудачных взаимодействий ежедневно в решениях с высокой производительностью.
  • Уровень успеха: Процент операций, выполненных без ошибок, отображаемых пользователем. Различайте ошибки, вызванные пользователем (недопустимый ввод, недостаточно полномочий) и системные ошибки (ошибки ограничения, время ожидания интеграции, необработанные исключения). Только системные ошибки учитываются в коэффициенте успешности SLO.
  • Пропускная способность: Объем выполненных операций за единицу времени. Производительность имеет значение для пакетной обработки, импорта данных, запланированных заданий и пакетных операций, где соблюдение бизнес-сроков зависит от производительности обработки.

Задайте ООД на основе требований пользователей, а не технических возможностей. Вопрос не в том, как быстро мы сможем это сделать? а скорее: "насколько это должно быть быстро, чтобы пользователи могли достичь своих целей?" Цель загрузки страницы длиной 200 мс не имеет смысла, если пользователи могут терпеть две секунды. И наоборот, двухсекундная цель не имеет смысла, если пользователи отказываются через 500 мс. Исследование пользователей, аналитика сеансов и бизнес-требования информируют реалистичные цели SLO.

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

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

Создавайте предупреждения вокруг действия. Каждое предупреждение должно отвечать на три вопроса:

  1. Что случилось?
  2. Почему это важно?
  3. Что мне делать?

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

Внедрите уровни серьезности предупреждений, соответствующие операционным процедурам расширения:

  • Критические предупреждения: обозначают ухудшение обслуживания пользователя, требующее немедленного ответа, вне зависимости от времени суток. Страница критических предупреждений для инженеров по вызову. Примеры включают ошибки входа, превышающие установленный порог, потоки, приносящие доход ниже уровня доступности SLO или обнаружение потери данных.
  • Предупреждения: обозначают проблемы, которые станут критическими без вмешательства, но еще не повлияют на пользователей. Предупреждения создают билеты для исследования часов работы. Примеры включают трендирование потребления API к ежедневным ограничениям, выполнение пакетных заданий, но отсутствующие цели SLA или ошибки интеграции, увеличивающиеся, но все еще ниже порога сбоя.
  • Информационные предупреждения: обеспечивать осведомленность об операционных изменениях, не требуя действий. Информационные предупреждения отображаются в панелях мониторинга мониторинга, но не создают уведомлений. Например, успешное развертывание, запланированное завершение обслуживания или изменения конфигурации.

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

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

ЭтапАспектКомпромиссы
«Оптимизировано для бережливости»: быстрая отправка с минимальными расходами ожидаемых продажМетаданные под управлением источника, развертываемые вручную посредством интерфейса командной строки (CLI) или управляемой интегрированной среды разработки (IDE)/инструмента. Проверка и откат выполняются вручную, откат отменяется вручную и выполняется повторно в предыдущей версии.Самый низкий уровень ожидаемых продаж и самый быстрый путь к производству для небольшой поверхности. По мере роста количества рабочих групп и компонентов ручное развертывание становится узким местом, а качество полностью зависит от индивидуальной дисциплины, а не от внедренных ворот.
Оптимизированная шкала — повторяемое изменение при безопасной каденцииАвтоматическая постоянная интеграция/развертывание. Каждое обязательство создается и тестируется в новой среде, защищенное основное ответвление блокируется до прохождения проверок, а изменения продвигаются через уровни безопасной среды с проверкой перед производством.Повторяемые закрытые изменения в более быстрой безопасной каденции, с регрессиями, обнаруженными до объединения. Требует создания и эксплуатации ожидаемых продаж, обслуживания зависимых пакетов тестов и поддержки актуальности уровней безопасной среды.
Оптимизированное управление — Доказуемый контролируемый выпуск на предприятииУправляемый выпуск. Шлюзы утверждения и постепенное раскрытие вверху ожидаемых продаж, изменения, управляемые последовательно в нескольких организациях и системах, с каждым развертыванием, проверяемым и обратимым по определенному стандарту.Доказуемое, подотчетное, обратимое изменение в масштабе предприятия. Против веса утверждения и аудита, замедляющего каждое изменение, и оркестрации для поддержания согласованности управления выпуском в организациях.

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

Salesforce DX предоставляет инструментальную цепочку для разработки на основе исходного кода. Metadata API открывает конфигурацию организации в виде XML-файлов. Организации с нуля предоставляют одноразовые среды разработки, созданные на основе контроля источников. Инструменты CLI включают развертывание по сценарию и манипуляции в организации. Системы управления версиями, включая Git, отслеживают изменения и включают совместные бизнес-процессы.

Структурируйте метаданные намеренно, чтобы включить совместную работу рабочей группы. Модульные структуры пакета позволяют группам работать независимо без конфликтов слияния. Отделите общедоступные компоненты (макеты страниц, наборы полномочий и настраиваемые поля) от компонентов функции (классы Apex, потоки и компоненты Lightning). Четкие границы ответственности предотвращают хаос, когда все меняют.

Проверка кода предоставляет контроль качества, общий доступ Knowledge и возможности обучения до того, как изменения достигнут производственной среды. Эффективный код проверяет тщательность и скорость, предоставляя значимую обратную связь, не превращаясь в подводные камни развертывания.

Установите четкие критерии проверки. Проверяющие проверяют:

  • Правильность - Делает ли код то, что утверждает?
  • Обслуживаемость - Могут ли будущие разработчики это понять и изменить?
  • Производительность: Шкалаируется ли этот подход надлежащим образом?
  • Безопасность - Существуют ли риски инъекций или обходы полномочий?
  • Последовательность - Соответствует ли это схемам и стандартам проекта?

Без четких критериев проверки становятся субъективными или поверхностными.

Требуйте два утверждения для изменений, связанных с производством. Утверждение одним рецензентом создает базы Knowledge и пропускает проблемы, которые могли бы обнаружить альтернативные перспективы. Требование Two-reviewer распространяет Knowledge, поддерживает коэффициент шины выше единицы и находит больше дефектов. Баланс между требованиями к утверждению и размером рабочей группы: требование трех утверждений в рабочей группе из пяти человек создает препятствия.

Держите запросы на извлечение (PR) небольшими. Пиарщики с сотнями измененных строк получают беглую проверку, поскольку проверяющие сталкиваются с огромной когнитивной нагрузкой. PR-адреса, изменяющие одну функцию в 200-400 строках, получают тщательное рассмотрение, которое фиксирует тонкие проблемы. Разделите большие функции на проверяемые фрагменты, которые предоставляют инкрементно.

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

Тестирование обеспечивает корректную работу решений и их продолжение по мере накопления изменений. Эффективное тестирование балансирует покрытие (сколько тестов кода и функций выполняется) и скорость выполнения (сколько тестовых пакетов выполняется) и нагрузку обслуживания (сколько усилий требует обслуживание тестов).

  • Единичные тесты: проверять отдельные компоненты изолированно. Единичные тесты Apex проверяют методы и классы в отрыве от существующих данных организации и внешних зависимостей. Тесты веб-компонента Lightning проверяют логику компонента и рендеринг без интерфейсных API. Хорошо продуманные единичные тесты выполняются за несколько секунд, предоставляя мгновенный отзыв во время разработки. Цель выше 75% покрытия кода минимальных требований только из единичных тестов, рассматривая покрытие как напольное, а не потолочное.
  • Тесты интеграции: проверить взаимодействия между компонентами. Тесты интеграции выполняют фактические операции базы данных, реальные выноски на насмешливые внешние системы и алгоритмы ограничения подлинного управляющего. Тесты интеграции ловят предположения, которые пропускаются тестами единицы - неожиданные состояния данных, проблемы полномочий, ограничения пакетных операций и зависимости порядка триггера. Тесты интеграции выполняются от нескольких секунд до нескольких минут на тест.
  • Сквозные испытания (E2E): проверьте завершенные путешествия пользователя от входа до завершения задачи. Тесты E2E выполняются в среде Full Sandbox, упражняясь во взаимодействиях пользовательского интерфейса, опорных процессах, асинхронных операциях и интеграционных тачпоинтах. Тесты E2E обнаруживают проблемы, возникающие только при выполнении полной системы: условия гонки, непредвиденные бизнес-процессы пользователя, проблемы конфигурации среды. Тесты E2E выполняются от нескольких минут до нескольких часов для комплексных пакетов.
  • Тесты производительности: проверить алгоритм решения под нагрузкой. Тесты производительности измеряют время ответа, производительность, потребление ресурсов и ограничение близости при реалистичных схемах трафика. Тесты производительности предотвращают выпуск изменений, ухудшающих производительность, выявляют схемы запросов N+1 перед производством и проверяют головной офис нагрузки перед пиковыми сезонами. Тесты производительности требуют объемов данных, похожих на производственные, и выполняются в выделенных тестовых средах.

Реализация тестовой стратегии пирамиды: много быстрых единичных тестов, меньше тестов интеграции, выборочные тесты E2E вместе с тестами производительности, проверенными отдельно под нагрузкой. Этот баланс обеспечивает быструю итерацию (быстрые единичные тесты предоставляют немедленную обратную связь), обеспечивая корректную работу точек интеграции (интеграционные тесты выявляют проблемы кросс-компонентов) и приемлемость взаимодействия пользователя (тесты E2E проверяют завершенные путешествия).

Автоматическое выполнение тестов в ожидаемых продажах CI. Не запускайте вручную пакеты тестов перед обязательствами, а разрешите CI автоматически запускать пакеты тестов перед каждым обязательством. Автоматическое тестирование немедленно фиксирует регрессии, последовательно применяет стандарты качества и предотвращает постепенное снижение качества, которое происходит, когда ручное тестирование становится дополнительным во время крайнего давления.

Конвейеры непрерывной интеграции (CI) и непрерывного развертывания (CD) автоматизируют путь от подтверждения кода к производственному развертыванию. CI/CD уменьшает человеческие ошибки, ускоряет обратную связь, предоставляет последовательные проверки качества и включает каденцию быстрого выпуска.

  • Постоянная интеграция автоматически создает, тестирует и проверяет каждое подтверждение кода. Когда разработчики внедряют обязательства по управлению версиями, системы CI добавляют новые организации, развертывают изменения, запускают автоматические пакеты тестов, выполняют анализ статического кода, проверяют требования к покрытию теста и составляют отчеты по результатам в течение нескольких минут. Быстрая обратная связь позволяет разработчикам исправлять проблемы, пока контекст свежий, а не обнаруживать проблемы через несколько дней во время тестирования интеграции вручную.

Требуйте успеха CI, прежде чем разрешать слияния в основном ответвлении. Эта дисциплина (часто называемая «защита основной») предотвращает накопление взломанного кода в общедоступных ответвлениях, где он блокирует других разработчиков. Защищенные ответвления с CI-шлюзами поддерживают постоянное развертывание основного ответвления, включая выпуск по запросу, а не выпуск, когда-основное-случается-работает.

  • Непрерывное развертывание автоматически развертывает проверенные изменения в средах в направлении производства. После проверки изменений в изолированных средах ожидаемые продажи компакт-дисков развертываются в безопасных средах интеграции, выполняются дополнительные тесты, развертываются в этапировании, выполняется окончательная проверка и, по желанию, развертываются в производстве автоматически или после ворот утверждения вручную.

Реализация стратегий постепенного развертывания, ограничивающих радиус взрыва во время производственных развертываний:

  • Сине-зеленое развертывание: поддерживает две идентичные производственные среды. Маршруты движения к синей среде, пока зеленая среда получает новое развертывание. После проверки трафик переключается на зеленую среду. Синяя среда остается запущенной в качестве мгновенной цели отката.
  • Развертывание канарейки: выпускает изменения в маленьком поднаборе пользователей до полного развертывания. Исходная канарейка получает небольшой процент трафика, отслеживая уровень ошибок, задержку и поведение пользователя. Успешная канарейка расширяется постепенно (например, с 5% до 25%, потом 50%, потом 100%). Проблемы, обнаруженные во время развертывания канарейки, отменяют выпуск, прежде чем затронуть всех пользователей. Развертывание канарейки хорошо работает для решений Salesforce с внешними уровнями маршрутизации или флажками функций, которые включают выборочное раскрытие функций.
  • Флажки функции: включите функцию управления временем выполнения вне зависимости от времени развертывания. Новые функции развертываются в производственной среде, но остаются скрытыми за флажками до их включения. Флажки функций поддерживают развертывание канарейки, тестирование A/B, постепенное развертывание и мгновенный откат, переключая флаги, а не развертывая код.

Примечание: Схемы развертывания канарейки и сине-зеленого цвета применяются к настраиваемым приложениям, размещенным в приложениях Heroku или MuleSoft, развернутых в CloudHub 2.0 посредством распределения ресурсов и управления распределением трафика. Развертывания базовых метаданных Salesforce Platform являются транзакциями «Все или ничего».

Инфраструктура как код (IaC) обрабатывает определение среды - форму организации, метаданные, зависимости, а также конфигурации и начальные данные, которые делают ее функциональной - как источник, управляемый версией, а не настройку, выполненную вручную в каждой организации. В Salesforce нет серверов для инициализации, поэтому IaC управляет способом сборки среды, а не ее оборудованием. Кодифицированные среды воспроизводимы, сопоставимы и одноразовые, и именно это удерживает их от переноса.

Среды определяются исходной, а не ручной конфигурацией. Файл определения стартовой организации определяет версию, включенные функции и параметры, поэтому любой пользователь или ожидаемые продажи могут накрутить идентичную одноразовую организацию по запросу. Безопасные среды используют другой путь: они инициализированы на основе определения, которое называет тип копии и шаблон, потом наследуют конфигурацию от клонируемой производственной организации, предоставляя более надежные среды для интеграции и этапирования. Определения пакета описывают компоненты и зависимости решения, что делает сборки воспроизводимыми из источника, а не зависимыми от накопленного состояния организации-долгожителя.

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

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

Безопасные среды предоставляют изолированные среды для разработки, тестирования и обучения без риска для производственных данных или конфигурации. Эффективная стратегия безопасной среды балансирует между точностью среды (насколько безопасные среды соответствуют производственной среде) и частотой стоимости и обновления.

  • Безопасные среды разработчика предоставляют облегченные изолированные среды для разработки отдельных функций. Разработчики создают стартовые организации на основе контроля источников для ежедневной работы, используя безопасные среды разработчика для тестирования интеграции с общими зависимостями. Безопасные среды разработчика и стартовые организации часто обновляются, поддерживая синхронизацию конфигурации с производственной.
  • Безопасные среды интеграции (про или частичная копия разработчика) предоставляют общедоступные среды, в которых интегрируется и взаимодействует несколько функций. Безопасные среды интеграции содержат достаточное количество производственных данных для тестирования реалистичных бизнес-правил без затрат и сложности полных копий данных. Интеграционные тесты выполняются в безопасных средах интеграции перед продвижением к этапированию.
  • Безопасные среды этапирования (полная копия) отображают производственную конфигурацию и данные, обеспечивая окончательную проверку перед развертыванием в производственной среде. Безопасные среды этапирования получают выпуски перед производством, что позволяет тестировать производственные процедуры развертывания, характеристики производительности и сценарии миграции данных. Безопасные среды Stage обновляются ежеквартально или перед основными выпусками.
  • Учебные безопасные среды предоставляют реалистичные среды для обучения пользователей и демонстрации без предоставления реальных данных клиентов. Безопасные среды обучения могут содержать синтезированные данные или анонимные производственные данные. Учебные среды остаются стабильными в течение продолжительных периодов времени для поддержки последовательных учебных материалов и процессов сертификации.

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

Примечание: «Безопасная среда» имеет два разных значения в агентском предприятии. Безопасные среды выше являются средами: изолированные копии организации, где рабочие группы создают и тестируют до того, как изменения достигнут производственной среды. Действия агента безопасной среды отличаются. Это граница среды выполнения, которая ограничивает место и способ выполнения автономного действия посредством ограниченных полномочий, ограниченного доступа к объекту и интеграции и управляемого выполнения, поэтому агент не может выйти за пределы заданной области. Они дополняют друг друга: безопасная среда Developer Sandbox — это область проверки действий агента по сравнению с непроизводственными данными, а безопасная среда action Sandbox — это область, содержащая эти действия в производстве.

Даже при использовании автоматизированных ожидаемых продаж развертывания сопряжены с риском. Безопасные методы развертывания уменьшают риск посредством проверки, мониторинга и контролируемого выполнения:

  • Проверка развертывания: выполняет развертывание в пробном режиме без внесения изменений. Проверка обнаруживает ошибки развертывания (отсутствующие зависимости, конфликты компонентов, недопустимые ссылки) до фактического развертывания. Salesforce поддерживает развертывания проверки посредством пользовательского интерфейса и CLI, включая проверку в производстве в часы работы, даже если фактическое развертывание ожидает окон обслуживания.
  • Отслеживание развертывания: наблюдает ключевые показатели во время и после развертывания. Отслеживайте уровни ошибок, показатели производительности, уровни успеха потока пользователей и расход API. Внезапные изменения после развертывания обозначают регрессию, требующую исследования и возможного отката. Автоматический мониторинг сравнивает показатели перед развертыванием и после развертывания, предупреждая, когда статистическое отклонение превышает пороговые значения.
  • Руководители развертывания: процедуры развертывания документа, включая предварительные требования, этапы выполнения, проверки проверки, процедуры отката и план связи. Runbook трансформируют развертывания из стрессовых церемоний племенных Knowledge в рутинные процедуры, которые может выполнить любой пользователь. Руководства развиваются посредством ретроспектив развертывания, которые собирают извлеченные уроки и предотвращают повторяющиеся проблемы.
  • Возможность отката: предоставляет путь эвакуации при неудачном развертывании. Откат метаданных Salesforce требует развертывания предыдущей версии, а не собственных команд отката, что делает управление версиями критически важным. Обслуживайте пакеты развертывания для каждой производственной версии, чтобы обеспечить быстрое развертывание. При изменении данных сохраняйте резервные копии перед развертыванием, включающие восстановление. Для получения изменений конфигурации отслеживайте предыдущие значения в контрольном журнале настройки.

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

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

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

Обнаружение и исправление отклонения конфигурации. Со временем производственные организации выходят из документированной конфигурации, поскольку администраторы вносят прямые изменения, исправления обходят обычные процессы развертывания и накапливаются недокументированные обходные пути. Автоматическое сравнение производственной конфигурации и управления версиями отображает отклонение. Запланируйте ежеквартальное обнаружение и исправление отклонения, чтобы предотвратить накопление задолженности конфигурации до такой степени, что развертывания станут непредсказуемыми.

Решения конфигурации документа и их обоснование. Будущие специалисты должны понимать не только настройки, но и причины. Установка единых стандартных параметров на «Личный для организации», но «Общедоступный для контакта» требует наличия документации, объясняющей бизнес-требование, лежащее в основе этого решения. Без документированного обоснования будущие изменения рискуют разрушить предположения, похороненные в бизнес-процессах.

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

Инструменты декларативной автоматизации Salesforce Flow Builder, поля формулы, правила проверки, процессы утверждения позволяют неразработчикам внедрять сложную бизнес-логику без кода. Декларативная автоматизация предоставляет преимущества управления (администраторы могут изменять без развертываний), прозрачность (собственно визуальная проектная документация) и оптимизацию платформы (декларативные операции часто выполняются более эффективно, чем эквивалентный код).

  • Flow Builder: автоматизирует сложные процессы, сочетающие взаимодействие с пользователем, манипуляцию данными, бизнес-логику и интеграцию. Потоки обрабатывают распространенные схемы, включительно с созданием записей с зависимыми поисками, маршрутизацией условного утверждения, многоэтапным импортом данных, запланированными заданиями очистки и бизнес-процессами уведомлений об ошибках. Автоматически запущенные потоки выполняются при изменении записи, запланированных интервалах или явном вызове из кода. Потоки окон помогают пользователям пройти многоэтапные процессы с логикой ответвления на основе вводных данных пользователя.

Создайте потоки для многоразового использования и обслуживания. Подпотоки инкапсулируют распространенные схемы (например, обработка ошибок или логика блокировки записей), которые повторно используют несколько родительских потоков. Хорошо известные переменные потока и четкие описания создают самодокументирующуюся логику, понятную будущим обслуживающим. Модульная конструкция потока позволяет тестировать отдельные компоненты перед интеграцией.

  • Поля формулы: динамически вычислять значения из других полей без обновлений кода или базы данных. Формулы поддерживают сложные вычисления, условную логику, арифметику дат и манипуляции текстом. Поля формул работают в отчетах, списковых представлениях, правилах проверки и потоках, предоставляя последовательные вычисления в разных контекстах. Формулы выполняются эффективно, поскольку они не используют хранилище базы данных и вычисляют мгновенные расчеты во время доступа к записи.
  • Правила проверки: внедрять качество данных при сохранении. Правила проверки выявляют ошибки ввода данных, внедряют бизнес-правила и предотвращают недействительные переходы состояния. Разместите правила проверки для стандартных и настраиваемых объектов, чтобы обнаружить ошибки, независимо от источника данных — пользовательский интерфейс, API, Data Loader, интеграция. Хорошо созданные сообщения об ошибках правил проверки помогают пользователям исправить проблемы, а не разочаровывают их загадочными техническими сообщениями.
  • Процессы утверждения: перенаправляйте записи посредством обязательных утверждений до продвижения статуса. Процессы утверждения реализуют иерархии полномочий подписи, проверки соответствия, юридические утверждения и бизнес-процессы многостороннего согласия. Процессы утверждения предоставляют контрольные журналы автоматически, записывая, кто и когда что утвердил без настраиваемой разработки.

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

  • Триггерные инфраструктуры предоставляют последовательную структуру для логики триггера базы данных. Хорошо продуманные инфраструктуры триггеров разделяют проблемы (когда выполняется логика, какая логика, как порядок зависимостей), включают/выключают отдельные средства обработки без изменений кода и предотвращают проблемы рекурсии посредством отслеживания контекста. Триггерные инфраструктуры делают автоматизацию Apex более обслуживаемой, предотвращая антипаттерн "одного большого триггера", когда несвязанная логика накапливается в необслуживаемых монолитах.
  • Пакетный Apex обрабатывает большие объемы данных асинхронно фрагментами, соблюдая контролирующие ограничения во время выполнения операций, время ожидания которых истекает при синхронном выполнении. Пакетные задания обрабатывают очистку данных, пакетные обновления пересечения границ объектов, сложные расчеты, требующие нескольких запросов на запись и операции миграции данных. Создание пакетных заданий для импотенции: выполнение одного задания дважды должно привести к одному результату без повторов или повреждений.
  • Асинхронная работа цепочек Apex посредством четкой последовательности заданий. Там, где будущие методы «пожар-забыть», Apex в очереди включает структурированные последовательности, где одно выполнение задания запускает следующее. Задания очереди поддерживают сложную оркестрацию, включительно с выносками API с последующей обработкой данных, многоэтапными трансформациями данных и повторной попыткой логики с экспоненциальным отступлением.
  • Запланированный Apex выполняет задания через определенные промежутки времени. Запланированные задания обрабатывают периодическую очистку, ночную синхронизацию данных, ежечасные опросы интеграции и обработку в конце дня. Запланируйте задания в периоды низкой посещаемости и внедрите мониторинг для обнаружения пропущенных выполнений. Подумайте, действительно ли запланированные интервалы обслуживают бизнес-потребности или инициирование событиями будет реагировать быстрее.

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

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

  • Публикация события платформы: уведомляет заинтересованных подписчиков о значительных бизнес-происшествиях. Размещение заказа, обработка оплаты, выполнение, нарушение соглашения об уровне обслуживания и условия ошибки представляют события, заслуживающие публикации. Полезные данные событий содержат достаточный контекст для соответствующей реакции подписчиков без дополнительных запросов. Публикуйте события из триггеров, потоков, вызовов Apex или API, предоставляя гибкость в поиске источников событий.
  • Подписки на события платформы: реагировать на опубликованные события посредством триггеров Apex, потоков или внешних платформ интеграции. Подписчики обрабатывают события асинхронно, то есть издатели не ждут завершения подписчика. Обработка под управлением событий учитывает контролирующие ограничения, распределяя работу в отдельных контекстах выполнения, а не расходуя ограничения в массовых синхронных транзакциях.
  • Повтор события: позволяет подписчикам обрабатывать архивные события. Используйте код воспроизведения событий платформы для воспроизведения событий из определенной точки. Внешние подписчики должны управлять собственным состоянием кода повтора. Поскольку доставка выполняется как минимум один раз, возможна повторная обработка - обработка в логике подписчика. Настройте сохранение событий на основе требований восстановления подписчика: 72 часа для массовых событий платформы и 24 часа для устаревших стандартных событий достаточно для быстрого восстановления, более длительное сохранение поддерживает сценарии аварийного восстановления.

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

ЭтапАспектКомпромиссы
«Оптимизировано для бережливости»: стандартная логика с автоматизацией без кодаДекларативная автоматизация для бизнес-логики. Потоки, поля формул, правила проверки и процессы утверждения обрабатывают стандартные схемы. Исключения обрабатываются вручную при выполнении.Наиболее быстрая в создании и изменяемая без развертывания. По мере роста объема и сложности автоматизация только декларативно достигает ограничений производительности и обслуживаемости, а недокументированная логика накапливается быстрее, чем ею можно управлять.
Оптимизированный масштаб — Выполнение сложных массовых работ без ручного трудаПрограммная и управляемая событиями автоматизация для того, что декларативное не может нести. Инфраструктуры триггеров, пакетные и стоящие в очереди задания, а также события платформы отделяют производителей от потребителей, каждый из которых создан идемпотентно и инструментально.Обрабатывает асинхронную многоэтапную работу большого объема, которая в противном случае может привести к ограничению или сбою в масштабе. Требует, чтобы техника построила его безопасным и идемпотентным, а контрольно-измерительные приборы не давали тихому отказу спрятаться в асинхронном исполнении.
Оптимизированное управление — Надежное управление автоматизацией на предприятииОркестрированная управляемая автоматизация. Стабильные, версионные контракты событий, контролируемое включение выполняемых операций и последовательные стандарты автоматизации, применяемые на предприятии, все проверяемые.Надежная автономность в масштабе предприятия с доказуемым контролем над тем, что выполняется. Против координации для сохранения контрактов событий в рабочих группах и веса управления, замедляющего изменение любой общедоступной автоматизации.

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

  • Скорость обнаружения: определяет продолжительность влияния инцидента. Чем быстрее вы обнаруживаете проблемы, тем меньше накапливается повреждений до начала ответа. Механизмы обнаружения включают автоматические предупреждения о мониторинге (из систем наблюдения), отчеты пользователей (билеты поддержки и прямое расширение) и внешний мониторинг (синтетические транзакции и проверка обслуживания работы извне сети).

Приоритизируйте инциденты по влиянию пользователя, а не по технической серьезности. Например, ошибка API, влияющая на внутренние пакетные задания, отличается от ошибок входа, препятствующих доступу всех пользователей.

Серьезность инцидента определяет время реагирования и пути расширения:

Уровень серьезностиОписаниеПример
Тяжесть 1Инциденты, предотвращающие критические бизнес-функции, влияющие на всех или большинство пользователей, приводящие к потере данных или чрезвычайным ситуациям безопасности. Инциденты первой степени тяжести инициируют немедленное реагирование, включительно с уведомлением руководителя, координацией военных действий и всесторонним реагированием до решения.Полный сбой входа, обнаружение взлома данных или сбой системы доходов
Тяжесть 2Инциденты, ухудшающие важные функции или влияющие на значительную группу пользователей. Инциденты второй степени тяжести требуют быстрого реагирования, но не оправдывают извлечение людей из сна или отмену всей другой работы.Поиск возвращает частичные результаты, время ожидания отчетов или ошибки интеграции с обходными путями.
Тяжесть 3Инциденты, влияющие на ограниченные функции или небольшие группы пользователей. Инциденты третьей степени тяжести привлекают внимание в часах работы.Отдельный пользователь, испытывающий проблемы, проблемы с косметическим пользовательским интерфейсом или незначительные несоответствия данных.

Установите четкие процедуры реагирования на инциденты, включительно с тем, кто реагирует, как расширить, какую каденцию связи поддерживать и как координировать между группами. Процедуры документирования в беговых книгах, которые могут выполняться инженерами по вызову во время инцидентов с высокой нагрузкой. Undocumented tribal Knowledge создает задержки ответа, пока люди решают, кому звонить и какие шаги предпринять.

  • Дежурная ротация: распределяет операционную нагрузку между участниками рабочей группы, а не сжигает нескольких героев, реагирующих на каждый инцидент. Ротация по вызову балансирует между требованиями к покрытию (всегда кто-то доступен), справедливости (все разделяют нагрузку) и устойчивости (людям нужно время восстановления после интенсивных инцидентов).

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

  • Пути расширения: определить, когда и как привлекать дополнительные ресурсы. Четкие критерии расширения предотвращают два режима сбоя: преждевременная эскалация, которая теряет время старшего инженера на проблемы, с которыми справляются младшие классы, и отложенная эскалация, когда младшие классы борются с проблемами, выходящими за рамки их опыта, в то время как помощь экспертов простаивает. Критерии эскалации обычно делятся на три категории — триггеры на основе времени, например 30 минут без прогресса; триггеры сложности, например проблема, требующая наличия специалистов, которые в настоящее время не находятся в дежурном режиме; и триггеры серьезности, например инциденты «Тяжесть 1», которые всегда переходят в ранг руководства.

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

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

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

Выполните вскрытие для всех инцидентов «Тяжесть-1» и «Тяжесть-2», а также для любого инцидента, отображающего новые схемы или системные проблемы. Время вскрытия является критическим: слишком раннее проведение проверки чревато неполной информацией, а слишком позднее - исчезновением воспоминаний. Запланируйте вскрытие в разумном окне (24-48 часов) после разрешения инцидента, предоставляя время для сбора данных, пока сведения остаются свежими.

Документировать вскрытия в последовательном формате, собирая:

  • Временная шкала: Хронологическая последовательность событий от первичного обнаружения до разрешения. Добавьте временные отметки, предпринятые действия, наблюдаемые результаты и принятые решения. Восстановление временной шкалы отображает эффективность ответа и определяет задержки.
  • Корневая причина: Основная системная слабость, позволившая возникновение инцидента. Перейдите от непосредственной причины (немедленный триггер) к системной причине (структурный или технологический пробел, сделавший триггер следствием). "Инженер развернул плохой код" - прямая причина. "Конвейеры развертывания не имеют автоматического тестирования, фиксирующего этот класс ошибки" - системная причина.
  • Влияние: Продолжительность влияния пользователя, количество задействованных пользователей, влияние дохода, проблемы целостности данных и ущерб репутации. Количественное воздействие определяет приоритеты профилактической работы: предотвращение инцидентов с влиянием $100 тыс. заслуживает больше инвестиций, чем предотвращение инцидентов с влиянием $1 тыс.
  • Профилактика: Конкретные элементы действий, предотвращающие повторение. Эффективные элементы профилактики являются конкретными и содержат действие, назначенного и запланированное завершение. Например, добавьте тестирование интеграции дыма к ожидаемым продажам CI, ответственный: Джейн, и заполняется: следующий спринт. Расплывчатые элементы предотвращения, например, «улучшить тестирование», игнорируются, поскольку никто не знает, какие действия предпринять.
  • Улучшение обнаружения: Как быстрее обнаружить похожие инциденты. Инциденты, обнаруженные посредством отчетов пользователей, указывают на пробелы в мониторинге. Элементы усовершенствования могут включать новые предупреждения, лучшие приборы или синтетический мониторинг критических путей.

Широкий общий доступ к посмертным заключениям. Организационное обучение требует общего доступа за пределами непосредственной рабочей группы. Postmortems shareed United Company-wide распространяйте Knowledge о системном поведении, распространенных схемах сбоев и эффективных процедурах реагирования. Общедоступные вскрытия (опубликованные внешне) демонстрируют прозрачность и помогают клиентам понять обязательства по качеству обслуживания.

ЭтапАспектКомпромиссы
Оптимизированный уровень: решение инцидентов посредством четкой ответственности.Один человек несет ответственность за ответ на инцидент, работая из беговых книг для лучших режимов сбоев. Обнаружение предупреждает и управляется пользователем, расширение выполняется посредством поддержки платформы.Самая низкая операционная нагрузка, ротация персонала отсутствует. Восстановление зависит от доступности одного лица и Knowledge, создающего одну точку сбоя.
Оптимизированная шкала — ответ предсказуемо, вне зависимости от того, кто находится по вызову.Общая ротация по вызову с определенными уровнями серьезности, целями времени ответа на каждый уровень, задокументированными триггерами расширения и доступом по вызову и инструментами, предоставленными заранее.Предсказуемая реакция отделена от любого отдельного лица, с механизмами расширения. Требует укомплектования кадрами для поддержания ротации и дисциплины, чтобы поддерживать актуальность книжек и доступа.
Оптимизированное управление — Достигните целевых показателей восстановления и выполните его.Восстановление, измеренное по объектам времени восстановления (ВВВ), обработке инцидентов и связи, зарегистрированным и проверяемым, скоординированному реагированию на предприятии, а также нормативному или договорному уведомлению, встроенному в процедуру.Доказуемое возмещение по обязательствам и обязательствам, выполненным в рамках ревизии. В сравнении с накладными расходами на координацию единых ответных мер и весомостью процесса, добавляемым официальным управлением инцидентами в каждое событие.

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

Показатели DORA из программы DevOps Research and Assessment (DORA), основанной на отчете о разработке программного обеспечения с помощью искусственного интеллекта за 2025 год, предоставляют проверенные исследованиями показатели доставки программного обеспечения и производительности работы. Группы с высокой производительностью доставки показывают ощутимо лучшие результаты по следующим пяти ключевым показателям:

DORA разделяет эти пять показателей на два фактора: пропускная способность и нестабильность. Производительность состоит из времени выполнения изменений, частоты развертывания и неудачного времени восстановления развертывания - она определяет, сколько изменений переходит в производство. Нестабильность имеет оставшийся уровень сбоев изменений и показатели доли переработок - она определяет успешность этих развертываний.

  • Частота развертывания: определяет частоту выпуска в производственную среду. Наиболее быстро работающие группы развертываются по запросу - часто несколько раз в день. Частое развертывание обеспечивает быструю обратную связь, уменьшает риск развертывания посредством меньших изменений и коррелирует с более быстрой доставкой функций. Низкая частота развертывания обозначает боль развертывания, которой избегают рабочие группы, создавая порочный круг, когда редкое развертывание делает каждое развертывание более рискованным.
  • Время выполнения изменений: измеряет время от подтверждения кода до развертывания производства. Время субдневного интереса является убедительным сигналом высокопроизводительной доставки, а субчасовое время интереса указывает на исключительную возможность доставки. Короткие сроки выполнения позволяют быстро реагировать на потребности пользователей, конкурентные угрозы и уязвимости безопасности. Длительное время выполнения указывает на чрезмерные накладные расходы, недостаточную автоматизацию или организационные сбои.
  • Уровень сбоев изменений: измеряет процент развертываний, вызывающих производственные инциденты, требующие исправления. Самые надежные рабочие группы держат этот уровень стабильно низким – небольшая часть всех развертываний. Высокий уровень отказов указывает на недостаточное тестирование, неадекватную проверку развертывания или резкие изменения без надлежащей проверки качества.
  • Время неудачного восстановления развертывания (FDRT): определяет скорость восстановления после неудачного развертывания, требующего немедленного вмешательства. Восстановление менее одного часа является сильным сигналом зрелости доставки. Короткое время восстановления обозначает зрелую реакцию на инцидент, эффективные возможности отката и отработанные модули управления. Длительное время восстановления указывает на недостаточную проверку развертывания, отсутствие автоматического отката или неясную ответственность за производственные инциденты.
  • Уровень переработок развертывания: определяет частоту незапланированных развертываний из-за производственного инцидента. Низкий уровень переработок обозначает стабильные, проверенные выпуски, которые не создают последующие работы по восстановлению. Высокий уровень переработки указывает на то, что инциденты в производственной среде обычно приводят к аварийным развертываниям, сигнализируя о пробелах в предпроизводственных тестах, проверке выпуска или практике управления изменениями.

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

  • Ретроспективы спринта: извлечь обучение из недавних работ, включительно с операционными инцидентами, проблемами развертывания, трением процессов и динамикой рабочей группы. Ретроспективы должны происходить регулярно (каждый спринт или месяц), создавая ритм непрерывных размышлений, а не ожидания кризисов.

Запустите ретроспективы посредством структурированных форматов, поощряющих участие и действенные результаты. Распространенные форматы:

  • Начало/Остановка/Продолжение - что мы должны начать делать, прекратить делать, продолжить делать?
  • Безумие/грусть/радость - эмоциональное осмысление недавнего опыта
  • Временная шкала - восстановление событий спринта и определение схем).

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

  • Оперативные проверки: оценить совокупное операционное состояние посредством ежеквартальных или ежемесячных бизнес-обзоров. Операционные обзоры изучают данные тенденций, сравнивают с целями, определяют возможности улучшения и распределяют инвестиции в улучшение. Эти проверки также привлекают руководство, обеспечивая ресурсы для работы по совершенствованию операционной деятельности, которая конкурирует с разработкой функций.

Добавьте операционные показатели в проверки:

  • Доступность: Фактическое или целевое значение, по пути пользователя и общему
  • Производительность: Тенденции задержки по процентилю и критическим потокам
  • Инциденты: Количество по тяжести, среднее время обнаружения, среднее время решения
  • Здоровье развертывания: Частота, уровень успеха, частота отката
  • Эксплуатационная нагрузка: Страницы вызовов, ручные вмешательства, часы работы

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

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

  • Планирование выпуска: Рассматривайте операционную готовность как первоклассный ввод вместе с областью функций, изменяйте последовательность для ограничения радиуса взрыва и удерживайте выпуски, когда бюджет ошибки заканчивается. Таким образом, дисциплина развертывания и бизнес-приоритеты согласовываются намеренно, а не под давлением крайнего срока.
  • Сортировка невыполненной работы: Разместите оперативную работу (например, элементы действий по инцидентам, задачи по предотвращению, техническая задолженность, пробелы в мониторинге) в одном накопившемся объеме с функциональной работой, чтобы она конкурировала за нагрузку. Регулярная сортировка назначает ответственных и приоритет, закрывая цикл от посмертных до активной работы.
  • Проверки эксплуатационной готовности (ПЭГ) позволяют оценить соответствие новых функций или систем оперативным требованиям до запуска производства. ОРД предотвращают операционные аварии, обнаруживая операционные пробелы во время разработки, когда исправления обходятся дешевле, чем послепусковые восстановительные работы.

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

Ниже перечислены проблемы и вопросы, которые необходимо учитывать при проведении ОРД:

  • Мониторинг и оповещение: Достаточно ли показателей? Существуют ли предупреждения для сценариев сбоев? Панели мониторинга настроены на отображение состояния здоровья?
  • Документация: Существуют ли ранбуки для распространенных операций? Документируется ли архитектура, что позволяет респондентам понять систему? Ясны ли процедуры расширения?
  • Развертывание и откат: Может ли развертывание выполняться надежно? Существует ли процедура отката? Проверено ли развертывание на этапе?
  • Производительность и масштабируемость: Проверены ли цели производительности при реалистичной нагрузке? Есть ли место для роста? Существуют ли риски ограничения губернатора?
  • Безопасность и соответствие: Были ли завершены проверки безопасности? Соответствуют ли требования аудита? Соответствует ли контроль доступа требованиям?
  • Зависимости: Определяются ли внешние зависимости? Есть ли у партнеров по интеграции соглашения об обслуживании? Существует ли резервный алгоритм для ошибок зависимости?

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

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

  • Психологическая безопасность: позволяет честно обсуждать проблемы, ошибки и промахи, не опасаясь наказания. Группы, не имеющие психологической безопасности, скрывают проблемы до катастрофы, предотвращая раннее вмешательство. Создайте психологическую безопасность посредством безупречных посмертных исследований, празднования обнаружения проблем и уязвимости моделирования лидерства, обсуждая собственные ошибки.
  • Измерение: отображает рабочее состояние. Операционные показатели, тенденции инцидентов, индикаторы DORA и оценки качества обслуживания пользователей определяют фактическую производительность операций по сравнению с нужной производительностью. Измерение позволяет объективно расставить приоритеты в работе по улучшению на основе результативности, а не самых громких жалоб или последних инцидентов.
  • Время усовершенствования: признает, что операционное совершенство требует инвестиций. Рабочие группы, тратящие 100% нагрузки на функции, не имеют времени на операционные улучшения, создавая техническую и операционную задолженность, которая в конечном итоге вынуждает реагировать на кризис. Намеренно резервируйте инженерные мощности для улучшения работы, сокращения технического долга, инструмента и инвестиций в автоматизацию. Эта дисциплина предотвращает долгосрочное ухудшение, одновременно обеспечивая устойчивую скорость функции.

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

ЭтапАспектКомпромиссы
Оптимизированный уровень - улучшение по сравнению с прямым оперативным опытом.Неофициальный обзор. Ретроспективы после инцидентов и выпусков, улучшения, отслеживаемые как отставание, рабочее состояние, оцениваемое по собственным сигналам и прямому наблюдению.Самые низкие над головой, обучение происходит близко к работе. Улучшение является реактивным и неравномерным, зависит от того, кто что помнит, и деградация незаметна до появления в качестве инцидента.
Оптимизированная шкала - улучшение измеренных тенденций.Определенное улучшение. DORA и операционные показатели динамики, запланированные операционные обзоры целей и ОРЛ, определяющие новые запуски.Приоритизация целей на основе данных тренда и операционных пробелов, обнаруженных до запуска. Требует наличия инструментов для вычисления показателей и времени ожидания для их проверки и выполнения действий.
Оптимизированное управление - Повышение качества до установленного стандарта на предприятии.Управляемое улучшение. Оперативные показатели, сообщаемые руководству в сравнении с принятыми целевыми показателями, распределением защищенного потенциала для оперативной работы и стандартами усовершенствования, последовательно применяемыми на предприятии.Устойчивое и подотчетное улучшение требует постоянных инвестиций и приверженности.

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

Наблюдаемость и мониторинг

  • Решение содержит комплексное ведение журнала, собирающее коды корреляции для распределенной трассировки
  • Отслеживание событий включено, а файлы журнала событий экспортируются на внешнюю платформу для хранения за пределами собственных ограничений
  • Proactive Monitoring настроено с порогами, настроенными на базовый уровень организации
  • Базовые показатели центра масштабирования, установленные и проверенные после каждого выпуска
  • Экспорт контрольного журнала настройки для хранения свыше 180 дней
  • Контрольный журнал поля включен для полей конфиденциальных и регламентированных данных ]
  • Сканирование обнаружения данных определяет и классифицирует конфиденциальные данные в полях, а выводы определяют классификацию соответствия и исправление
  • Проверка состояния проверяется ежеквартально по сравнению с базовым уровнем безопасности, а выводы устраняются приоритетом риска
  • Важнейшие пользовательские процессы, оснащенные маркерами контрольных точек и мониторингом уровня успеха
  • Мониторинг интеграции отслеживает состояние здоровья в двух направлениях для всех внешних зависимостей
  • Цели уровня обслуживания, определенные для доступности, задержки, уровня успеха и производительности
  • Архитектура предупреждений включает уровни серьезности, действенный контекст и четкое расширение

DevOps Practices

  • Все контролируемые версии метаданных, включающие воспроизводимые сборки из источника
  • Безопасные среды с нуля или разработчика поддерживают изолированную разработку
  • Изменения конфигурации следуют тому же процессу проверки, что и изменения кода
  • Обнаружение отклонения конфигурации выполняется ежеквартально с документированным исправлением
  • Стратегия безопасной среды Sandbox включает среды разработчика, интеграции, этапирования и обучения
  • Автоматическое обновление безопасной среды и загрузка данных
  • Конвейеры CI проверяют каждое обязательство с помощью автоматических тестов
  • Защищенное основное ответвление требует успеха CI перед объединением
  • Конвейеры CD развертываются в средах с постепенной проверкой
  • Проверка развертывания выполняется перед развертыванием в производственной среде
  • Мониторинг развертывания отслеживает ключевые показатели во время и после развертывания
  • Процедуры документирования, проверки и отката рунетов развертывания
  • Пирамида тестов содержит единичные тесты, тесты интеграции и комплексные тесты
  • Выполнение тестов автоматизировано в ожидаемых продажах CI
  • Проверка кода требует двух утверждений с четкими критериями проверки
  • Запросы на извлечение сохраняются небольшими (200-400 строк) для тщательной проверки

Автоматизация и эффективность

  • Декларативная автоматизация, используемая в соответствующих случаях (поток, формула, проверка, утверждения)
  • Потоки, спроектированные модульно с многоразовыми подпотоками
  • Инфраструктура триггеров обеспечивает последовательную структуру для автоматизации Apex
  • Пакетные задания внедряют импотенцию и комплексную регистрацию
  • Запланированные задания выполняются в периоды низкой трафика с мониторингом
  • События платформы включают архитектуру под управлением событий для асинхронной обработки
  • Схемы событий, созданные для стабильности с помощью стратегии версии
  • Оперативная доступность автоматизации включает регистрацию, мониторинг и оповещение

Управление инцидентами

  • Автоматический мониторинг обеспечивает первичное обнаружение инцидентов
  • Уровни серьезности инцидента, определенные с четкими требованиями к времени ответа
  • Процедуры реагирования на инциденты, задокументированные в беговых книгах
  • Ротация по вызову справедливо распределяет операционную нагрузку в рабочей группе
  • Пути расширения освобождены с помощью триггеров на основе времени и сложности
  • Инженеры по вызову имеют необходимый доступ, инструменты и информацию
  • Пошлина по вызову возмещается справедливо
  • Безупречные вскрытия всех инцидентов первой и второй степени тяжести
  • Вскрытие документирует временную шкалу, корневую причину, воздействие, улучшение обнаружения и конкретные профилактические действия
  • Широкое распространение результатов вскрытия для целей организационного обучения

Постоянное улучшение

  • Показатели DORA отслеживаются постоянно (частота развертывания, время выполнения, уровень сбоев изменений, время восстановления, уровень переработки)
  • Ретроспективы спринта происходят регулярно со структурированным форматом и действенными результатами
  • Оперативные обзоры оценивают совокупное состояние здоровья ежеквартально или ежемесячно
  • Проверки эксплуатационной готовности запуск новых функций в производственной среде ворот
  • Психологическая безопасность позволяет честно обсуждать проблемы и ошибки
  • Инженерный потенциал, намеренно зарезервированный для оперативного улучшения
  • Циклы отзывов связывают операционный опыт с усовершенствованиями проектирования
  • Ответственность за оперативное совершенство несут все, а не только оперативная группа

Опубликуйте отзыв о инфраструктуре с хорошей архитектурой.