LogoLogo
To the Oz WebsiteOz API ReferenceContact Us
  • General
    • Oz Liveness and Biometry Key Concepts
      • Solution Architecture
      • Liveness, Face Matching, Black List Checks
      • Passive and Active Liveness
      • Oz API Key Concepts
      • Oz API vs. Oz API Lite
      • SaaS, On-premise, On-device: What to Choose
      • Oz Licensing Options
    • Integration Quick Start Guides
      • Server-Based Liveness
        • How to Integrate Server-Based Liveness into Your Web Application
        • How to Integrate Server-Based Liveness into Your Mobile Application
        • How to Check Your Media for Liveness without Oz Front End
      • On-Device Liveness
        • How to Integrate On-Device Liveness into Your Mobile Application
      • Face Matching
        • How to Add Face Matching of Liveness Video with a Reference Photo From Your Database
        • How to Add Photo ID Capture and Face Matching to Your Web or Mobile Application
  • Guides
    • Developer Guide
      • API
        • Oz API
          • Basic Scenarios
            • Liveness
              • Best Shot
            • Biometry (Face Matching)
            • Blacklist (O2N) Check
              • Blacklist (Collection) Management in Oz API
          • Single Request
          • Instant API: Non-Persistent Mode
          • Authentication and Non-Instant Data Handling
            • Authentication
            • Uploading Media
            • Quantitative Results
            • Using a Webhook to Get Results
          • System Objects
          • User Roles
          • Types of Analyses and What They Check
          • Rules of Assigning Analyses
          • Statuses in API
          • Media Tags
          • Metadata
          • API Error Codes
          • Oz API Postman Collections
          • Changelog
        • Oz API Lite
          • API Lite Methods
          • Oz API Lite Postman Collection
          • Changelog
      • SDK
        • Oz Mobile SDK (iOS, Android, Flutter)
          • Android
            • Getting a License for Android SDK
              • Master License for Android
            • Adding SDK to a Project
            • Connecting SDK to API
            • Capturing Videos
            • Checking Liveness and Face Biometry
            • Customizing Android SDK
              • How to Restore the Previous Design after an Update
            • Android Localization: Adding a Custom or Updating an Existing Language Pack
            • Android SDK Methods and Properties
            • Changelog
          • iOS
            • Getting a License for iOS SDK
              • Master License for iOS
            • Adding SDK to a Client’s Mobile App
            • Connecting SDK to API
            • Capturing Videos
            • Checking Liveness and Face Biometry
            • Customizing iOS SDK Interface
              • How to Restore the Previous Design after an Update
            • iOS Localization: Adding a Custom or Updating an Existing Language Pack
            • iOS SDK Methods and Properties
            • Changelog
          • Flutter
            • How to Install and Use Oz Flutter Plugin
            • Flutter SDK Methods and Properties
            • Changelog
        • Oz Liveness Web SDK
          • Web Plugin
            • Adding the Plugin to Your Web Page
            • Launching the Plugin
              • Description of the on_complete Callback
              • Description of the on_result Callback
              • Capturing Video and Description of the on_capture_complete Callback
              • Description of the on_error Callback
            • Closing or Hiding the Plugin
            • Localization: Adding a Custom Language Pack
            • Look-and-Feel Customization
              • Customization Options for Older Versions (before 1.0.1)
            • Security Recommendations
            • Browser Compatibility
            • No-Server Licensing
          • Changelog
    • Administrator Guide
      • Deployment Architecture
      • Installation in Docker
      • Installation in Kubernetes
      • Performance and Scalability Guide
      • Publishing API Methods in the Internet: Security Recommendations
      • Monitoring
      • License Server
      • Web Adapter Configuration
        • Installation and Licensing
        • Configuration File Settings
        • Configuration Using Environment Variables
        • Server Configuration via Environment Variables
      • Oz API Configuration
    • User Guide
      • Oz Web UI
        • Requesting Analyses
        • Users and Companies
        • Blacklist
        • Statistics
        • Settings
        • Changelog
  • Other
    • Media Quality Requirements
    • Oz SDK Media Quality Checks
    • Media File Size Overview
    • Compatibility
    • FAQ
    • Hybrid Liveness
    • Tips and Tricks
      • Oz Liveness Gestures: Table of Correspondence
      • Sudo without Password
      • Android: Certificate Validation Error
    • Previous Documentation
      • Mobile SDK
        • Android
          • Interactions with the Oz API Server
          • Uploading and Analyzing Media
        • iOS
          • Uploading and Analyzing Media
      • User Guides
        • Oz Demo Kit
        • Web UI
      • Oz Modules Installation
        • Standalone Installer
        • Oz System Lite
Powered by GitBook
On this page
  • Terms and Definitions
  • Components' Description
  • Deployment Scenarios
  • Small business or PoC
  • Medium Load
  • High Load

Was this helpful?

Export as PDF
  1. Guides
  2. Administrator Guide

Deployment Architecture

PreviousAdministrator GuideNextInstallation in Docker

Last updated 4 months ago

Was this helpful?

Terms and Definitions

Term
Description

APM

Analyses per minute. Please note:

  • Analysis is a request for Quality (Liveness) or Biometry analysis using a single media.

  • A single analysis with multiple media counts as separate analyses in terms of APM.

  • Multiple analysis types on single media (two media for Biometry) count as separate analyses in terms of APM.

PoC

Proof of Concept

Node

A Node is a worker machine. Can be either a virtual or a physical machine.

HA

High availability

K8s

Kubernetes

SC

StorageClass

RWX

ReadWriteMany

Components' Description

