582 lines
265 KiB
HTML
582 lines
265 KiB
HTML
<!doctype html>
|
||
<html lang="ru"><meta charset="utf-8">
|
||
<title>СДЕ Sarex — типовой контур (пример)</title>
|
||
<style>
|
||
body { font-family: system-ui, sans-serif; margin: 0 auto; padding: 24px; max-width: 1760px;
|
||
background:#fafafa; color:#111; }
|
||
h1 { font-size: 22px; } h2 { font-size: 16px; margin: 32px 0 4px; }
|
||
.doc { color:#555; font-size:13px; margin:0 0 10px; max-width:900px; }
|
||
section { background:#fff; border:1px solid #ddd; border-radius:6px; padding:14px; margin-bottom:18px;
|
||
overflow-x:auto; }
|
||
svg { width:100%; height:auto; min-width:700px; }
|
||
.legend { font-size:13px; color:#444; }
|
||
.legend code { background:#eee; padding:1px 5px; border-radius:3px; }
|
||
</style>
|
||
<h1>СДЕ Sarex — типовой контур (пример)</h1>
|
||
<p class="legend">Автогенерация из <code>example-technology.archimate</code>. Зелёный — технологический слой,
|
||
голубой — прикладной. Пунктир с полым треугольником — realization, стрелка — serving,
|
||
ромб — composition, линия с шариком — assignment.</p>
|
||
<section><h2>L1. Как читать схемы</h2><p class="doc">Легенда нотации. Показан настоящий фрагмент модели, подписанный по типам: каждый элемент и каждая линия здесь встречаются на остальных представлениях в том же начертании.</p><svg viewBox="0 0 1280 526" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="280" y1="150" x2="340" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-start="url(#diamond)"/><line x1="600" y1="150" x2="660" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="920" y1="150" x2="980" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="470" y1="320" x2="470" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-start="url(#odiamond)"/><line x1="838" y1="320" x2="1062" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#filled)" marker-start="url(#ball)"/><line x1="1110" y1="320" x2="1110" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-start="url(#odiamond)"/><rect x="20" y="120" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="150" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кластер k8s-prod</text><rect x="340" y="120" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="470.0" y="150" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="660" y="120" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="790.0" y="150" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="980" y="120" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1110.0" y="150" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="340" y="320" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="470.0" y="343" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Группа узлов K8s (Поддерживающая</text><text x="470.0" y="358" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">инфраструктура)</text><rect x="660" y="320" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="790.0" y="343" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Группа узлов generic (Сервера</text><text x="790.0" y="358" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">приложений)</text><rect x="980" y="320" width="260" height="60" rx="4" fill="#F4F4F4" fill-opacity="1" stroke="#888" stroke-width="1.2"/><text x="1110.0" y="350" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Документы и общая среда данных</text><rect x="20" y="320" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="350" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Helm-чарты (OCI)</text><rect x="20" y="20" width="1220" height="66" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="29" y="37" font-size="11" fill="#4a4632">Стрелка serving читается не как «кто кого вызывает», а как «кто без кого не работает»: она идёт от обслуживающего к обслуживаемому. Направление выбрано так потому, что от схемы обычно нужен ответ</text><text x="29" y="51" font-size="11" fill="#4a4632">на вопрос «что откажет, если убрать этот элемент», — и он читается по стрелкам вперёд.</text><rect x="20" y="190" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="29" y="207" font-size="11" fill="#4a4632">Узел (Node) — вычислительная среда:</text><text x="29" y="221" font-size="11" fill="#4a4632">кластер, группа серверов или отдельный</text><text x="29" y="235" font-size="11" fill="#4a4632">хост. Ромб на линии — composition: узел</text><text x="29" y="249" font-size="11" fill="#4a4632">состоит из этого, и отдельно от узла</text><text x="29" y="263" font-size="11" fill="#4a4632">содержимое не существует.</text><rect x="340" y="190" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="349" y="207" font-size="11" fill="#4a4632">Системное ПО (System Software) —</text><text x="349" y="221" font-size="11" fill="#4a4632">платформенный компонент внутри узла.</text><text x="349" y="235" font-size="11" fill="#4a4632">Пунктир с полым треугольником —</text><text x="349" y="249" font-size="11" fill="#4a4632">realization: компонент реализует</text><text x="349" y="263" font-size="11" fill="#4a4632">технологический сервис.</text><rect x="660" y="190" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="669" y="207" font-size="11" fill="#4a4632">Технологический сервис (Technology</text><text x="669" y="221" font-size="11" fill="#4a4632">Service) — что платформа даёт</text><text x="669" y="235" font-size="11" fill="#4a4632">приложениям, без указания, чем именно это</text><text x="669" y="249" font-size="11" fill="#4a4632">сделано. Приложение зависит от сервиса, а</text><text x="669" y="263" font-size="11" fill="#4a4632">не от конкретного продукта под ним.</text><rect x="980" y="190" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="989" y="207" font-size="11" fill="#4a4632">Прикладной компонент (Application</text><text x="989" y="221" font-size="11" fill="#4a4632">Component) — сервис прикладного слоя.</text><text x="989" y="235" font-size="11" fill="#4a4632">Цветом различаются слои: голубой —</text><text x="989" y="249" font-size="11" fill="#4a4632">прикладной, зелёный — технологический.</text><rect x="340" y="390" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="349" y="407" font-size="11" fill="#4a4632">Линия с полым ромбом — aggregation:</text><text x="349" y="421" font-size="11" fill="#4a4632">группа объединяет элемент, но тот может</text><text x="349" y="435" font-size="11" fill="#4a4632">существовать и без неё. Так показано, на</text><text x="349" y="449" font-size="11" fill="#4a4632">каких узлах работает системное ПО.</text><rect x="660" y="390" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="669" y="407" font-size="11" fill="#4a4632">Линия с шариком и закрашенной стрелкой —</text><text x="669" y="421" font-size="11" fill="#4a4632">assignment: узел выделен под компонент, и</text><text x="669" y="435" font-size="11" fill="#4a4632">компонент на нём исполняется.</text><rect x="980" y="390" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="989" y="407" font-size="11" fill="#4a4632">Смысловая группа (Grouping) — домен</text><text x="989" y="421" font-size="11" fill="#4a4632">прикладного слоя. Тоже aggregation:</text><text x="989" y="435" font-size="11" fill="#4a4632">компонент принадлежит домену по смыслу, а</text><text x="989" y="449" font-size="11" fill="#4a4632">не по месту размещения.</text><rect x="20" y="390" width="260" height="96" rx="3" fill="#fffbe8" stroke="#d8cfa8" stroke-width="1"/><text x="29" y="407" font-size="11" fill="#4a4632">Артефакт (Artifact) — то, что физически</text><text x="29" y="421" font-size="11" fill="#4a4632">лежит в хранилище: файл, образ</text><text x="29" y="435" font-size="11" fill="#4a4632">контейнера, дистрибутив.</text></svg></section><section><h2>T1. Технологический слой</h2><p class="doc">Что развёрнуто в кластере и какие технологические сервисы это даёт. Приложения-потребители вынесены в отдельные представления T2 и далее.</p><svg viewBox="0 0 1860 1030" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="239" y1="90" x2="174" y2="185" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="138" y1="185" x2="105" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="325" y1="185" x2="150" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="549" y1="185" x2="329" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="773" y1="185" x2="500" y2="87" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1000" y1="186" x2="665" y2="83" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="231" y1="285" x2="685" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="461" y1="285" x2="859" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="691" y1="285" x2="1032" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="921" y1="285" x2="1206" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="782" y1="385" x2="1357" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1514" y1="140" x2="1555" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1320" y1="272" x2="260" y2="315" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1320" y1="352" x2="1290" y2="351" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1320" y1="448" x2="1290" y2="443" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1502" y1="560" x2="1730" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="1439" y1="650" x2="916" y2="255" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1446" y1="740" x2="909" y2="255" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1452" y1="830" x2="903" y2="255" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1485" y1="830" x2="1485" y2="720" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1485" y1="830" x2="1485" y2="810" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1485" y1="920" x2="1485" y2="720" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="168" y1="570" x2="152" y2="255" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#filled)" marker-start="url(#ball)"/><rect x="20" y="140" width="1270" height="400" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="30" y="160" font-size="13" font-weight="600" fill="#1a3a1a">Кластер k8s-prod</text><rect x="40" y="385" width="1230" height="130" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="50" y="405" font-size="13" font-weight="600" fill="#1a3a1a">Camunda Platform</text><rect x="1320" y="410" width="330" height="130" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="475" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">registry.example.com</text><rect x="1320" y="140" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="175" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">s3.example.com — объектное хранилище</text><rect x="1320" y="230" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Сетевое хранилище (StorageClass)</text><rect x="1320" y="320" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="355" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Git-сервер контура</text><rect x="1320" y="560" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="595" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">smtp.example.com — почтовый релей</text><rect x="1320" y="650" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="685" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Keycloak — брокер идентификации</text><rect x="1320" y="740" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="775" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">AD FS — служба федерации</text><rect x="1320" y="830" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="865" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Active Directory — каталог предприятия</text><rect x="1320" y="920" width="330" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1485.0" y="955" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kerberos KDC — центр выдачи билетов</text><rect x="20" y="570" width="300" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="170.0" y="600" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">frontend-node-01</text><rect x="40" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Ingress Gateway</text><rect x="280" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="390.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Service Mesh</text><rect x="520" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="630.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cert-manager</text><rect x="760" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="870.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="1000" y="185" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1110.0" y="220" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="40" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">PostgreSQL</text><rect x="280" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="390.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Redis</text><rect x="520" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="630.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kafka</text><rect x="760" y="285" width="220" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="870.0" y="320" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">RabbitMQ</text><rect x="50" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="131.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zeebe</text><rect x="224" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="305.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zeebe Gateway</text><rect x="398" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="479.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Operate</text><rect x="572" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="653.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Tasklist</text><rect x="746" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="827.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Optimize</text><rect x="920" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1001.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Identity</text><rect x="1094" y="435" width="162" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1175.0" y="465" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Connectors</text><rect x="20" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="95.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="95.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="185" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="260.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Выпуск</text><text x="260.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">TLS-сертификатов</text><rect x="350" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="425.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="515" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="590.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="680" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="755.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="845" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="920.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="1010" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1085.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="1175" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1250.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений</text><text x="1250.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">AMQP</text><rect x="1340" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1415.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Оркестрация процессов</text><text x="1415.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">BPMN</text><rect x="1505" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1580.0" y="60" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="1670" y="30" width="150" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1745.0" y="53" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых</text><text x="1745.0" y="68" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">уведомлений</text><rect x="1335" y="460" width="145" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1407.5" y="490" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Helm-чарты (OCI)</text><rect x="1490" y="460" width="145" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1562.5" y="490" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Образы контейнеров</text></svg></section><section><h2>T2. Развёртывание по узлам</h2><p class="doc">Какие группы узлов какие компоненты несут. Вложенность заменяет стрелки: хост внутри группы — composition, приложение — assignment, системное ПО — aggregation. Имена хостов заданы в профиле контура.</p><svg viewBox="0 0 1598 1080" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><rect x="450" y="20" width="1108" height="1020" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="460" y="40" font-size="13" font-weight="600" fill="#1a3a1a">Группа узлов generic (Сервера приложений)</text><rect x="20" y="416" width="400" height="360" rx="4" fill="#C9E7B7" fill-opacity="0.35" stroke="#4a7f3a" stroke-width="1.2"/><text x="30" y="436" font-size="13" font-weight="600" fill="#1a3a1a">Группа узлов K8s (Поддерживающая инфраструктура)</text><rect x="20" y="20" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="76" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Группа узлов processing (Сервера приложений)</text><rect x="20" y="152" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="208" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="284" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="340" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Группа узлов DB (Базы данных)</text><rect x="20" y="796" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="852" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Репозиторий компонентов</text><rect x="20" y="928" width="400" height="112" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="220.0" y="984" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">CAD ферма</text><rect x="34" y="54" width="180" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="124.0" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="34" y="186" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="204" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">s3.example.com —</text><text x="124.0" y="219" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">объектное хранилище</text><rect x="34" y="318" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="343" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">PostgreSQL</text><rect x="34" y="450" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="475" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Ingress Gateway</text><rect x="229" y="450" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="475" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Service Mesh</text><rect x="34" y="512" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="537" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cert-manager</text><rect x="229" y="512" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="537" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="34" y="574" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="599" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="229" y="574" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="599" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Redis</text><rect x="34" y="636" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="661" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kafka</text><rect x="229" y="636" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="661" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">RabbitMQ</text><rect x="34" y="698" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="723" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Camunda Platform</text><rect x="34" y="830" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="124.0" y="855" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">registry.example.com</text><rect x="229" y="830" width="180" height="50" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="319.0" y="855" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Git-сервер контура</text><rect x="34" y="962" width="180" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="124.0" y="987" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Конвертер BIM-моделей</text><rect x="464" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">ams-sync</text><rect x="644" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="824" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="1004" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="1184" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="1364" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="464" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="644" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="824" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="1004" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cross-section</text><rect x="1184" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="1364" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">document-link</text><rect x="464" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="644" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="824" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="1004" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="1184" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="1364" y="178" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="203" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="464" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="644" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="824" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="1004" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="1184" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="1364" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="464" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="644" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">prescriptions</text><rect x="824" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">projects</text><rect x="1004" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="1184" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="1364" y="302" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="327" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="464" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="546.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="644" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="726.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">stamp-verification</text><rect x="824" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="906.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="1004" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1086.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="1184" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1266.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="1364" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1446.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T3. Внешние интеграции</h2><p class="doc">Системы за периметром контура, с которыми платформа обменивается данными, и направление зависимости. Слева — технологические сервисы, которые видят приложения; справа — то, чем эти сервисы обеспечены на стороне заказчика.
|
||
|
||
Схем подключения каталога предприятия четыре, и в конкретном контуре работает одна: каталог напрямую к провайдеру идентификации платформы; каталог через брокер Keycloak; то же с доменным входом по Kerberos, который умеет проверять только брокер; либо служба федерации AD FS поверх того же каталога. Здесь показаны все четыре сразу — при развёртывании лишние узлы из профиля убираются.</p><svg viewBox="0 0 1520 240" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="400" y1="55" x2="340" y2="55" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="400" y1="165" x2="340" y2="165" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="780" y1="55" x2="720" y2="55" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="819" y1="130" x2="681" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1160" y1="55" x2="720" y2="55" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1160" y1="55" x2="1100" y2="55" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1199" y1="90" x2="1061" y2="130" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="1199" y1="130" x2="1061" y2="90" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="180.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="20" y="130" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="180.0" y="165" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых уведомлений</text><rect x="400" y="20" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="560.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="400" y="130" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="560.0" y="165" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">smtp.example.com — почтовый релей</text><rect x="780" y="20" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="940.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Keycloak — брокер идентификации</text><rect x="780" y="130" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="940.0" y="165" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">AD FS — служба федерации</text><rect x="1160" y="20" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1320.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Active Directory — каталог предприятия</text><rect x="1160" y="130" width="320" height="70" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1320.0" y="165" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kerberos KDC — центр выдачи билетов</text></svg></section><section><h2>T4. Потребители: Маршрутизация HTTPS-трафика</h2><p class="doc">Сервисом пользуется 21 из 37 приложений контура.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><line x1="600" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация HTTPS-трафика</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Ingress Gateway</text><rect x="600" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="730.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Istio Service Mesh</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">document-link</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">stamp-verification</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T5. Потребители: Аутентификация OIDC</h2><p class="doc">Сервисом пользуются 25 из 37 приложений контура.</p><svg viewBox="0 0 1180 565" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="193" y1="80" x2="636" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="208" y1="80" x2="811" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="224" y1="80" x2="987" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="147" y1="80" x2="108" y2="470" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Zitadel</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">ams-sync</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cross-section</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">prescriptions</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">projects</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="970" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="20" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T6. Потребители: Управление секретами</h2><p class="doc">Сервисом пользуются 26 из 37 приложений контура.</p><svg viewBox="0 0 1180 565" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="193" y1="80" x2="636" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="208" y1="80" x2="811" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="224" y1="80" x2="987" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="147" y1="80" x2="108" y2="470" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="160" y1="80" x2="286" y2="470" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Vault + Agent Injector</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="970" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="20" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="210" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T7. Потребители: Реляционное хранилище</h2><p class="doc">Сервисом пользуются 24 из 37 приложений контура.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="146" y1="80" x2="108" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="162" y1="80" x2="284" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="177" y1="80" x2="460" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="193" y1="80" x2="636" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="208" y1="80" x2="811" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="224" y1="80" x2="987" y2="390" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">PostgreSQL</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="970" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>T8. Потребители: Кэш</h2><p class="doc">Сервисом пользуются 5 из 37 приложений контура.</p><svg viewBox="0 0 990 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Redis</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text></svg></section><section><h2>T9. Потребители: Событийная шина</h2><p class="doc">Сервисом пользуются 14 из 37 приложений контура.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Kafka</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">ams-sync</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text></svg></section><section><h2>T10. Потребители: Очередь сообщений AMQP</h2><p class="doc">Сервисом пользуются 12 из 37 приложений контура.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">RabbitMQ</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Конвертер BIM-моделей</text></svg></section><section><h2>T11. Потребители: Оркестрация процессов BPMN</h2><p class="doc">Сервисом пользуется 1 из 37 приложений контура.</p><svg viewBox="0 0 620 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Оркестрация процессов BPMN</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Camunda Platform</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text></svg></section><section><h2>T12. Потребители: Объектное хранилище</h2><p class="doc">Сервисом пользуются 16 из 37 приложений контура.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">s3.example.com — объектное хранилище</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Конвертер BIM-моделей</text></svg></section><section><h2>T13. Потребители: Отправка почтовых уведомлений</h2><p class="doc">Сервисом пользуются 6 из 37 приложений контура.</p><svg viewBox="0 0 1180 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="320" y1="50" x2="280" y2="50" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="6,4" marker-end="url(#hollow)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых уведомлений</text><rect x="320" y="20" width="260" height="60" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="450.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">smtp.example.com — почтовый релей</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text></svg></section><section><h2>A0. Карта прикладного слоя</h2><p class="doc">Из чего состоит прикладной слой: 38 компонентов по смысловым группам. Связи здесь намеренно не показаны — на таком числе компонентов они делают схему нечитаемой; для них есть представления A1 и далее. Вложенность означает aggregation: группа объединяет компоненты, но не владеет ими.</p><svg viewBox="0 0 1348 846" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><rect x="20" y="20" width="1288" height="166" rx="4" fill="#F4F4F4" fill-opacity="0.35" stroke="#888" stroke-width="1.2"/><text x="30" y="40" font-size="13" font-weight="600" fill="#1a3a1a">Платформа</text><rect x="20" y="330" width="1288" height="166" rx="4" fill="#F4F4F4" fill-opacity="0.35" stroke="#888" stroke-width="1.2"/><text x="30" y="350" font-size="13" font-weight="600" fill="#1a3a1a">Документы и общая среда данных</text><rect x="20" y="516" width="1288" height="166" rx="4" fill="#F4F4F4" fill-opacity="0.35" stroke="#888" stroke-width="1.2"/><text x="30" y="536" font-size="13" font-weight="600" fill="#1a3a1a">Контроль качества</text><rect x="20" y="206" width="1288" height="104" rx="4" fill="#F4F4F4" fill-opacity="0.35" stroke="#888" stroke-width="1.2"/><text x="30" y="226" font-size="13" font-weight="600" fill="#1a3a1a">Управление проектом</text><rect x="20" y="702" width="1288" height="104" rx="4" fill="#F4F4F4" fill-opacity="0.35" stroke="#888" stroke-width="1.2"/><text x="30" y="722" font-size="13" font-weight="600" fill="#1a3a1a">Полевые данные</text><rect x="34" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">ams-sync</text><rect x="214" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">auth-flow</text><rect x="394" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="476.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">control-interface</text><rect x="574" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="656.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="754" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="836.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="934" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1016.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="1114" y="54" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1196.5" y="79" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="34" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="214" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="394" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="476.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">projects</text><rect x="574" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="656.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="754" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="836.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="934" y="116" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1016.5" y="141" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text><rect x="34" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">contracts</text><rect x="214" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="394" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="476.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="574" y="240" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="656.5" y="265" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="34" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="214" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="394" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="476.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Конвертер BIM-моделей</text><rect x="574" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="656.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="754" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="836.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">document-link</text><rect x="934" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1016.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="1114" y="364" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1196.5" y="389" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="34" y="426" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="451" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">stamp-verification</text><rect x="214" y="426" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="451" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="34" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="214" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="394" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="476.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="574" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="656.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="754" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="836.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">prescriptions</text><rect x="934" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1016.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="1114" y="550" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1196.5" y="575" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="34" y="612" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="637" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="34" y="736" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="116.5" y="761" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cross-section</text><rect x="214" y="736" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="296.5" y="761" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="394" y="736" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="476.5" y="761" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="574" y="736" width="165" height="50" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="656.5" y="761" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text></svg></section><section><h2>A1. Ядро прикладного слоя</h2><p class="doc">Восемь сервисов с наибольшим числом связей и вызовы между ними. Стрелка идёт от вызываемого к вызывающему (serving): кого лишишься — тот и сломается. Всего в контуре 86 межсервисных связей.</p><svg viewBox="0 0 1040 715" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="595" y1="74" x2="711" y2="109" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="547" y1="75" x2="878" y2="320" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="495" y1="75" x2="239" y2="532" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="525" y1="75" x2="781" y2="532" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="711" y1="109" x2="595" y2="74" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="811" y1="163" x2="900" y2="320" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="759" y1="163" x2="261" y2="532" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="711" y1="136" x2="309" y2="136" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="796" y1="163" x2="796" y2="532" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="711" y1="162" x2="190" y2="321" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="878" y1="320" x2="547" y2="75" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="830" y1="374" x2="309" y2="533" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="796" y1="532" x2="796" y2="163" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="781" y1="532" x2="525" y2="75" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="811" y1="532" x2="900" y2="375" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="711" y1="560" x2="309" y2="560" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="510" y1="620" x2="510" y2="75" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="547" y1="620" x2="878" y2="375" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="425" y1="621" x2="309" y2="586" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="495" y1="620" x2="239" y2="163" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="142" y1="320" x2="473" y2="75" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="348" x2="830" y2="348" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="120" y1="375" x2="209" y2="532" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="120" y1="320" x2="209" y2="163" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="374" x2="711" y2="533" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="309" y1="136" x2="711" y2="136" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="309" y1="162" x2="830" y2="321" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="425" y="20" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="510.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="711" y="108" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="796.0" y="136" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="830" y="320" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="915.0" y="348" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="711" y="532" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="796.0" y="560" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="425" y="620" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="510.0" y="648" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="139" y="532" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="224.0" y="560" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="20" y="320" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="348" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="139" y="108" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="224.0" y="136" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text></svg></section><section><h2>A2. Зависят от: django</h2><p class="doc">К django обращаются 18 сервисов.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="80" x2="970" y2="238" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="145" y1="80" x2="109" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="165" y1="80" x2="281" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="185" y1="80" x2="453" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="205" y1="80" x2="625" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="225" y1="80" x2="797" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="244" y1="80" x2="970" y2="310" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">mapper</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>A3. Зависят от: documentations</h2><p class="doc">К documentations обращаются 11 сервисов.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="226" y1="80" x2="605" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="253" y1="80" x2="780" y2="233" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>A4. Зависят от: eav</h2><p class="doc">К eav обращаются 9 сервисов.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="171" y1="80" x2="276" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="198" y1="80" x2="441" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text></svg></section><section><h2>A5. Зависят от: resources</h2><p class="doc">К resources обращаются 7 сервисов.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="143" y1="80" x2="111" y2="230" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text></svg></section><section><h2>A6. Зависят от: processing</h2><p class="doc">К processing обращаются 6 сервисов.</p><svg viewBox="0 0 1180 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text></svg></section><section><h2>A7. Зависят от: iam</h2><p class="doc">К iam обращаются 6 сервисов.</p><svg viewBox="0 0 1180 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="73" x2="780" y2="162" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="280" y1="68" x2="970" y2="166" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="970" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text></svg></section><section><h2>A8. Зависят от: flows</h2><p class="doc">К flows обращаются 4 сервиса.</p><svg viewBox="0 0 800 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text></svg></section><section><h2>A9. Зависят от: workspaces</h2><p class="doc">К workspaces обращаются 4 сервиса.</p><svg viewBox="0 0 800 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="274" y1="80" x2="590" y2="157" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text></svg></section><section><h2>A10. Зависят от: system-log</h2><p class="doc">К system-log обращаются 3 сервиса.</p><svg viewBox="0 0 610 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text></svg></section><section><h2>A11. Зависят от: bim</h2><p class="doc">К bim обращаются 3 сервиса.</p><svg viewBox="0 0 610 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text></svg></section><section><h2>A12. Зависят от: pm</h2><p class="doc">К pm обращаются 3 сервиса.</p><svg viewBox="0 0 610 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="139" y1="80" x2="115" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="184" y1="80" x2="264" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="229" y1="80" x2="413" y2="150" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="20" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="150.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text></svg></section><section><h2>P1. Паспорт: documentations</h2><p class="doc">Что нужно, чтобы documentations работал: 7 технологических сервисов и 15 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого documentations — представление A3.</p><svg viewBox="0 0 1180 565" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="187" y1="75" x2="500" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="345" y1="75" x2="536" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="503" y1="75" x2="571" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="661" y1="75" x2="606" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="818" y1="75" x2="641" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="976" y1="75" x2="676" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="142" x2="460" y2="188" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="315" x2="476" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="310" x2="521" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="310" x2="565" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="310" x2="610" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="806" y1="310" x2="655" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="314" x2="699" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="169" y1="390" x2="520" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="334" y1="390" x2="547" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="499" y1="390" x2="575" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="664" y1="390" x2="602" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="829" y1="390" x2="630" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="993" y1="390" x2="657" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="151" y1="470" x2="539" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="323" y1="470" x2="559" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="495" y1="470" x2="579" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="180" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="210" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="20" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">drawings</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">inspections</text><rect x="400" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="590" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="780" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">remarks</text><rect x="970" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text><rect x="20" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">subscriptions</text><rect x="210" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="400" y="470" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="498" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>P2. Паспорт: flows</h2><p class="doc">Что нужно, чтобы flows работал: 7 технологических сервисов и 8 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого flows — представление A8.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="187" y1="75" x2="500" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="345" y1="75" x2="536" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="503" y1="75" x2="571" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="661" y1="75" x2="606" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="818" y1="75" x2="641" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="976" y1="75" x2="676" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="142" x2="460" y2="188" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="315" x2="476" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="310" x2="521" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="310" x2="565" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="310" x2="610" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="806" y1="310" x2="655" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="314" x2="699" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="169" y1="390" x2="520" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="334" y1="390" x2="547" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="180" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="210" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="20" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="120" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых</text><text x="105.0" y="135" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">уведомлений</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">checklists</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="210" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text></svg></section><section><h2>P3. Паспорт: issues</h2><p class="doc">Что нужно, чтобы issues работал: 9 технологических сервисов и 7 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у issues меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 1180 485" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="187" y1="75" x2="500" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="345" y1="75" x2="536" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="503" y1="75" x2="571" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="661" y1="75" x2="606" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="818" y1="75" x2="641" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="976" y1="75" x2="676" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="142" x2="460" y2="188" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="380" y1="151" x2="483" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="520" y1="155" x2="552" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="315" x2="476" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="310" x2="521" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="310" x2="565" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="310" x2="610" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="806" y1="310" x2="655" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="314" x2="699" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="169" y1="390" x2="520" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="180" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="210" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="20" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="210" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="400" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="120" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых</text><text x="485.0" y="135" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">уведомлений</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="390" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="418" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text></svg></section><section><h2>P4. Паспорт: comparisons</h2><p class="doc">Что нужно, чтобы comparisons работал: 3 технологических сервиса и 6 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у comparisons меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="190" y1="62" x2="460" y2="108" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="380" y1="71" x2="483" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="520" y1="75" x2="552" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="235" x2="476" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="230" x2="521" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="230" x2="565" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="230" x2="610" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="806" y1="230" x2="655" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="234" x2="699" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="100" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="130" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">comparisons</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="970" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>P5. Паспорт: django</h2><p class="doc">Что нужно, чтобы django работал: 8 технологических сервисов и 6 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого django — представление A2.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="187" y1="75" x2="500" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="345" y1="75" x2="536" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="503" y1="75" x2="571" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="661" y1="75" x2="606" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="818" y1="75" x2="641" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="976" y1="75" x2="676" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="142" x2="460" y2="188" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="380" y1="151" x2="483" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="315" x2="476" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="310" x2="521" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="310" x2="565" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="310" x2="610" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="806" y1="310" x2="655" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="314" x2="699" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="180" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="210" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="20" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="210" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">bim</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">measurements</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="780" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="970" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="1055.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>P6. Паспорт: faas</h2><p class="doc">Что нужно, чтобы faas работал: 0 технологических сервисов и 5 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у faas меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 990 245" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="189" y1="150" x2="403" y2="80" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="338" y1="150" x2="448" y2="80" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="487" y1="150" x2="493" y2="80" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="636" y1="150" x2="537" y2="80" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="785" y1="150" x2="582" y2="80" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="365" y="20" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="495.0" y="50" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">faas</text><rect x="20" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">reviews</text><rect x="780" y="150" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="178" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text></svg></section><section><h2>P7. Паспорт: transmittal</h2><p class="doc">Что нужно, чтобы transmittal работал: 6 технологических сервисов и 5 прикладных сервисов. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у transmittal меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="190" y1="62" x2="460" y2="108" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="380" y1="71" x2="483" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="520" y1="75" x2="552" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="647" y1="75" x2="621" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="780" y1="73" x2="690" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="63" x2="720" y2="107" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="235" x2="476" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="230" x2="521" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="230" x2="565" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="230" x2="610" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="806" y1="230" x2="655" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="100" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="130" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">transmittal</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых</text><text x="1055.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">уведомлений</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="780" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="865.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text></svg></section><section><h2>P8. Паспорт: message-hub</h2><p class="doc">Что нужно, чтобы message-hub работал: 5 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у message-hub меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 990 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="190" y1="65" x2="365" y2="102" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="362" y1="75" x2="422" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="488" y1="75" x2="491" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="615" y1="75" x2="560" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="780" y1="66" x2="625" y2="101" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="189" y1="230" x2="403" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="338" y1="230" x2="448" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="487" y1="230" x2="493" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="636" y1="230" x2="537" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="365" y="100" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="495.0" y="130" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">message-hub</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">issues</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text></svg></section><section><h2>P9. Паспорт: pm</h2><p class="doc">Что нужно, чтобы pm работал: 8 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого pm — представление A12.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="187" y1="75" x2="500" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="345" y1="75" x2="536" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="503" y1="75" x2="571" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="661" y1="75" x2="606" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="818" y1="75" x2="641" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="976" y1="75" x2="676" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="142" x2="460" y2="188" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="380" y1="151" x2="483" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="315" x2="476" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="310" x2="521" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="310" x2="565" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="310" x2="610" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="180" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="210" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">pm</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Кэш</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="20" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="210" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="128" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text></svg></section><section><h2>P10. Паспорт: processing</h2><p class="doc">Что нужно, чтобы processing работал: 5 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Кто зависит от самого processing — представление A6.</p><svg viewBox="0 0 990 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="190" y1="65" x2="365" y2="102" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="362" y1="75" x2="422" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="488" y1="75" x2="491" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="615" y1="75" x2="560" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="780" y1="66" x2="625" y2="101" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="189" y1="230" x2="403" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="338" y1="230" x2="448" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="487" y1="230" x2="493" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="636" y1="230" x2="537" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="365" y="100" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="495.0" y="130" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">processing</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">iam</text><rect x="590" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text></svg></section><section><h2>P11. Паспорт: rfi</h2><p class="doc">Что нужно, чтобы rfi работал: 7 технологических сервисов и 4 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у rfi меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 1180 405" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="187" y1="75" x2="500" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="345" y1="75" x2="536" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="503" y1="75" x2="571" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="661" y1="75" x2="606" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="818" y1="75" x2="641" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="976" y1="75" x2="676" y2="180" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="142" x2="460" y2="188" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="315" x2="476" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="310" x2="521" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="310" x2="565" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="657" y1="310" x2="610" y2="240" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="180" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="210" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">rfi</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="100" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="120" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Отправка почтовых</text><text x="105.0" y="135" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">уведомлений</text><rect x="20" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="210" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text><rect x="400" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">eav</text><rect x="590" y="310" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="675.0" y="338" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">resources</text></svg></section><section><h2>P12. Паспорт: cde</h2><p class="doc">Что нужно, чтобы cde работал: 5 технологических сервисов и 3 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у cde меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 990 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="190" y1="65" x2="365" y2="102" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="362" y1="75" x2="422" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="488" y1="75" x2="491" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="615" y1="75" x2="560" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="780" y1="66" x2="625" y2="101" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="189" y1="230" x2="403" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="338" y1="230" x2="448" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="487" y1="230" x2="493" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="365" y="100" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="495.0" y="130" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">cde</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Маршрутизация</text><text x="105.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">HTTPS-трафика</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="40" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Оркестрация процессов</text><text x="675.0" y="55" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">BPMN</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">flows</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">system-log</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">workspaces</text></svg></section><section><h2>P13. Паспорт: notes</h2><p class="doc">Что нужно, чтобы notes работал: 6 технологических сервисов и 3 прикладных сервиса. Стрелки, как и везде, идут от обслуживающего к обслуживаемому. Входящих вызовов у notes меньше 3, отдельного представления для них нет.</p><svg viewBox="0 0 1180 325" xmlns="http://www.w3.org/2000/svg" font-family="system-ui, sans-serif">
|
||
<defs>
|
||
<marker id="open" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8" fill="none" stroke="#555" stroke-width="1.4"/></marker>
|
||
<marker id="hollow" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto">
|
||
<path d="M0,0 L11,5 L0,10 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
<marker id="filled" markerWidth="12" markerHeight="12" refX="10" refY="4" orient="auto">
|
||
<path d="M0,0 L10,4 L0,8 Z" fill="#555"/></marker>
|
||
<marker id="diamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#555"/></marker>
|
||
<marker id="ball" markerWidth="10" markerHeight="10" refX="2" refY="5" orient="auto">
|
||
<circle cx="4" cy="5" r="3.2" fill="#555"/></marker>
|
||
<marker id="odiamond" markerWidth="16" markerHeight="12" refX="1" refY="5" orient="auto">
|
||
<path d="M0,5 L6,1 L13,5 L6,9 Z" fill="#fff" stroke="#555" stroke-width="1.2"/></marker>
|
||
</defs><line x1="190" y1="62" x2="460" y2="108" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="380" y1="71" x2="483" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="520" y1="75" x2="552" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="647" y1="75" x2="621" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="780" y1="73" x2="690" y2="100" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="970" y1="63" x2="720" y2="107" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="190" y1="235" x2="476" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="359" y1="230" x2="521" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><line x1="508" y1="230" x2="565" y2="160" stroke="#555" stroke-width="1.3" opacity="0.75" stroke-dasharray="none" marker-end="url(#open)" /><rect x="460" y="100" width="260" height="60" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="590.0" y="130" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">notes</text><rect x="20" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="105.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Аутентификация OIDC</text><rect x="210" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="295.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Управление секретами</text><rect x="400" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="485.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Реляционное хранилище</text><rect x="590" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="675.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Событийная шина</text><rect x="780" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="865.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Очередь сообщений AMQP</text><rect x="970" y="20" width="170" height="55" rx="4" fill="#C9E7B7" fill-opacity="1" stroke="#4a7f3a" stroke-width="1.2"/><text x="1055.0" y="48" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">Объектное хранилище</text><rect x="20" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="105.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">attachments</text><rect x="210" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="295.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">django</text><rect x="400" y="230" width="170" height="55" rx="4" fill="#B5FFFF" fill-opacity="1" stroke="#2a7f8f" stroke-width="1.2"/><text x="485.0" y="258" font-size="12" text-anchor="middle" dominant-baseline="middle" fill="#111">documentations</text></svg></section>
|
||
</html> |