Перейти к основному содержимому

Системная архитектура

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

  • Для публикации на сайте компании - описание продукта, white paper, datasheet;
  • Для участия в конкурсах на закупку (RFI, RFP) - концептуальное описание продукта и его роль в IT экосистемы предприятия;
  • Презентационные материалы для технических сессий с существующими и потенциальными клиентами;
  • Публичная техническая документация на продукт.

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

  • В виде ADR (Architecture decision records) - запись архитектурных решений;
  • Составная часть FDS (Functional design specification) с описанием архитектуры в C4 модели;
    • Контекстная диаграмма. Для бизнес-пользователей, которым не нужно погружаться в технические нюансы;
    • Диаграмма контейнеров. Для пользователей, которым нужно понять архитектуру приложения без глубокого погружения в техническую часть;
    • Диаграмма развертывания;
    • Сетевая диаграмма.

Для примера далее представлена доменная область - сеть радиодоступа O-RAN и подсистема управления и обслуживания физических и виртуализированных сетевых элементов (O-RAN management domain). Логическая архитектура рассматриваемого домена:

логическая архитектура подсистемы управления O-RAN

Описание компонент на диаграмме:

  • O-CU-CP : O-RAN Central Unit – Control Plane. Плоскость управления центральным блоком O-RAN: логический узел, на котором размещены RRC (управление радиоресурсами) и CP (плоскость управления) PDCP (протокол конвергенции пакетных данных)
  • O-CU-UP : O-RAN Central Unit – User Plane. Пользовательская плоскость: логический узел, на котором размещены SDAP (протокол адаптации служебных данных) и UP (пользовательский уровень) часть PDCP;
  • O-DU : O-RAN Distributed Unit. (распределенный блок O-RAN): логический узел, на котором размещены уровни RLC (управление радиоканалом) / MAC (управление доступом к среде) / высокий PHY на основе LLS;
  • O-RU : O-RAN Radio Unit. Удаленный блок O-RAN: логический узел, на котором размещается уровень низкого физического уровня (например, FFT / IFFT, PRACH) и RF на основе LLS (разделение нижнего уровня);
  • Near-RT RIC : Near-Real-Time Radio Intelligent Controller. Интеллектуальный контроллер RAN в режиме близкого к реальному времени или nRT RIC: логический узел, обеспечивающий управление / оптимизацию элементов и ресурсов RAN в режиме почти реального времени посредством детального сбора данных и действий по E2. Контроллер nRT RIC может включать рабочий процесс AI / ML.
  • PNF : Физическая базовая станция - eNodeB
  • OAM functions : Компонент обеспечивающий управление и обслуживание физических и виртуализированных сетевых элементов. FCAPS (Fault, Configuration, Accounting, Performance, Security) с конфигурацией, реконфигурацией, регистрацией, безопасностью, производительностью, обменом деталями мониторинга с отдельными узлами

Концептуальная архитектура

Решаемая задача - объяснить место предлагаемого решения в IT экосистеме предприятия. Как правило визуализация архитектуры такого рода применяется в следующих артефактах:

  • Маркетинговые материалы о продукте
  • Тендерная документация на покупку IT систем
  • Техническая пояснительная записка в рамках технико-коммерческого предложения
  • Приложение к контракту на внедрение IT системы
  • Высокоуровневый дизайн проекта

Основные принципы:

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

концептуальная архитектура подсистемы управления O-RAN

C4.Контекстная диаграмма

контекстная диаграмма C4 подсистемы управления БС

@startuml
!include C4_Context.puml

'LAYOUT_TOP_DOWN()
'LAYOUT_AS_SKETCH()
LAYOUT_WITH_LEGEND()

title Управление и обслуживание сетевых функций O-RAN

Person(ran_engineer, "Инженер экплуатации радио сети", "Разворачивает сетевые элементы, обновляет систему")
Person(l3_engineer, "Инженер поддержки L3 ", "Анализирует инциденты, решает клиентские заявки")


Boundary(ran, "Подсистема базовых станций") {
System(oran_ems, "ORAN EMS", "Система управления и обслуживания сетевых функций ORAN")

System_Ext(o_ran_mf, "O-RAM MF", "Manaegment fuction: O-DU, O-RU, CU-UP, CU-CP")
System_Ext(nrt_ric, "Near realtime RIC", "Интеллектуальный контроллер RAN")
}
Boundary(ext, "Внешние системы клиента"){
System_Ext(netcool, "Netcool", "Umbrella FM")
System_Ext(prometheus, "Prometheus", "Umbrella PM")
System_Ext(ndo, "NDO", "Service Activator")
System_Ext(splunk, "Splunk", "SIEM")
System_Ext(dwh, "DWH", "Data warehouse")
System_Ext(postfix, "Postfix", "Umbrella FM")
}

Rel_L(ran_engineer, oran_ems,"разворачивает и обновляет БС")
Rel_L(l3_engineer, oran_ems,"решает инциденты и исследует заявки клиентов")


