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.
How the solution works
-
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.
-
-
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.
-
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.
-
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.
-
-
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 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.
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.
Service | Required data storage |
---|---|
API Keys service |
|
Maps API (Tiles API) | Apache Cassandra |
Maps API (Styles API) |
|
Search API (Catalog APIs) | PostgreSQL with enabled PL/pgSQL, the JsQuery and the PostGIS extensions |
Navigation API (Distance Matrix Async API) |
|
Navigation API (Restrictions API) | PostgreSQL with enabled PL/pgSQL |
Authentication service | PostgreSQL |
Urbi Pro (Pro API) |
|
CityLens |
|
GIS Platform |
|