Архитектура решения
Программный комплекс 2ГИС состоит из набора сервисов, привязанных к его определенной версии.
Для корректной работы сервисов необходима заранее подготовленная инфраструктура.
Как работает комплекс
-
2GIS CLI загружает артефакты установки с публичных серверов обновлений 2ГИС:
- наборы данных, необходимых для установки или обновления сервисов;
- Docker-образы сервисов.
-
2GIS CLI помещает наборы данных в S3-совместимое хранилище (на схеме — File/Object Storage), а Docker-образы — в реестр Docker (на схеме — Docker Registry). Оба хранилища расположены в публичной сети.
-
Далее происходит миграция артефактов установки из публичной сети в приватную, т.е. синхронизация содержимого хранилищ данных с их зеркалами.
Для обеспечения автоматической синхронизации необходимо настроить фаервол.
-
После миграции артефактов:
-
Docker-образы доставляются напрямую в соответствующие им сервисы, расположенные в кластере Kubernetes.
-
Helm-чарты используют загруженные наборы данных для установки/обновления сервисов.
-
-
Сервис или его новая версия становится доступным конечным пользователям.
Сетевая инфраструктура
Программный комплекс 2ГИС спроектирован так, что подавляющая часть сервисов и инфраструктуры может быть установлена в изолированной локальной сети с ограниченным или отсутствующим доступом к интернету.
Доступ к интернету используют только два компонента:
-
прокси для API пробок. Размещается в приватной сети, но для работы необходимо настроить файервол или балансировщик нагрузки так, чтобы сервис имел доступ в интернет.
Хранилища данных для сервисов
Для работы некоторых сервисов нужно установить в приватной сети хранилище данных: S3-совместимое хранилище или кластер баз данных. В таблице ниже указано, какие хранилища необходимы для каждого сервиса. См. системные требования к ПО хранилищ.
Можно устанавливать хранилища с помощью пакетных менеджеров или в Docker-контейнере.
Сервис | Хранилище данных |
---|---|
Сервис API-ключей |
|
API карт (Tiles API) | Apache Cassandra |
API карт (Styles API) |
|
API поиска (Catalog APIs) | PostgreSQL с включенным PL/pgSQL и расширениями JsQuery и PostGIS |
API навигации (Distance Matrix Async API) |
|
API навигации (Restrictions API) | PostgreSQL с включенным PL/pgSQL |
Сервис аутентификации | PostgreSQL |
2ГИС Про (Pro API) |
|
CityLens |
|
GIS-платформа |
|