Rel(oran_ems, o_ran_mf,"Управляет конфигурацией")
Rel(oran_ems, o_ran_mf,"Получает pmf файлы с метриками")
Rel( o_ran_mf, oran_ems,"Передает трейсы")
Rel( o_ran_mf, oran_ems,"Передает нотификации с авариями")
Rel(oran_ems, nrt_ric,"Забирает метрики")
Rel(nrt_ric, oran_ems, "Передает нотификации с авариями")
Rel(nrt_ric, oran_ems, "Передает нотификации с авариями")

Rel_U(oran_ems,netcool, "Передает нотификации с авариями")
Rel_U(oran_ems,prometheus, "Пересылает метрики")
Rel(ndo, oran_ems, "активирует и настраивает сервисы")
Rel_U(oran_ems,splunk, "передает логи аудита")
Rel_U(oran_ems,dwh, "Передает метрики и историю аварий")
Rel_U(oran_ems, postfix, "отправляет email нотификации")

skinparam nodesep 100
'skinparam Linetype ortho

@enduml

Прикладная архитектура

C4. Диаграмма "Контейнеров" модуля Performance Management контекстная диаграмма C4 модуля Performance Management

Рассмотрена подсистема записи и визуализации метрик в рамках приложения Performance Management.

  • Интеграция с IAM и другими платформенными сервисами предполагается, но в данной статье не рассмотрена
  • Микрофронтэнд pm-frontend - раздает пользователям JS,CSS файлы которые необходимы для сборки страницы в браузере.
  • pm-bff - сервис проверяющий доступ пользователя к эндпоинтам.
    • Логирует аудитные логи при CRUD операция с сущностями домена Performance Management.
    • Представляет ответ от других api в удобном для фронтэнда виде.
  • pm-integration-api - используется как интеграционный шлюз для связи с внешними системами.
    • Отправляет метрики в формате prometheus-remote-write во внешний prometheus.
    • Формирует csv файлы с агрегированными метриками во внешнее облако данных и систему отчетности.
    • Пишет аудитные логи в сервис аудит логирования
  • pm-configuration-manager - управляет конфигурациями подсистемы. выдают конфигурационные файлы для других микросервисов
    • Хранит внутренние конфигурации - правила алертов, дашборды
    • Хранит настройки внешних интеграций
    • Формирует конфигурацию правил алертов и правил формирования производных метрик для vmalert
  • vmalert - опенсорсное приложение экосистемы victoria-metrics
    • Выявляет пороговые аномалии на основе мпетрик
    • Формирует производные метрики с помощью recording-rules
  • pm-oran-metrics-file - Собирает готовые файлы с метриками с подключенных виртуализированных сетевых элементов

Базы данных:

  • pm-internal-configuration-manager - MongoDb. для хранения конфигруций подвистемы Prefomanve Management
  • vmselect - сервис, часть экосистемы Victoria Metrics. Чтение, дедупликация и препроцессинг метрик
  • vminsert - сервис, часть экосистемы Victoria Metrics. Подготовка метрик и нормализация модели данных метрик перед сохранением на диски.
  • vmstorage - сервис, часть экосистемы Victoria Metrics. Хранит метрики и индексы на дисках

Схема обеспечения высокой доступности и диаграмма развертывания

Диаграмма развертывания подсистемы сбора и хранения метрик

контекстная диаграмма C4 модуля Performance Management

  • База данных установлена на двух независимых площадках
  • Stateless приложения базы данных victoria-metrics развернуты в кластере kubernetes вместе с микросервисами performance-management. При при изменении нагрузки на vmselect, vmstorage меняется количество инстансов с помощью механизма автоскалирования kubernetes
  • Statefull приложение базы данных victoria-metrics (vmstorage) развернуто на отдельных виртуальных машинах на той же AZ, что и k8s кластер
  • При записи метрик применяется фактор репликации = 2, таким образом данные для каждого временного ряда находятся на двух нодах
  • Edge site - распределенная подсистема сбора файлов с метриками. В частном случае сборка может стоять и на центральных сайтах
  • Сборщики собирают pmf файлы с метриками, хранят локально на дисках родительской виртуальной машины. После преобразования формата в prometheus_remote_write одинаковый поток данных записывается в 2 локации с установленной victoria-metrics
  • В случае сетевой недоступности одной или двух центральных сайтов, поток метрик хранится на локальных дисков и досылается при восстановлении подключения

Описание услуг

Доменные области:

  • Системы виртуализации и облачные платформы
  • Системы поддержки процессов для телекоммуникационных сетей (OSS)
  • Системы мониторинга. логирования, APM (application performance management)
  • Внутрикорпоративные системы и автоматизация процессов

В зависимости от специфики вашего проекта предлагаю услуги по разработки и сопровождению архитектурной документации на продукт на всех этапах жизненного цикла продукта:

  • Разработка технических презентационных материалов
  • Разработка ответа для участия в конкурсах на закупку (RFP/RFQ) и ответа на запрос информации
  • Разработка высокоуровнего дизайна приложения (HLD)
  • Разработка низкоуровнего дизайна приложения (LLD)
  • Разработка механизмов повышения доступности существующего приложения