Infrastructure ============== The recommended basic installation of Movens can be set up on a Kubernetes cluster; appropriate manifests and guides are provided for it (see :doc:`/quickstart` and :doc:`/in-depth` 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 :doc:`configuration`. Pod service linking is configured in the Kubernetes manifest, as the number of replicas that can be maintained by the availability system.