Перейти к содержанию

Описание сервисов Teamstorm v3.0

Сервисы Teamstorm можно разделить на 3 группы:

  1. Frontend cервисы, предоставляющие пользователю интерфейс для взаимодействия через браузер. В качестве основы используют веб-сервер nginx. Реализованы с использованием typescript/js. Открытые порты по-умолчанию: 8080/tcp, 8443/tcp.

  2. balancer/ingress - сервис, определяющий маршрут входящих HTTP запросов;

  3. frontend - пользовательский интерфейс;
  4. admin-ui - интерфейс администрирования системы.

  5. Backend сервисы, выполняющие обработку данных и взаимодействие с базами данных. Реализованы с использованием dotnet. Открытые порты по-умолчанию: 8080/tcp, 8443/tcp.

  6. attachment_service_api - сервис вложений;

  7. automation_service_api - cервис автоматизации;
  8. comment_service_api - сервис комментариев;
  9. cwm_public_gateway_api - сервис маршрутизации запросов к публичному API;
  10. git_integration_service_api - сервис интеграции с Gitlab;
  11. history_service_api - сервис истории;
  12. notificication_service_api - сервис уведомлений;
  13. notificication_service_hub - cервис роутинга;
  14. notificication_service_mail - сервис отправки почтовых уведомлений;
  15. task_tracker_gateway_api - сервис маршрутизации запросов к задачам;
  16. template_service_api - сервис шаблонов;
  17. webhook_service_api - сервис интерграций средствами webhook;
  18. wiki_gateway_api - сервис маршрутизации запросов к вики-страницам;
  19. wiki_service_api - сервис вики-страниц;
  20. workitem_service_api - сервис работы с задачами;
  21. workspace_service_api - сервис работы с рабочими пространствами и аутентификацией;

  22. Infrastructure сервисы, отвечающие за хранение данных и взаимодействие компонентов системы. Могут быть заменены на аналоги.

  23. postgres - реляционные базы данных. Порт по-умолчанию: 5432/tcp;

  24. minio - S3 хранилище файлов. Порт по-умолчанию: 9000/tcp;
  25. rabbitmq - менеджер очередей. Порты по-умолчанию: 4369/tcp, 5671-5672/tcp, 15691-15692;
  26. 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;