Oz API components:

  • APP is the API front app that receives REST requests, performs preprocessing, and creates tasks for other API components.

  • Celery is the asynchronous task queue. API has the following celery queues:

    • Celery-default processes system-wide tasks.

    • Celery-maintenance processes maintenance tasks.

    • Celery-tfss processes analysis tasks.

    • Celery-resolution checks for completion of all nested analyses within a folder and changes folder status.

    • Celery-preview_convert creates a video preview for media.

    • Celery-beat is a CronJob for managing maintenance celery tasks.

    • Celery-Flower is a Celery metrics collector.

    • Celery-regula (optional) processes document analysis tasks.

  • Redis is a message broker and result backend for Celery.

  • RabbitMQ (optional) can be used as a message broker for Celery instead of Redis.

  • Nginx serves static media files for external HTTP(s) requests.

  • O2N (optional) processes the Blacklist analysis.

  • Statistic (optional) provides ' collection for Web UI.

  • Web UI provides the .

BIO-Updater checks for models updates and downloads new models.

Oz BIO (TFSS) runs TensorFlow with AI models and makes decisions for incoming media.

The BIO-Updater and BIO components require access to the following external resources:

Deployment Scenarios

The deployment scenario depends on the workload you expect.

Small Business or PoC
Medium Load
High

Use cases

  • Testing/Development purposes

  • Small installations with low number of APM

  • Typical usage with moderate load

  • High load with HA and autoscaling

  • Usage with cloud provider

  • ~ APM

  • ~ analyses per month

  • ~ APM

  • analyses per month

  • APM

  • analyses per month

Environment

Docker

Docker

Kubernetes

HA

No

Partially

Yes

Pros

  • Requires a minimal amount of computing resources

  • Low complexity, so no high-qualified engineers are needed on-site

  • Easy to manage and support

  • Partially supports HA

  • Can be scaled up to support higher workload

  • HA and autoscaling

  • Observability and manageability

  • Allows high workload and can be scaled up

Cons

  • Suitable only for low loads, no high APM

  • No scaling and high-availability

  • API HA requires precise balancing

  • Higher staff qualification requirements

  • High staff qualification requirements

  • Additional infrastructure requirements

External resource requirements

  • PostgreSQL

  • For Kubernetes deployments:

    • K8s v1.25+

    • ingress-nginx

    • clusterIssuer

    • kube-metrics

    • Prometheus

    • clusterAutoscaler

  • PostgreSQL

Autoscaling is implemented on the basis of ClusterAutoscaler and must be supported by your infrastructure.

Small business or PoC

  • Type of containerization: Docker,

  • Type of installation: Docker compose,

  • Autoscaling/HA: none.

Requirements

Software

  • Docker 19.03+,

  • Podman 4.4+,

  • Python 3.4+.

Storage

  • Depends on media quality, the type and number of analyses, and the required archive depth.

  • Each analysis request performs read and write operations on the storage. Any additional latency in these operations will impact the analysis time.

Staff qualification:

  • Basic knowledge of Linux and Docker.

Deployment

  1. Single node.

Resources:

  • 1 node,

  • 16 CPU/32 RAM.

  1. Two nodes.

Resources:

  • 2 nodes,

  • 16 CPU/32 RAM for the first node; 8 CPU/16 RAM for the second node.

Medium Load

  • Type of containerization: Docker/Podman,

  • Type of installation: Docker compose,

  • Autoscaling/HA: manual scaling; HA is partially supported.

Requirements

Computational resources

Depending on load, you can change the number of nodes. However, for 5+ nodes, we recommend that you proceed to the High Load section.

    • 2 Nodes:

      • 24 CPU/32 RAM per node.

    • 3 Nodes:

      • 16 CPU/24 RAM per node.

    • 4 Nodes:

      • 8 CPU/16 RAM for two nodes (each),

      • 16 CPU/24 RAM for two nodes (each).

We recommend using external self-managed PostgreSQL database and NFS share.

Software

  • Docker 19.03+,

  • Podman 4.4+,

  • Python 3.4+.

Storage

  • Depends on media quality, the type and number of analyses, and the required archive depth.

  • Each analysis request performs read and write operations on the storage. Any additional latency in these operations will impact the analysis time.

Staff qualification:

  • Advanced knowledge of Linux, Docker, and Postgres.

Deployment

2 nodes:

3 nodes:

4 nodes:

High Load

  • Type of containerization: Type of containerization: Docker containers with Kubernetes orchestration,

  • Type of installation: Helm charts,

  • Autoscaling/HA: supports autoscaling; HA for most components.

Requirements

Computational resources

3-4 nodes. Depending on load, you can change the number of nodes.

  • 16 CPU/32 RAM Nodes for the BIO pods,

  • 8+ CPU/16+ RAM Nodes for all other workload.

We recommend using external self-managed PostgreSQL database.

Requires RWX (ReadWriteMany) StorageClass or NFS share.

Software

  • Docker 19.03+,

  • Python 3.4+.

Storage

  • Depends on media quality, the type and number of analyses, and the required archive depth.

  • Each analysis request performs read and write operations on the storage. Any additional latency in these operations will impact the analysis time.

Staff qualification:

  • Advanced knowledge of Linux, Docker, Kubernetes, and Postgres.

Deployment Scheme

Please find the installation guide here: .

May be calculated as: [average media size] * 2 * [analyses per day] * [archive depth in days]. Please refer to for media size reference.

Please find the installation guide here: .

From 2 to 4 Docker nodes (see ):

May be calculated as: [average media size] * 2 * [analyses per day] * [archive depth in days]. Please refer to for media size reference.

Please find the installation guide here: .

May be calculated as: [average media size] * 2 * [analyses per day] * [archive depth in days]. Please refer to for media size reference.

statistics
web interface
https://api.cryptlex.com/
https://*.infra.ozforensics.ai/
https://*.s3.amazonaws.com/
Docker
this article
Docker
schemes
this article
Kubernetes
this article