Architecture | On-Premise | 2GIS Documentation

Architecture

On-Premise solution contains multiple services. Each version of the solution is a set of services linked to this version.

To be able to work, the services require a previously prepared infrastructure.

On-Premise architecture
  1. DGCLI downloads installation artifacts from public 2GIS update servers. The installation artifacts include:

    • sets of data required for installing or updating services;

    • Docker images of services.

  2. DGCLI places the data sets into an S3-compatible storage (File/Object Storage on the diagram), and the Docker images into a Docker registry(Docker Registry on the diagram). Both repositories are located in the public network.

  3. Then, the installation artifacts are migrated from the public network to the private one, i.e. the synchronization of the contents of data storages with their mirrors takes place.

    To ensure automatic synchronization, you need to configure the firewall.

  4. After the migration of artifacts:

    • Docker images are delivered directly to their corresponding services located in the Kubernetes cluster.

    • Helm charts use the downloaded data sets for installing/updating services.

  5. The service or its new version becomes available to end users.

On-Premise is designed in such a way that most of the services and infrastructure can be installed in an isolated local network with limited or no internet access.

Only two components use internet access:

  • the DGCLI utility in the license or pull modes;

  • the Traffic API Proxy. This service is hosted in a private network, but a firewall or a load balancer needs to be configured to allow the Traffic API Proxy to have internet access.

The term "data storage" refers to a DB cluster or S3-compatible storage. Each service's documentation specifies which combination of data storages is required for its proper operation. The System Requirements document describes how to determine the required amount of resources. You may familiarize yourself with the specifics of deploying storages in their official documentation:

Data storage Documentation link
S3 https://aws.amazon.com/ru/s3/
PostgreSQL https://www.postgresql.org/docs/
Cassandra https://cassandra.apache.org/doc/latest/
Elastic Search https://www.elastic.co/guide/index.html
Redis https://redis.io/docs/getting-started/