Архитектура решения | On-Premise | 2GIS Documentation
On-Premise

Архитектура решения

Программный комплекс 2ГИС состоит из набора сервисов. Каждая версия комплекса представлена в виде набора сервисов, привязанных к этой версии.

Архитектура программного комплекса 2ГИС

Helm-чарты, которые используются для установки сервисов, устанавливают только сами сервисы. Чтобы сервисы могли работать, им необходима заранее подготовленная инфраструктура.

К инфраструктуре относятся:

  • Кластер Kubernetes с Ingress-контроллером

    Большинство сервисов следует поместить за балансировщик нагрузки. При установке из Helm-чартов создаётся ресурс Ingress для сервисов, которые этого требуют. Вы можете использовать Ingress-контроллер на ваш выбор для реализации балансировщика нагрузки Ingress в вашем кластере Kubernetes.

  • Инфраструктура установки и обновления сервисов

    Для установки и обновления сервисов используются:

    • Приложение 2GIS CLI для получения актуальных артефактов установки: Docker-образов и наборов данных.
    • Хранилище артефактов установки. Подойдет любое S3-совместимое хранилище. Поддержка других типов хранилища находится в стадии разработки.
    • Реестр Docker для хранения Docker-образов.

    Артефакты установки включают все необходимые образы и данные для установки сервисов. Поскольку данные для сервисов, как и Docker-образы сервисов, постоянно актуализируются, рекомендуется периодически получать новые версии артефактов установки и затем обновлять уже установленные сервисы.

    Подробнее см. в разделе Жизненный цикл артефактов установки.

  • Сетевая инфраструктура

    Программный комплекс 2ГИС спроектировано так, что подавляющая часть сервисов и инфраструктуры может быть установлена в изолированной локальной сети с ограниченным или отсутствующим доступом к интернету.

    Доступ к интернету используют только два компонента:

    • Утилита 2GIS CLI в режиме pull.

      Эта утилита и инфраструктура, необходимая для ее работы (см. выше), обычно размещаются в публичной сети, из которой есть доступ в интернет.

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

      Подробнее см. в разделе Жизненный цикл артефактов установки.

    • Прокси для API пробок.

      Прокси для API пробок размещается в приватной сети.

      Для работы сервиса дополнительно необходимо настроить инфраструктуру в приватной сети (например, файервол или балансировщик нагрузки) так, чтобы прокси для API пробок имел доступ в интернет.

  • Хранилища данных для сервисов

    Разные сервисы используют различные комбинации хранилищ данных. Под хранилищем понимается какой-либо кластер баз данных или S3-совместимое хранилище.

    При установке или обновлении сервиса данные, необходимые для его работы, перемещаются из хранилища артефактов установки в хранилище сервиса.

    В документации каждого сервиса указано, какие хранилища данных ему необходимы.

    Требования к самим хранилищам указаны в разделе Системные требования.