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.