Skip to main content

Architecture

Annolive On-premise deployment architecture

Above shown is the architecture diagram for annolive on-premise deployment. Annolive utilizes a microservices architecture with several containerized services to ensure scalability and modularity.

User Interaction:

  • Frontend Access: The Annolive user interface can be accessed locally at localhost:8558 on the host server once deployed. For users within the same network, the UI is accessible via http://IP address of host server:8558.
  • API Access: The Annolive API server is available for interaction on TCP port 8559.

Services:

  • Annolive API Server: This service manages the backend logic of the application, processing API requests from the UI server and other clients. It is built using the Django Rest Framework.
  • Annolive Model Server: This service hosts and serves AI models that power the Auto Annotation features. Note: The system can also interact with the OpenAI server for LLM-based auto annotation when this feature is enabled. By default, it is disabled, and an OpenAI API key must be added to activate this functionality. If you are using your own custom model hosted on your server for auto annotation, the system will NOT be interacting with any external server
  • Annolive UI server: This service manages the frontend of the application, delivering the user interface to the end-user.
  • Nginx: This service acts as a reverse proxy, directing incoming traffic to the appropriate backend services. Clients connect to Nginx via TCP port 8559, which then routes requests accordingly.
  • Annolive Worker: This service is tasked with executing background jobs, such as data processing, sending emails, and other asynchronous tasks. It used celery for task management.
  • Rabbit MQ: RabbitMQ serves as a message broker, facilitating asynchronous communication between system components. It queues tasks and assigns them to workers like the Annolive Worker for processing.
  • Postgres: PostgreSQL is the relational database used within Annolive to store and manage structured application data.

Storages:

Annolive manages various types of data, including media, static files, database files, and other essential data, all of which are stored on the host storage.
Default storage locations are given below:

  • Media: /opt/annolive/storage/media
  • Static files: /opt/annolive/storage/static
  • Other data: /opt/annolive/
  • Database data: /opt/annolive/postgresql
  • RabbitMQ data: /opt/annolive/rabbitmq