There will be a series of articles to cover some aspects of web apps architecture. I do love technical literature/books, publishers like PACKT, MANNING, O'REILLY. One of the my favorite books has got (not complete) of architectural properties, that one may find in the context of various TDA in the O&G industry where Clients state them according to their business priorities.
So I want them to put together here for any kind of necessity in future to discuss in details and examples.
And ChatGPT helped to put them together.
Fully agree to start with Operational, cuz this is the target for any mature O&G industry Client Organization would expect. And each attribute's example I can bring from real experience how people can fail.
Operational Attributes / Эксплуатационные свойства
Термин (RU) | Термин (EN) | Определение (RU) | Определение (EN) | Метод оценки / расчёта | Метрики | Пример |
---|---|---|---|---|---|---|
Надёжность | Reliability | Способность системы функционировать без сбоев в течение заданного времени. | The ability of a system to perform without failure for a specific period. | Анализ логов, тестирование на отказоустойчивость. | MTBF (Mean Time Between Failures), количество отказов за период | Система работает без сбоев 99.99% времени в течение месяца. |
Доступность | Availability | Готовность системы быть доступной для использования в любой момент времени. | The degree to which a system is operational and accessible when required. | Мониторинг времени простоя, uptime monitoring. | Uptime %, MTTR (Mean Time to Recovery) | Сервис недоступен менее 1 часа в месяц при SLA 99.9% |
Масштабируемость | Scalability | Способность системы справляться с увеличением нагрузки без ухудшения качества. | The system's capacity to handle growth in workload or users gracefully. | Тестирование при росте нагрузки (stress/load testing). | Время ответа при x2 нагрузке, кол-во пользователей при приемлемом отклике | Добавление новых серверов увеличивает пропускную способность на 50% |
Производительность | Performance | Характеристика, определяющая скорость реакции и обработки данных системой. | The responsiveness and processing speed of a system under workload. | Load testing, profiling, мониторинг задержек. | Response Time, Throughput, Latency | Среднее время отклика API — 200 мс при 1000 запросах/мин |
Управляемость | Manageability | Лёгкость администрирования, мониторинга и настройки системы. | The ease with which a system can be administered and monitored. | Оценка инструментов мониторинга и конфигурации. | Время настройки, наличие дашбордов | Добавление нового пользователя — 1 минута через UI |
Обслуживаемость | Maintainability | Простота внесения изменений, исправления ошибок или улучшения системы. | The ease with which a system can be modified to correct faults or improve it. | Оценка количества строк кода для правки, времени разработки. | Time to Fix, Code Complexity (Cyclomatic) | Исправление бага занимает в среднем 2 часа |
Эффективность | Efficiency | Степень использования ресурсов при выполнении задач. | The degree of resource utilization when performing tasks. | Профилирование ресурсов при тестировании нагрузки. | CPU Load %, RAM Usage, IOPS | Средняя загрузка CPU не превышает 60% при пике |
Structural / Структурные
Термин (RU) | Термин (EN) | Определение (RU) | Определение (EN) | Метод оценки / расчёта | Метрики | Пример |
---|---|---|---|---|---|---|
Модульность | Modularity | Способность системы быть разделённой на независимые модули. | The degree to which a system's components can be separated and recombined. | Оценка числа зависимостей между модулями. | Количество зависимостей, границы модулей | Приложение состоит из микросервисов, каждый из которых можно развернуть отдельно. |
Разделение обязанностей | Separation of Concerns | Разделение системы на компоненты, отвечающие за разные аспекты. | Dividing the system into distinct features that overlap as little as possible. | Анализ слоёв и компонент системы. | Наличие отдельных слоёв: UI, бизнес-логика, хранилище | Контроллер отвечает за маршруты, сервис — за бизнес-логику. |
Связность | Cohesion | Степень, с которой элементы одного модуля логически связаны между собой. | The degree to which elements of a module belong together. | Статический анализ кода, зависимые функции. | Количество задач одного типа в модуле | Модуль обработки платежей содержит только функции оплаты и возврата. |
Слабая связанность | Loose Coupling | Минимизация зависимости между модулями системы. | Minimizing dependencies between system components. | Анализ вызовов между модулями. | Число внешних зависимостей | Модуль авторизации взаимодействует с другими через API. |
Расширяемость | Extensibility | Способность системы быть легко дополненной новым функционалом. | The ease with which new capabilities can be added. | Внедрение новых классов или обработчиков. | Время на добавление новой функции | Добавление нового типа отчёта требует создания нового класса. |
Повторное использование | Reusability | Возможность использовать компонент повторно в разных контекстах. | The degree to which a component can be used in different systems. | Наличие библиотек, используемых в разных модулях. | Число точек повторного использования | Компонент формы используется в 5 разных проектах. |
Портируемость | Portability | Способность программного обеспечения работать на разных платформах. | The ease with which a system can be transferred to another environment. | Тестирование на разных ОС и браузерах. | Количество поддерживаемых платформ | Приложение развёрнуто на Windows, Linux и macOS. |
Crosscutting / Сквозные
Термин (RU) | Термин (EN) | Определение (RU) | Определение (EN) | Метод оценки / расчёта | Метрики | Пример |
---|---|---|---|---|---|---|
Безопасность | Security | Способность системы защищать данные и предотвращать несанкционированный доступ. | The system’s ability to protect data and prevent unauthorized access. | Пентесты, проверка авторизации и шифрования. | Число успешных атак, наличие шифрования | Все пользовательские пароли хранятся в виде bcrypt-хэшей. |
Тестируемость | Testability | Простота написания, выполнения и поддержки тестов. | The ease with which software can be tested. | Покрытие кода тестами, модульность компонентов. | Coverage %, число тестов на модуль | Unit-тесты покрывают 85% бизнес-логики. |
Аудитируемость | Auditability | Возможность отслеживания событий и изменений в системе. | The ability to log, trace, and audit system activity. | Наличие журналов действий, следов изменений. | Число логируемых событий, глубина журнала | Все действия пользователей сохраняются в журнале с меткой времени. |
Конфиденциальность | Confidentiality | Способность защищать данные от доступа третьих лиц. | The assurance that data is not disclosed to unauthorized individuals. | Проверка доступа, шифрование каналов связи. | Наличие TLS, ограничение видимости данных | Передача данных осуществляется по HTTPS, поля паспорта скрыты. |
Целостность | Integrity | Гарантия того, что данные не были изменены несанкционированным образом. | Ensuring that data is accurate and has not been tampered with. | Контрольные суммы, цифровые подписи, ограничения на уровне БД. | Hash-суммы, наличие триггеров контроля | Файлы проверяются по SHA256 при каждом загрузке. |
Подотчетность | Accountability | Возможность идентифицировать действия конкретных пользователей или систем. | The ability to trace actions to responsible entities. | Логирование с привязкой к пользователю. | Наличие user_id в логах, токены аудита | Удаление записи связано с user_id и timestamp. |
Логируемость | Logging | Возможность системы фиксировать ключевые события. | The capability to record important runtime information. | Наличие логирования ключевых операций. | Число логов, типы событий | Создание документа логируется с уровнем INFO. |
Соответствие | Compliance | Способность системы соответствовать стандартам и нормативам. | The ability to conform to laws, regulations, and standards. | Аудит на соответствие требованиям. | Наличие сертификации, отчётность | Продукт соответствует GDPR и ведёт журнал обработки данных. |
Интероперабельность | Interoperability | Способность взаимодействовать с другими системами. | The ability to work with other systems or products without special effort. | Поддержка API, интеграционные тесты. | Наличие внешних API, совместимость форматов | Система может загружать файлы в формате XML от внешнего клиента. |
Дополнительные и управленческие свойства архитектуры
Термин (RU) | Термин (EN) | Определение (RU) | Определение (EN) | Метод оценки / расчёта | Метрики | Пример |
---|---|---|---|---|---|---|
Развёртываемость | Deployability | Способность системы быть развернутой в целевой среде быстро и без ошибок. | The ability of a system to be deployed efficiently and reliably to its target environment. | CI/CD pipeline, время на развёртывание, количество ручных шагов. | Deployment Time, Automation Ratio | Система разворачивается за 3 минуты через GitHub Actions. |
Отказоустойчивость | Fault Tolerance | Способность системы продолжать работу при частичном сбое компонентов. | The capability of a system to continue operating properly in the event of failures. | Тестирование на сбои компонентов, резервирование. | Error Recovery Time, Redundancy Coverage | При отказе одного из серверов система автоматически переключается на резервный. |
Адаптируемость | Adaptability | Способность системы адаптироваться под изменения в среде или требованиях. | The ability of a system to adjust to changing environments and requirements. | Наличие параметров конфигурации, архитектурной гибкости. | Configurable Components, Feature Toggle Ratio | Система переключает режимы работы с использованием переменных окружения. |
Эволюционность | Evolvability | Способность системы развиваться и изменяться без существенных переделок. | The ability of a system to accommodate future changes with minimal impact. | Оценка затрат на модификации, гибкость архитектуры. | Effort for New Features, Change Impact Scope | Добавление нового бизнес-процесса требует изменения только одного модуля. |
Простота | Simplicity | Лёгкость понимания, использования и сопровождения архитектуры. | The ease with which the system can be understood and maintained. | Обзор архитектурной документации, восприятие командой. | Documentation Score, Learning Curve | Новая команда может начать работу с кодовой базой за 1 день. |
Тестируемость | Testability | Простота написания, выполнения и поддержки тестов. | The ease with which software can be tested. | Покрытие кода тестами, модульность компонентов. | Coverage %, число тестов на модуль | Unit-тесты покрывают 85% бизнес-логики. |
Общие затраты | Cost Efficiency | Совокупность расходов на разработку, сопровождение и эксплуатацию системы. | The total cost of development, operation, and maintenance of a system. | Оценка затрат по TCO, ROI, затратам на сопровождение. | TCO, ROI, OPEX | Снижение затрат на сопровождение на 20% за счёт автоматизации. |
Время вывода на рынок | Time to Market | Скорость, с которой команда может выпустить продукт или обновление. | The time it takes to deliver a product or feature to users. | Оценка времени между началом работ и релизом. | Average Delivery Cycle, Lead Time | Фича от идеи до релиза занимает в среднем 2 недели. |
Рентабельность | Return on Investment (ROI) | Отношение прибыли от проекта к его затратам. | The ratio of profit gained from a project relative to its costs. | Финансовый анализ прибыли/убытков. | ROI % | ROI по проекту составил 150% за 12 месяцев. |
Somehow ChatGPT also included ROI over here, but it's absolutely from another Opera. I used see Fault Tolerance variations but what I do like from this section is Deployability. This is the new common, trendy. Another top point is simplicity. Have you ever met those? But I do have a insights from the other world of simple O&G context. Still simple products are catchy. One love and the next story will be related to the service, that ChatGPT advised in a regular manner of alternatives selection, it was on the third place. In our current company we don't have that established, though it takes something like couple of minutes and it's free of charge.