Атрибуты качества - это метрики, позволяющие определить достигнуты ли поставленные цели и измерить количественно степень их достижения. Определить качество проекта или системы. Атрибуты должны измеряться количественно и быть проверяемыми.
Атрибуты качества могут быть внешними и внутренними, внешние - идут от заказчика или видны заказчику, внутренние идут от архитектора или видны команде.
Цикл разработки программного обеспечения (SDLC) - оценка и проверка атрибутов качества, должны быть обязательной частью цикла разработки и внедрения ПО или системы.
Основные направления:
- Коррекция
- Совершенствование
- Адаптация
- Проактивность
Задача: минимизировать риски связанные с регрессиями.
Данный вид сопровождение направлен на фиксирование текущих проблем (багов) и организацию работы по их устранению. В процессах управления за это направление отвечает инцидент менеджемент. Основные характеристики инцидентов: приоритет (высокий, низкий), влияние (сильное, слабое), срок устранения. Архитектор может взять уже готовые системы классификации, в случае необходимости упростить или усложнить систему оценки.
Срок исполнения - обязательная характеристика инцидента, без срока это уже не инцидент
При сложных, композитных проблемах управление инцидентами дополняется процессом устранения проблем.
Задача: минимизировать риски связанные с новыми внедрениями и выдержать сроки внедрения.
Развитие системы включает в себя несколько важных процессов:
- планирование и внедрение фич
- технология разработки
- тестирование (с позиции технологии разработки)
- технологические миграции
- минимизация рисков и оптимизация сроков внедрения
Задача: разработать систему с вариативным поведением, способную работать в разном окружении и адаптированную к мобильной, веб и другим средам функционирования.
В данное направление включаются следующие процессы:
- CI/CD
- организация процесса управления конфигурацией
Задача: уменьшение технического долга, контроль над техническим долгом.
Основные процессы:
Основная проблема связана с монолитными архитектурами, поэтому при проектировании системы для обеспечения расширяемости и модифицируемости учитываются следующие принципы:
Архитектор не отвечает за проектирование интерфейсов ПО и удобство использования софта, но отвечает за организацю процессов качество, касающихся дизайна. Сюда входит:
Системы работающие по принципу клиент-сервер, имеют отдельный атрибут качества - доступность. Известная проблема - высокая стоимость последнего процента. Так как доступность обычно измеряется в процентах аптайма, то чем ближе к 100% тем каждый шаг становится дороже.
Высокая доступность определяется "девятками", т.е. количеством девяток, в цифре доступности (99%, 99.9%)
Метрики:
Виды мониторинга:
- ресурсный (пинг, место, память, таймсириес данные)
- бизнес
Типы агентов:
- агентский мониторинг
- безагентский мониторинг
Сбоем считается ситуация, которая привела к деградации сервиса. Деградацией считается нарушение SLA, где зафиксированы числовые значения для метрик.
Методы борьбы со сбоями:
- Транзакционный контроль
- Резервирование (холодное, горячее)
- Резервное копирование (бэкап, снапшоты)
Тестирование должно быть автоматизируемым, чтобы быть частью CI/CD. Сегодня это золотой стандарт разработки. Но так же необходимо ручное тестирование, организация работы тестеров и этапность внедрения (stage).
Основные направления:
Тестирование должно внедряться поэтапно, по мере усложнения проекта, раннее тестирование влечет сильное замедление в работе. Так же существуют проблемы в зрелости команды.