Надежность в процессах. Часть 2
девятки готовности и шестерка качества
1 Терминология
В »Надежность в процессах. Часть 1» [OpRes24–1] были определены (упрощены): надежность, процесс и надежность в процессах. Надежность — это способность безотказно работать (работать без отказов). Надежность процесса — это как способность безотказно работать («главное процесс»), так и выдавать требуемый результат («главное результат»). Количественно — это вероятность безотказной работы (вероятность застать процесс работоспособным) и вероятность требуемого результата на выходе процесса.
Для восстанавливаемых систем, а процессы в основном — это восстанавливаемые системы, применяют коэффициент готовности — вероятность в произвольный момент времени застать систему (в данном случае процесс) в работоспособном состоянии.
Это относится как ИТ-системе (кластер серверов) и не ИТ-системе (сейф), так и к системе процессов (операций) и составных частей процесса, включая его ресурсы.
Если в классической теории надёжности (Надёжность в технике [27.002]) обычно рассматриваются внутренние воздействующие деструктивные факторы на техническую систему типа отказ \ сбой оборудования \ ПО, то «Надежность в процессах и операциях» (операционная надёжность) рассматривает также непреднамеренные ошибки персонала (операционные риски) и внутреннее мошенничество, внешние атаки на процессы компании, клиентов компании (социальная инженерия), стихийные бедствия (техногенные катастрофы). В конечном счете неважно: «система процессов» отказала (не выполнила задачу) из-за какой-либо поломки или из-за ее перегрузки (от нежданного «наплыва клиентов» до DDoS-атаки), поэтому в состав показателей Надежность в процессах добавляем »доступность»:
Коэффициент готовности (Кг) — это вероятность застать систему в работоспособном состоянии (ничего не отвалилось), а
Коэффициент доступности — вероятность застать систему в свободном (неперегруженном) состоянии, т.е. готовой принять и обработать нагрузку (т.е. процесс \ система не загружен до предельного состояния).
В доступном состоянии система должна быть работоспособной.
Кроме готовности и доступности рассмотрим результативность процесса. Для действительно надежного процесса важно не только чтобы он сам не сломался и его не поломали (защищенность и отказоустойчивость процесса) и его производительность была достаточной. Точно также важно чтобы в результате процесса (операции) получилось то, что было задумано, т.е. результат (изделие, продукт, услуга) требуемого качества и в срок. Качество обычно фиксируется в технических условиях (ТУ) на изделие, т.е. в «ТУ на процесс». Таким образом, количественные показатели надежности процесса кроме оценки способности выполнять что-либо (действие) должны оценивать вероятность получить то, что было действительно необходимо (в рамках ТУ).
Схожее определение:
Надежность технологического процесса — это его свойство обеспечивать изготовление продукции в заданном объеме, сохраняя во времени установленные требования к ее качеству.
Таким образом, технологическая система должна быть работоспособна как по показателям качества, так и по производительности.
Точность — свойство технологического процесса обеспечивать соответствие… значений показателя качества изготовления продукции заданному …
Стабильность — свойство технологического процесса сохранять показатели качества изготовляемой продукции в заданных пределах в течение некоторого времени.
Еще определение из ГОСТ Р 53736–2009: Изделия электронной техники. Порядок создания и постановки на производство. Основные положения:
3.1.19 надежность технологического процесса: Свойство технологического процесса производства изделий сохранять во времени в установленных пределах значения параметров, характеризующих его способность быть воспроизведенным при поддержании настроенности, стабильности, точности в регламентированных условиях производства в соответствии с требованиями нормативно-технической и (или) конструкторско-технологической документации.
Надежность в процессах (надёжность процесса) включает:
а) не только безотказность и отказоустойчивость оборудования (надежность в технике) и ПО, но и
а1) отказоустойчивость от ошибок персонала («защита от дурака», повторный ввод и т.п.);
а2) киберустойчивость, катастрофоустойчивость и т.п.;
б) простой процесса (системы), вызванный не только отказами, но и перегрузкой процесса (системы), т.е. доступность — как способность процесса обработать (принять) нагрузку, т.е. быть не перегруженным и обладать достаточной производительностью;
в) результативность процесса — способность на выходе выдать годный результат (качественный продукт);
г) автоматизированные и не автоматизированные процессы.
Значимую составляющую в «Надежности в процессах» играют:
— временное резервирование, т.к. обычно процессы растянуты во времени;
— гибридное резервирование, например, когда неавтоматизированные процессы (ручная обработка) являются резервными к автоматизированным (автоматическим).
2 Основные показатели надёжности в «Надежности в процессах»
На рис. 2.1 показана взаимосвязь готовности и доступности процесса. Состояния «Исправен» и «Работоспособен» согласно [27.002].
Если процесс работоспособен (все исправно), но нагрузка на процесс настолько велика, что мощностей недостаточно и клиенты остаются необслуженными, то процесс не выдаст годный продукт (результат).
Типы простоя:
— простой, вызванный неработоспособностью процесса (его систем);
— простой, вызванный, перегрузкой системы \ процесса — либо уменьшились производственные мощности, например, вышел из строя один из узлов системы (сервер — узел кластера серверов, вторая касса в магазине и т.п.), либо увеличилась нагрузка на процесс, например, неплановый наплыв клиентов, что требует время подключения резервных мощностей для обработки возросшей нагрузки (открыть вторую кассу).
Следует учитывать, что в данном случае термин «нагрузка» (полезная нагрузка) не совпадает с понятием «Нагрузка» из ГОСТ Р 27.301–2011 (деструктивные воздействующие факторы):
А.1.10.1 Анализ устойчивости к нагрузкам заключается в определении способности компонента или изделия противостоять электрическим, механическим или другим нагрузкам и воздействиям окружающей среды, которые могли бы быть причиной их отказа.
Рис. 2.1 Готовность / доступность процесса и отказ в обслуживании клиентского потока (нагрузки)
Функция fs (t) — зависимость (свойство) производительности инструментария (серверов, «s» — server) от времени.
Функция fс (t) — зависимость (свойство) клиентских обращений («c» — client) от времени, поток заявок и т.п. При fs (t) < fc(t) – происходит перегрузки процесса (overload).
Основные показатели надёжности «Надежности в процессах» показаны на рис. 2.2, включая:
— Коэффициент готовности, КГ;
— Коэффициент доступности, КД;
— Коэффициент результативности, КР.
Рис. 2.2 Основные показатели надёжности «Надежности в процессах»
Если показатель готовности и доступности — это оценка возможности / способности выполнять что-либо (само действие, осуществлять деятельность), то показатель результативности — это показатель выхода процесса: что же в итоге получилось. В первом случае фокус на «Главное — процесс», во втором «Главное — результат». «Жонглирование» обоими показателями может привести даже к тому, что в «безнадежных» процессах достигается более высокий итоговый результат чем в отказоустойчивых процессах (высоконадёжных по готовности). Комплексная модель должна позволить дать оценку надежности подобных ситуациям.
Пример: в первой системе мало заказов и постоянные отказы оборудования и ошибки рабочих, но они влияют только на простой, который имеет «запас» (сроки не критичны и брак исправляется в ходе процесса), а во второй системе много заказов и очень мало отказов, но каждый отказ приводит к браку. Аналогичная ситуация возникает при многоуровневой мажоритарной системе выборов, когда побеждает меньшинство (в группе большинство «поедает» свой голос, а каждый голос меньшинства работает на победу).
Сумма Коэффициента готовности и Коэффициента не готовности образуют 1, т.к. сумма вероятностей двух событий, образующих полную группу, равна единице.
3 Коэффициент готовности (работоспособности) с декомпозицией через внешний \ внутренний
Рассмотрим формулы коэффициента готовности, КГ, приведенные на рис. 2.2. Коэффициент готовности в части стойкости к внутренним деструктивным факторам (КГint), определяется «Тпр.int» — время простоя (Тпр.) при отказах, которое зависит от:
а) надежности \ отказоустойчивости систем (оборудования);
б) ошибок пользователя, пропущенных «защитой от дурака», контрольными процедурами и т.п., определяющими «отказоустойчивость от ошибок персонала»;
в) потока и защиты от внутреннего мошенничества (inside).
Непреднамеренные ошибки сотрудника (операционный риск) или сознательное (преднамеренное) вредительство \ мошенничество сотрудника (inside) часто сложно распознать (сделано это преднамеренно или нет), например, в сумму в платеже клиента добавить пару лишних нулей и ошибиться в номере счета можно случайно или специально. Защита от обоих инцидентов (событий операционного риска) может быть едина, например, «повторный ввод» (см. раздел 6).
Сбои и отказы оборудования зависят от средней наработки на отказ MTBF, Mean time between failures.
MTBF не зависит от ошибок пользователя. Интенсивность внешних атак не зависит ни от интенсивности отказов (обратная величина MTBF) ни от ошибок пользователя и других внутренних деструктивных факторов (учтенных в КГext и КГinc), поэтому события независимые и можно простым перемножением вероятностей (коэффициентов готовности int, ext, inc) получить общий коэффициент готовности КГ как вероятность совместного появления независимых событий:
КГ = КГint * КГext * КГinc
Аналогично, при необходимости можно рассматривать КГint (внутренние деструктивные воздействия) как произведение:
— КГint в части рисков инструментов (оборудования), tool;
— КГint в части рисков исполнителя (персонала), hr.
Это вытекает из рассмотрения элементов процесса — как ресурсных обеспечений и вывод формулы через элементы обеспечений:
function (input, hr, tool) = Y
см. Первую часть [OpRes24–1].
На рис. 2.2. также формализованы (показаны формулой) составляющие:
— КГext — external, внешнее деструктивное воздействие и
— КГinc — incoming(input), качествоштатных входящих сущностей, включая заготовки, внешние сервисы и услуги.
Таким образом, при идеальных значениях четырех коэффициентов (из них два КГint: tool + hr) равных 1, т.е. идеальные инструменты, исполнители, внешние сервисы, абсолютное противодействие внешним воздействиям (атаки, стихии), получим итоговый коэффициент готовности также равным 1. Однако при этом, сервер или процесс все равно могут иметь нулевую результативность, хотя бы потому, что на вход не поступило ни одной клиентской заявки (отсутствие нагрузки, клиентов), т.е. сервер и процесс при предельной готовности (коэффициент готовности = 1) будут работать вхолостую.
4 Коэффициент доступности
Формула коэффициента доступности КД приведена на рис. 2.2. Коэффициент КДхарактеризует пропорцию, когда нагрузка превышала задействованные мощности процесса по значениям, указанным в критерии надёжности (критерий отказа по производительности). Даже исправная система (100% всех элементов системы — рабочие) в пиковый момент не обрабатывает нагрузку (превышен порог вычислительных возможностей) или произошла деградация системы и штатный поток заявок не может быть обработан (деградация мощностей).
На основе КД можно проводить оценку потерь от простоя, вызванного недостатком производительности (сброс заявки клиента, отказ в проведении платежа и т.п.).
Соответствие нагрузки (поток заявок, клиентов) и мощности (производительности) системы / процесса обеспечивает КД = 1, т.е. время простоя (отклонение заявок) из-за перегрузки равно 0. При этом учитывается, что система (процесс) была в работоспособном состоянии (в состоянии готовности), т.к. иначе (см. рис. 2.1):
fs (t) < fc(t) – т.е. была бы перегрузка процесса по мощности (overload) и часть потока клиентов осталась не обслуженной.
Если КД отражает отсечку аварийного режима «overload» от штатного, то зеркальный показатель — коэффициент использования процесса — может показывать «недо загруженность» процесса по аналогии с коэффициентом использования оборудования — как характеристику утилизации ресурса (коэффициент загрузки, utilization factor).
Можно посчитать площадь, образованную превышением функции fs (t) над функцией fc (t), т.е. например, неиспользованные вычислительные мощности серверов над потоком заявок (время простоя второй кассы и т.п.).
5 Коэффициент результативности
Формула коэффициента результативности (как одного из многих других вариантов оценки результативности) приведена на рис. 2.2. Например, Коэффициент результативности по качеству:
КРк = (Nобщ. — Nбрак) / Nобщ.
Как и другие приведенные коэффициенты (готовности, доступности), чем выше значение коэффициента, тем лучше, а идеальное значение равно 1, т.е. абсолютно надёжно \ качественно.
Результативность («Главное — результат») не путать с эффективностью:
— Результативность (ISO 9000:2015) — степень реализации запланированной деятельности и достижения запланированных результатов. Простыми словами: выполнено ли все, что планировали, и получили ли который хотели результат (вкл. уложились ли в срок), точнее который зафиксирован в ТУ или регламенте процесса или паспорте продукта (результат процесса).
— Эффективность (ISO 9000:2015) — связь между достигнутым результатом и использованными для этого ресурсами. Простыми словами: сколько ресурсов потрачено для достижения результата, насколько это целесообразно в пересчете «попугай-затраты на попугай-результаты» (могут быть разные единицы измерения).
Связь одного с другим иногда показывают и таким рисунком и таким.
В целом наблюдается путаница, и иногда «Коэффициент результативности» считают как общий результат по всем показателям (KPI) с учетом их веса, т.е. как эффективность, а не результативность.
В [OpRes24–1] был подробно рассмотрены разные показатели результативности.
Результативность — это обычно отношение (дробь) чего-то полезного и «всего». Можно считать процент брака: Nбрак*100 / Nобщ.
Результативность — это параметры выхода процесса: Качественно (не хуже предельного значения, характеризующего качество продукта) и в срок. Например, при превышении указанного клиенту срока рассмотрения заявки (кредита) может быть уже не важно были ли работоспособны процессы этого рассмотрения и сам результат рассмотрения, т.к. клиент уйдет к другому поставщику услуг.
6 Качество \ надежность \ отказоустойчивость алгоритма
Как было показано в разделе 2, см. «Пример: в первой системе мало заказов и постоянные отказы …» некоторые ошибки являются критичные, в то время как другие легко исправляются. Эта ситуация может быть оценена показателем, характеризующим качество \ надежность \ отказоустойчивость алгоритма.
Практический пример «Двойной (повторный) ввод»
Резервирование процессов в промышленной реализации рассмотрим на контроле достоверности реквизитов документа на этапе создания документов в банковской системе. Исходный платежный документ клиент передает в банк на бумажном носителе.
Как показано на схеме бизнес-процесса (ЕРС нотация) банковская технология «двойной / повторный ввод» кроме первичного ввода реквизитов платежного поручения (ПП) подразумевает повторный ввод (часто с сокращенным набором реквизитов) и автоматическое сравнение результатов ввода (рис. 4.1). Если выявлено полное совпадение, то документ передается на следующую стадию обработки (ПП исполняется). Двойной (повторный) обеспечивает минимизацию операционного риска [716П] в банковских процессах.
Рис 4.1 Схема процесса Двойного ввода и её Надежностная схема
Достоверность операции сравнения (автоматическая процедура) возьмем за 1 (абсолютно надежная), а дублированная группа операций рассчитывается по известной формуле, заимствованной из Надежность в технике.
Зная вероятность ошибок операциониста и контролера можно рассчитать вероятность их совместной (одновременной) ошибки и наоборот: зная частоту появления по факту ушедших в расчет неверных ПП можно оценить качество исполнителя (вероятность его ошибки).
Расчет. Рассмотрим работу и ошибки операциониста в банке.
Допустим операционист вводит за смену (в день) 100 платежек и совершает критическую ошибку в каждой тысячной платежке. Критическая — это ошибка в сумме (в расчет уйдет иная сумма, чем указана в ПП), номере счета с учетом «защитного ключа» (платеж уйдет другому получателю) и т.п., т.е. когда система не выдаст ошибку при проверке данных на основе справочников или ключевания. Вероятность ошибки Pin будет 1/1000.
Таким образом, в среднем раз в 10 дней (10дней * 100 платежек = 1000 платежек) операционист будет совершать по одной критической ошибке. Контролер имеет такие же параметры.
Вероятность совместного появления независимых событий равна произведению вероятностей этих событий:
Вероятность ошибки операциониста Х Вероятность ошибки контролера
Р (ош.Повторн.Ввода) = Р (ош.опер.) * Р (ош.контр.) = 0,001×0,001 = 0,000 001
В результате контрольной процедуры «Повторный ввод» получаем одну ошибку на миллион операций (1 PPM, Parts Per Million), что дает уже одну совместную ошибку операциониста и контролера на пару десятков лет.
На первый взгляд, подобный Двойной (повторный) ввод должен гарантировать «на десятилетия» выявление всех критических ошибок и полностью исключить исполнение неверно введенного платежного документа (ПП). Тем не менее в банках подобные ошибки все равно периодически происходят. Как правило это лишний (пропущенный) ноль: при обработке (переводе) большого числа крупных сумм (дочерние банки холдингов) большая вероятность ввести лишний или пропустить один из ноликов. Вероятность ввода двумя исполнителями процесса одновременно (последовательно при двойном вводе) в одной платежке одного лишнего нуля (или его пропуск) конечно мала, но это действительно реальность. Есть примеры ошибок и с двумя нулями.
В общем случае, разработка схемы надежности через параллельно-последовательная структуру является примитивным подходом и предлагает упрощенный вариант расчета часто не отражающий даже качественно характер изменения показателя надежности в зависимости от изменения структуры системы (процесса), например, увеличения числа его резервных узлов системы, например, серверов в кластере. Поэтому для более адекватных реальным процессам расчетов надежности предлагается моделирование марковскими цепями (графы состояний и переходов) с добавлением состояний «необнаруженного отказа».
Заключение
В продолжение освещения проблематики «Надёжность в процессах» приведены базовые формулы расчета показателей надёжности процесса, включая: Коэффициент готовности, Коэффициент доступности, Коэффициент результативности. Показано понятие Надежность (отказоустойчивость) алгоритма на примере банковской технологии «Двойной ввод платежного документа», например, платежного поручения клиента.
Некоторые ссылки
[OpRes24–1] Надежность в процессах. Часть 1
https://habr.com/ru/articles/844992/
[BCOR23] Business continuity & Operational resilience: вчера, сегодня, завтра. Откуда пришло и что дальше?
[27.002] ГОСТ 27.002—89 Надежность в технике. Основные понятия. Термины и определения
[716П] https://normativ.kontur.ru/document? moduleId=1&documentId=442220
[787П] https://www.cbr.ru/queries/unidbquery/file/90134/2560
Подход к оценке надёжности кластерных структур
https://cyberleninka.ru/article/n/podhod-k-otsenke-nadezhnosti-klasternyh-struktur/viewer
ГОСТ 27.204–83 Технологические системы. Технические требования к методам оценки надежности по параметрам производительности
https://www.zavodsz.ru/biblioteka/edinaya-sistema-konstruktorskoj-dokumentaczii/gost-27204–83/
ГОСТ Р 27.004–2009 Надежность в технике. МОДЕЛИ ОТКАЗОВ. Dependability in technics. Failure mechanism models
https://files.stroyinf.ru/Data/491/49104.pdf
ГОСТ Р 27.301–2011 Надежность в технике. Управление надежностью. Техника анализа безотказности. Основные положения
https://dokipedia.ru/document/5148428