СДЕ Sarex — типовой контур (пример)

Автогенерация из example-technology.archimate. Зелёный — технологический слой, голубой — прикладной. Пунктир с полым треугольником — realization, стрелка — serving, ромб — composition, линия с шариком — assignment.

L1. Как читать схемы

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

Кластер k8s-prodVault + Agent InjectorУправление секретамиattachmentsГруппа узлов K8s (Поддерживающаяинфраструктура)Группа узлов generic (Сервераприложений)Документы и общая среда данныхHelm-чарты (OCI)Стрелка serving читается не как «кто кого вызывает», а как «кто без кого не работает»: она идёт от обслуживающего к обслуживаемому. Направление выбрано так потому, что от схемы обычно нужен ответна вопрос «что откажет, если убрать этот элемент», — и он читается по стрелкам вперёд.Узел (Node) — вычислительная среда:кластер, группа серверов или отдельныйхост. Ромб на линии — composition: узелсостоит из этого, и отдельно от узласодержимое не существует.Системное ПО (System Software) —платформенный компонент внутри узла.Пунктир с полым треугольником —realization: компонент реализуеттехнологический сервис.Технологический сервис (TechnologyService) — что платформа даётприложениям, без указания, чем именно этосделано. Приложение зависит от сервиса, ане от конкретного продукта под ним.Прикладной компонент (ApplicationComponent) — сервис прикладного слоя.Цветом различаются слои: голубой —прикладной, зелёный — технологический.Линия с полым ромбом — aggregation:группа объединяет элемент, но тот можетсуществовать и без неё. Так показано, накаких узлах работает системное ПО.Линия с шариком и закрашенной стрелкой —assignment: узел выделен под компонент, икомпонент на нём исполняется.Смысловая группа (Grouping) — доменприкладного слоя. Тоже aggregation:компонент принадлежит домену по смыслу, ане по месту размещения.Артефакт (Artifact) — то, что физическилежит в хранилище: файл, образконтейнера, дистрибутив.

T1. Технологический слой

Что развёрнуто в кластере и какие технологические сервисы это даёт. Приложения-потребители вынесены в отдельные представления T2 и далее.

Кластер k8s-prodCamunda Platformregistry.example.coms3.example.com — объектное хранилищеСетевое хранилище (StorageClass)Git-сервер контураsmtp.example.com — почтовый релейKeycloak — брокер идентификацииAD FS — служба федерацииActive Directory — каталог предприятияKerberos KDC — центр выдачи билетовfrontend-node-01Istio Ingress GatewayIstio Service Meshcert-managerZitadelVault + Agent InjectorPostgreSQLRedisKafkaRabbitMQZeebeZeebe GatewayOperateTasklistOptimizeIdentityConnectorsМаршрутизацияHTTPS-трафикаВыпускTLS-сертификатовАутентификация OIDCУправление секретамиРеляционное хранилищеКэшСобытийная шинаОчередь сообщенийAMQPОркестрация процессовBPMNОбъектное хранилищеОтправка почтовыхуведомленийHelm-чарты (OCI)Образы контейнеров

T2. Развёртывание по узлам

Какие группы узлов какие компоненты несут. Вложенность заменяет стрелки: хост внутри группы — composition, приложение — assignment, системное ПО — aggregation. Имена хостов заданы в профиле контура.

Группа узлов generic (Сервера приложений)Группа узлов K8s (Поддерживающая инфраструктура)Группа узлов processing (Сервера приложений)Объектное хранилищеГруппа узлов DB (Базы данных)Репозиторий компонентовCAD фермаprocessings3.example.com —объектное хранилищеPostgreSQLIstio Ingress GatewayIstio Service Meshcert-managerZitadelVault + Agent InjectorRedisKafkaRabbitMQCamunda Platformregistry.example.comGit-сервер контураКонвертер BIM-моделейams-syncattachmentsauth-flowbimcdechecklistscomparisonscontractscontrol-interfacecross-sectiondjangodocument-linkdocumentationsdrawingseavfaasflowsiaminspectionsissuesmappermeasurementsmessage-hubnotespmprescriptionsprojectsremarksresourcesreviewsrfistamp-verificationsubscriptionssystem-logtransmittalworkspaces

T3. Внешние интеграции

Системы за периметром контура, с которыми платформа обменивается данными, и направление зависимости. Слева — технологические сервисы, которые видят приложения; справа — то, чем эти сервисы обеспечены на стороне заказчика. Схем подключения каталога предприятия четыре, и в конкретном контуре работает одна: каталог напрямую к провайдеру идентификации платформы; каталог через брокер Keycloak; то же с доменным входом по Kerberos, который умеет проверять только брокер; либо служба федерации AD FS поверх того же каталога. Здесь показаны все четыре сразу — при развёртывании лишние узлы из профиля убираются.

