General information#
It is recommended to read and understand this document. It will help you to find out what components LUNA PLATFORM consists of and what tasks they solve.
Deploy should be performed in the order specified in the document.
All the procedures in the following manual are described for CentOS. If it is required to deploy dockers on any other OS, please refer to the Docker Compose documentation for information:
https://docs.docker.com/compose/install/
A license file is required for LUNA PLATFORM activation. The file is provided by VisionLabs separately upon request.
All actions described in this manual must be performed by the root user. This document does not describe the creation of the user with administrator privileges and the following installation by this user.
Additional message queues and databases are required for LUNA PLATFORM 5. General information about the software is given in the document.
The following third-party services are used by default with LUNA PLATFORM 5.
- PostgreSQL is used as a default database for Faces, Configurator, Events, Handlers, Tasks, Admin, and Backport3 services.
You can also use the Oracle database instead of PostgreSQL for all services except the Events service.
-
The Redis DB is used for Faces and Sender services;
-
InfluxDB is used for monitoring.
The following DB versions are recommended for LP utilization:
- PostgreSQL: 12.2
- Oracle: 11.2
The installation and configuration of Oracle are not described in this manual.
Balancers and other software can be used when scaling the system to provide fail-safety. Their configuration is not described in this document.
All the services can be divided into general and optional. You can't launch and use LP without general services, whereas optional services provide extra features and are not mandatory. Most of the services have their database or file storage.
General services
Service | Description | Database |
---|---|---|
API | The main gateway to LP. Receives requests, distributes tasks to other LP services | |
Handlers | Detects faces in images, extracts face properties and creates samples. Extracts descriptors from samples. Extracts basic attributes of the images. Creates and stores handlers | PostgreSQL/ Oracle |
Python Matcher | Performs matching tasks | |
Faces | Creates faces, lists, and attributes. Stores these objects in the database. Allows other services to receive the required data from the database | PostgreSQL/ Oracle, Redis |
Image Store | Stores samples, reports about long tasks execution, created clusters and additional metadata | Local storage/ Amazon S3 |
Events | Stores data on the generated events in the database. This service can be disabled, but it is recommended to use it, if you are going to save events | PostgreSQL |
Licenses | Checks your license conditions and returns information about them | |
Admin | Enables to perform general administrative routines | PostgreSQL/ Oracle |
Configurator | Stores all configurations of all the services in a single place | PostgreSQL/ Oracle |
Tasks | Performs long tasks, such as garbage collection, extraction of descriptors with a new neural network version, clustering | PostgreSQL/ Oracle |
Tasks Worker | Performs the internal work of the Tasks service | PostgreSQL/ Oracle |
Optional services
Service | Description | Database |
---|---|---|
Sender | Sends notifications about created events via web-socket. | Redis |
Liveness | The service is used for Liveness V1 utilization. It enables LP to detect presentation attacks. This service requires an additional license. | |
Backport 3 | The service is used to process LUNA PLATFORM 3 requests using LUNA PLATFORM 5. | PostgreSQL/ Oracle |
Backport 4 | The service is used to process LUNA PLATFORM 4 requests using LUNA PLATFORM 5. | |
User Interface 3 | User Interface is used to visually represent the features provided with the Backport 3 service. It does not include all the functionality available in LP 3. | |
User Interface 4 | User Interface is used to visually represent the features provided with the Backport 4 service. It does not include all the functionality available in LP 4. |
Services for index building and search by index
Service | Description | Database |
---|---|---|
Index Manager | Forms tasks for index building and coordinates the process of index delivery to Indexed Matcher servers. | PostgreSQL |
Indexer | Creates indexes based on a descriptors' list. | |
Indexed Matcher | Searches by indexes. | |
Matcher Daemon | Copies the index from the server, on which Indexer is installed, to the server for search by an index (Indexed Matcher). Restarts Indexed Matcher with a new index generation. Matcher Daemon is installed on the Indexed Matcher server. | |
Message queue | A message queue is used for interaction with index services. by default, RabbitMQ is used. | |
Python Matcher Proxy | The service manages matching requests and routes them to Python Matcher or Indexed Matcher. |
Launching sequence#
The sequence for the launching of LP services must be as follows:
- Databases, Message Queues, Balancers, HASP service and other third-party party software
- Configurator
- Image Store
- Licenses
- Faces
- Events (optional)
- Python Matcher
- Indexed Matcher
- Indexer
- Index Manager
- Python Matcher Proxy
- Handlers
- Tasks (optional)
- Sender (optional)
- Liveness V1 (optional). The service is disabled by default.
- API
- Admin (optional)
The following service are used when emulation of LUNA PLATFORM 3 is required only:
- Backport 3 (optional).
- User Interface 3 (optional)
The following service are used when emulation of LUNA PLATFORM 4 is required only:
- Backport 4 (optional)
- User Interface 4 (optional)
You should disable the optional services if you are not going to use them. It is recommended to use Events, Tasks, Sender and Admin services by default.
See the "Optional services usage" section for details.