Skip to main content

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

How the solution works

  1. DGCLI downloads installation artifacts from public Urbi 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.

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 license or pull modes.
  • The Traffic API Proxy. The 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.

Data storage for services

Some services require the installation of additional data storage on the private network, e.g., S3 compatible storage or a database cluster. The table below shows which storage is required for each service. See system requirements for data storage software.

You can install data storage via package managers or deploy it in a Docker container.

ServiceRequired data storage
License serviceS3 compatible storage (e.g., Ceph)
API Keys service
  • PostgreSQL
  • Redis
Maps API (Tiles API)Apache Cassandra
Maps API (Tilegen API)
  • S3 compatible storage (e.g., Ceph)
  • Redis
Maps API (Styles API)
  • S3 compatible storage (e.g., Ceph)
  • PostgreSQL
Search API (Catalog APIs)PostgreSQL with the enabled PL/pgSQL and the installed extensions JsQuery and PostGIS
Navigation API (Distance Matrix Async API, TSP API)
  • S3 compatible storage (e.g., Ceph)
  • PostgreSQL
  • Apache Kafka
Navigation API (Restrictions API)PostgreSQL with the enabled PL/pgSQL
Urbi Pro (Pro API)
  • S3 compatible storage (e.g., Ceph)
  • PostgreSQL
  • Apache Kafka
  • Redis
  • Elasticsearch
CityLens
  • S3 compatible storage (e.g., Ceph)
  • PostgreSQL with the installed PostGIS extension
  • Apache Kafka
GIS Platform
  • S3 compatible storage (e.g., Ceph)
  • PostgreSQL with the installed PostGIS extension