Аутентификация OIDCОтправка почтовых уведомленийZitadelsmtp.example.com — почтовый релейKeycloak — брокер идентификацииAD FS — служба федерацииActive Directory — каталог предприятияKerberos KDC — центр выдачи билетов

T4. Потребители: Маршрутизация HTTPS-трафика

Сервисом пользуется 21 из 37 приложений контура.

Маршрутизация HTTPS-трафикаIstio Ingress GatewayIstio Service Meshauth-flowbimcdechecklistscontrol-interfacedjangodocument-linkdocumentationseavflowsiaminspectionsissuespmprocessingremarksreviewsrfistamp-verificationtransmittalworkspaces

T5. Потребители: Аутентификация OIDC

Сервисом пользуются 25 из 37 приложений контура.

Аутентификация OIDCZitadelams-syncauth-flowchecklistscomparisonscontractscontrol-interfacecross-sectiondjangodocumentationseavflowsiaminspectionsissuesmappernotespmprescriptionsprocessingprojectsremarksreviewsrfitransmittalworkspaces

T6. Потребители: Управление секретами

Сервисом пользуются 26 из 37 приложений контура.

Управление секретамиVault + Agent Injectorattachmentsbimcdechecklistscomparisonscontractsdjangodocumentationsdrawingseavflowsiaminspectionsissuesmappermeasurementsmessage-hubnotespmprocessingresourcesrfisubscriptionssystem-logtransmittalworkspaces

T7. Потребители: Реляционное хранилище

Сервисом пользуются 24 из 37 приложений контура.

Реляционное хранилищеPostgreSQLattachmentsbimchecklistscomparisonscontractsdjangodocumentationsdrawingseavflowsiaminspectionsissuesmappermessage-hubnotespmprocessingresourcesrfisubscriptionssystem-logtransmittalworkspaces

T8. Потребители: Кэш

Сервисом пользуются 5 из 37 приложений контура.

КэшRedisdjangoissuesmappermessage-hubpm

T9. Потребители: Событийная шина

Сервисом пользуются 14 из 37 приложений контура.

Событийная шинаKafkaams-synccontractsdjangodocumentationseavflowsiaminspectionsissuesmappermessage-hubnotespmsystem-log

T10. Потребители: Очередь сообщений AMQP

Сервисом пользуются 12 из 37 приложений контура.

Очередь сообщений AMQPRabbitMQcdecontractsdjangodocumentationsflowsissuesmappernotespmprocessingrfitransmittalКонвертер BIM-моделей

T11. Потребители: Оркестрация процессов BPMN

Сервисом пользуется 1 из 37 приложений контура.

Оркестрация процессов BPMNCamunda Platformcde

T12. Потребители: Объектное хранилище

Сервисом пользуются 16 из 37 приложений контура.

Объектное хранилищеs3.example.com — объектное хранилищеattachmentscdecontractsdjangodocumentationseaviamissuesmappermeasurementsmessage-hubnotespmresourcesrfisubscriptionsКонвертер BIM-моделей

T13. Потребители: Отправка почтовых уведомлений

Сервисом пользуются 6 из 37 приложений контура.

Отправка почтовых уведомленийsmtp.example.com — почтовый релейflowsinspectionsissuesrfisubscriptionstransmittal

A0. Карта прикладного слоя

Из чего состоит прикладной слой: 38 компонентов по смысловым группам. Связи здесь намеренно не показаны — на таком числе компонентов они делают схему нечитаемой; для них есть представления A1 и далее. Вложенность означает aggregation: группа объединяет компоненты, но не владеет ими.

ПлатформаДокументы и общая среда данныхКонтроль качестваУправление проектомПолевые данныеams-syncauth-flowcontrol-interfacedjangoeavfaasflowsiammessage-hubprojectssubscriptionssystem-logworkspacescontractsnotespmresourcesattachmentsbimКонвертер BIM-моделейcdedocument-linkdocumentationsdrawingsstamp-verificationtransmittalchecklistscomparisonsinspectionsissuesprescriptionsremarksreviewsrficross-sectionmappermeasurementsprocessing

A1. Ядро прикладного слоя

Восемь сервисов с наибольшим числом связей и вызовы между ними. Стрелка идёт от вызываемого к вызывающему (serving): кого лишишься — тот и сломается. Всего в контуре 86 межсервисных связей.

documentationsdjangoflowsprocessingeavissuesresourcespm

A2. Зависят от: django

К django обращаются 18 сервисов.

djangobimcomparisonsdocumentationsfaasflowsissuesmappermeasurementsmessage-hubnotespmprocessingresourcesrfisubscriptionssystem-logtransmittalworkspaces

A3. Зависят от: documentations

К documentations обращаются 11 сервисов.

documentationscomparisonsdjangofaasflowsissuesnotesprocessingrfisystem-logtransmittalworkspaces

A4. Зависят от: eav

К eav обращаются 9 сервисов.

eavcomparisonsdocumentationsfaasflowsinspectionsissuesmessage-hubpmrfi

