Infrastructure

The recommended basic installation of Movens can be set up on a Kubernetes cluster; appropriate manifests and guides are provided for it (see Quickstart and In-depth set-up for more).

The typical set up requires:

  • A REDIS instance, for a basic message-passing ring

  • A PostgreSQL + Lucene pair for each module (core, business, etc.)

  • A MongoDb instance shared between each module (core, business, etc.)

  • The pods for the functions of the module

    • Usually at least the Agent

    • And Tasks, if required, included as Kubernetes Cron Jobs

    • Then any public-facing API, such as Admin, Mobile, Statistics

  • Pods for the web interfaces

  • An S3-compatible storage for documents/photos; globally referred to as “attachments”

When you start a basic Movens installation from the example manifests, the pods are:

Name

Function

movens-redis

Redis instance for communication ring

movens-mongodb

Shared MongoDB instance

movens-alarm-psql

Alarm Centre PostgreSQL instance

movens-alarm-lucene

Alarm Centre Lucene.NET indexing DB companion

movens-alarm-admin

Alarm Centre Admin API host

movens-alarm-agent

Alarm Centre communicatio ring responder and automations

movens-server-psql

Core PostgreSQL instance

movens-server-lucene

Core Lucene.NET indexing DB companion

movens-server-admin

Core Admin API host

movens-server-agent

Core communication ring responder and automations

movens-server-communicator

Core message (e-mail, sms, push notification) sender

movens-server-mobile

Core Mobile API host

movens-server-statistics

Core Statistics API host

moveins-server-webhooks

Core API for external providers callbacks

movens-vehicle-psql

Vehicle PostgreSQL instance

movens-vehicle-lucene

Vehicle Lucene.NET indexing DB companion

movens-vehicle-admin

Vehicle Admin API host

movens-vehicle-agent

Vehicle communication ring responder and automations

movens-vehicle-mobile

Vehicle Mobile API host

movens-vehicle-statistics

Vehicle Statistics API host

movens-vehicle-webhooks

Vehicle API for on board device provider callbacks

movens-business-psql

Business PostgreSQL instance

movens-business-lucene

Business Lucene.NET indexing DB companion

movens-business-admin

Busines Admin API host

movens-business-agent

Business communication ring responder and automations

movens-business-mobile

Business Mobile API host

movens-business-payments

Business API for payment broker callbacks

movens-business-statistics

Business Statistics API host

movens-webgui-admin

NGINX hosting Admin WebGUI

movens-webgui-controlroom

NGINX hosting ControlRoom WebGUI

movens-testing-s3

MINIO S3 instance

It is easily possible to move the PostgreSQL instances to machines outside the cluster, if desired, by tweaking the connection string.

It is also advisable to use an actual S3-compatible storage when planned attachment size goes above a few gigabytes.

In the basic Movens installation you will also find some cronjobs:

Name

Function

movens-anonymizer

Core task for anonymizing sensible data for deleted users

movens-cleaner

Core task for deleting unneeded old data

movens-refresh-tr-daily

Core task for sending on the ring daily updates on future reservations

movens-refresh-tr-near

Core task for sending on the ring updates on reservations starting the current day

movens-session-revoker

Core task for setting as logged out expired sessions

movens-unconfirmed-remover

Core task for deleting unconfirmed users

movens-ma-notifier

Core task to notify to the end users their ongoing reservation is expired

movens-license-notifier

Core task to notify to the end users when their license document is expired

movens-trip-notifier

Core task to notify to the end users their nex trip is approaching the allowed start time

movens-vehicle-anonymizer

Vehicle task for anonymizing sensible data for closed trips

movens-vehicle-cleaner

Vehicle task for deleting unneeded old data

movens-vehicle-fact-extractor

Vehicle task to populate Fact table

movens-vehicle-alarm-triggerer

Vehicle task to trigger some alarms

movens-vehicle-device-reset

Vehicle task to periodically reset devices, based on their driver setting

movens-business-cleaner

Business task for deleting unneeded old data

movens-business-payments

Business task for executing recurrent payments

movens-business-payments-checker

Business task for checking pending payments and try to execute them

movens-business-wallet-emptier

Business task for emptying wallet balances due to inactivity or platform closing date

movens-alarm-cleaner

Alarm Centre task for deleting unneeded old data

movens-alarm-historicization

Alarm Centre task to move alarms open for too long in history table, and delete old historicized data

Configuration

Movens configuration is handled as environment variables, so when using the Kubernetes setup the best place to store the entries is a config map.

To see all available configuration values, see Server Configuration.

Pod service linking is configured in the Kubernetes manifest, as the number of replicas that can be maintained by the availability system.