Описание сервисов Teamstorm v3.0
Сервисы Teamstorm можно разделить на 3 группы:
-
Frontend cервисы, предоставляющие пользователю интерфейс для взаимодействия через браузер. В качестве основы используют веб-сервер
nginx
. Реализованы с использованиемtypescript/js
. Открытые порты по-умолчанию:8080/tcp
,8443/tcp
. -
balancer/ingress
- сервис, определяющий маршрут входящихHTTP
запросов; frontend
- пользовательский интерфейс;-
admin-ui
- интерфейс администрирования системы. -
Backend сервисы, выполняющие обработку данных и взаимодействие с базами данных. Реализованы с использованием
dotnet
. Открытые порты по-умолчанию:8080/tcp
,8443/tcp
. -
attachment_service_api
- сервис вложений; automation_service_api
- cервис автоматизации;comment_service_api
- сервис комментариев;cwm_public_gateway_api
- сервис маршрутизации запросов к публичномуAPI
;git_integration_service_api
- сервис интеграции сGitlab
;history_service_api
- сервис истории;notificication_service_api
- сервис уведомлений;notificication_service_hub
- cервис роутинга;notificication_service_mail
- сервис отправки почтовых уведомлений;task_tracker_gateway_api
- сервис маршрутизации запросов к задачам;template_service_api
- сервис шаблонов;webhook_service_api
- сервис интерграций средствамиwebhook
;wiki_gateway_api
- сервис маршрутизации запросов к вики-страницам;wiki_service_api
- сервис вики-страниц;workitem_service_api
- сервис работы с задачами;-
workspace_service_api
- сервис работы с рабочими пространствами и аутентификацией; -
Infrastructure сервисы, отвечающие за хранение данных и взаимодействие компонентов системы. Могут быть заменены на аналоги.
-
postgres
- реляционные базы данных. Порт по-умолчанию:5432/tcp
; minio
- S3 хранилище файлов. Порт по-умолчанию:9000/tcp
;rabbitmq
- менеджер очередей. Порты по-умолчанию:4369/tcp, 5671-5672/tcp, 15691-15692
;redis
- хранилище типа "ключ-значение" Порт по-умолчанию:6379/tcp
.
Схема сервисов Teamstorm
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#660066',
'primaryTextColor': '#FFFFFF',
'primaryBorderColor': '#000000',
'lineColor': '#FFFFFF',
'secondaryColor': '#000000',
'tertiaryColor': '#1F2041',
'fontFamily': 'Helvetica',
'fontSize': '20pt'
}
}
}%%
flowchart TD
direction BT
subgraph Teamstorm
direction LR
style Teamstorm stroke-width:0;
subgraph inf[Infra]
style inf stroke-width:0, width: 24%, fill:#2E2F69;
direction LR
id21("Postgres")
id22("Minio")
id23("RabbitMQ")
id24("Redis")
style id21 fill:#C76331, width: 225px;
style id22 fill:#C76331, width: 225px;
style id23 fill:#C76331, width: 225px;
style id24 fill:#C76331, width: 225px;
end
subgraph be[Backend]
style be stroke-width:0, fill:#2E2F69;
direction BT
subgraph svc[Services]
direction LR
style svc stroke-width:0, fill:#2E2F69;
id121(attachment_service_api)
id122(automation_service_api)
id123(comment_service_api)
id124(git_integration_service_api)
id125(history_service_api)
id126(notificication_service_api)
id127(notificication_service_hub)
id128(notificication_service_mail)
id129(template_service_api)
id1210(webhook)
id1211(wiki_service_api)
id1212(workitem_service_api)
id1213(workspace_service_api)
end
subgraph gw[Gateways]
style gw stroke-width:0, width: 24%, fill:#2E2F69;
direction LR
id111(cwm_public_gateway_api)
id112(task_tracker_gateway_api)
id113(wiki_gateway_api)
end
end
style fe stroke-width:0, width:18%, fill:#2E2F69;
subgraph fe[Frontend]
direction LR
style id01 fill:#0066CC;
id01("balancer/ingress")
style id02 fill:#0066CC;
id02("frontend")
style id03 fill:#0066CC;
id03("admin-ui")
end
end
fe <---> be
be <---> inf
linkStyle 0,1 stroke-width:10px,fill:none,stroke:white;