Architecture | Urbi On-Prem | 2GIS Documentation

Architecture

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

On-Premise architecture

Helm charts used for services installation install only the services themselves. To be able to work, the services require a previously prepared infrastructure.

The infrastructure must include:

  • A Kubernetes cluster with an Ingress controller

    Most of the services need to be placed behind a load balancer. During installation from the Helm charts, an Ingress resource is created for services that require it. You can use the Ingress controller of your choice to implement Ingress load balancing in your Kubernetes cluster.

  • An infrastructure for installing and updating services

    The following is used for installing and updating services:

    • The DGCLI application for fetching the latest installation artifacts: Docker images and datasets.
    • Installation artifacts storage. It can be any S3-compatible storage. Support for other types of storage is in development.
    • Docker Registry for storing the Docker images.

    Installation artifacts include all necessary images and datasets for installing the services. Since the datasets, as well as the Docker images, are being updated constantly, it is recommended to fetch new versions regularly and update the installed services.

    See more in Artifacts lifecycle.

  • Network infrastructure

    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 pull mode.

      This utility and the infrastructure required for it (see above) is usually deployed in the public network that has network access.

      It is necessary to set up migration of installation artifacts from the public network to the private network, so that the services in the private network can use them.

      See more in Artifacts lifecycle.

    • Traffic API Proxy.

      Traffic API Proxy is deployed in the private network.

      For this service to work, it is also necessary to set up the infrastructure in the private network (e.g., a firewall or a load balancer) so that the proxy has the internet access.

  • Data storages for services

    Various services use various combinations of data storages. A data storage is some kind of a database cluster or an S3-compatible storage.

    When installing or updating a service, the data required for it is copied from the installation artifacts storage into the service data storage.

    The documentation of each service specifies which data storages it requires.

    The requirements of the services themselves are specified in the System requirements section.