A5. Зависят от: resources

К resources обращаются 7 сервисов.

resourcesdocumentationsflowsissuespmprocessingrfitransmittal

A6. Зависят от: processing

К processing обращаются 6 сервисов.

processingcomparisonsdjangodocumentationsflowsinspectionsissues

A7. Зависят от: iam

К iam обращаются 6 сервисов.

iamdocumentationsflowsissuespmprocessingtransmittal

A8. Зависят от: flows

К flows обращаются 4 сервиса.

flowscdedocumentationsissuestransmittal

A9. Зависят от: workspaces

К workspaces обращаются 4 сервиса.

workspacescdecomparisonsdjangodocumentations

A10. Зависят от: system-log

К system-log обращаются 3 сервиса.

system-logcdedocumentationssubscriptions

A11. Зависят от: bim

К bim обращаются 3 сервиса.

bimcomparisonsdjangodocumentations

A12. Зависят от: pm

К pm обращаются 3 сервиса.

pmdjangoflowsmessage-hub

P1. Паспорт: documentations

Что нужно, чтобы documentations работал: 7 технологических сервисов и 15 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого documentations — представление A3.

documentationsМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеСобытийная шинаОчередь сообщений AMQPОбъектное хранилищеattachmentsbimdjangodrawingseavflowsiaminspectionsnotesprocessingremarksresourcessubscriptionssystem-logworkspaces

P2. Паспорт: flows

Что нужно, чтобы flows работал: 7 технологических сервисов и 8 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого flows — представление A8.

flowsМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеСобытийная шинаОчередь сообщений AMQPОтправка почтовыхуведомленийchecklistsdjangodocumentationseaviampmprocessingresources

P3. Паспорт: issues

Что нужно, чтобы issues работал: 9 технологических сервисов и 7 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у issues меньше 3, отдельного представления для них нет.

issuesМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеКэшСобытийная шинаОчередь сообщений AMQPОбъектное хранилищеОтправка почтовыхуведомленийdjangodocumentationseavflowsiamprocessingresources

P4. Паспорт: comparisons

Что нужно, чтобы comparisons работал: 3 технологических сервиса и 6 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у comparisons меньше 3, отдельного представления для них нет.

comparisonsАутентификация OIDCУправление секретамиРеляционное хранилищеbimdjangodocumentationseavprocessingworkspaces

P5. Паспорт: django

Что нужно, чтобы django работал: 8 технологических сервисов и 6 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого django — представление A2.

djangoМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеКэшСобытийная шинаОчередь сообщений AMQPОбъектное хранилищеbimdocumentationsmeasurementspmprocessingworkspaces

P6. Паспорт: faas

Что нужно, чтобы faas работал: 0 технологических сервисов и 5 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у faas меньше 3, отдельного представления для них нет.

faasdjangodocumentationseavreviewstransmittal

P7. Паспорт: transmittal

Что нужно, чтобы transmittal работал: 6 технологических сервисов и 5 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у transmittal меньше 3, отдельного представления для них нет.

transmittalМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеОчередь сообщений AMQPОтправка почтовыхуведомленийdjangodocumentationsflowsiamresources

P8. Паспорт: message-hub

Что нужно, чтобы message-hub работал: 5 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у message-hub меньше 3, отдельного представления для них нет.

message-hubУправление секретамиРеляционное хранилищеКэшСобытийная шинаОбъектное хранилищеdjangoeavissuespm

P9. Паспорт: pm

Что нужно, чтобы pm работал: 8 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого pm — представление A12.

pmМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеКэшСобытийная шинаОчередь сообщений AMQPОбъектное хранилищеdjangoeaviamresources

P10. Паспорт: processing

Что нужно, чтобы processing работал: 5 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого processing — представление A6.

processingМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеОчередь сообщений AMQPdjangodocumentationsiamresources

P11. Паспорт: rfi

Что нужно, чтобы rfi работал: 7 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у rfi меньше 3, отдельного представления для них нет.

rfiМаршрутизацияHTTPS-трафикаАутентификация OIDCУправление секретамиРеляционное хранилищеОчередь сообщений AMQPОбъектное хранилищеОтправка почтовыхуведомленийdjangodocumentationseavresources

P12. Паспорт: cde

Что нужно, чтобы cde работал: 5 технологических сервисов и 3 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у cde меньше 3, отдельного представления для них нет.

cdeМаршрутизацияHTTPS-трафикаУправление секретамиОчередь сообщений AMQPОркестрация процессовBPMNОбъектное хранилищеflowssystem-logworkspaces

P13. Паспорт: notes

Что нужно, чтобы notes работал: 6 технологических сервисов и 3 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у notes меньше 3, отдельного представления для них нет.

notesАутентификация OIDCУправление секретамиРеляционное хранилищеСобытийная шинаОчередь сообщений AMQPОбъектное хранилищеattachmentsdjangodocumentations