For the complete documentation index, see llms.txt. This page is also available as Markdown.

Arquitetura de implantação

Termos e definições

Termo
Descrição

APM

Análises por minuto. Observe:

  • Análise é uma solicitação para análise de QUALITY (Liveness) ou BIOMETRY usando uma única mídia.

  • Uma única análise com várias mídias conta como análises separadas em termos de APM.

  • Vários tipos de análise em uma única mídia (duas mídias para BIOMETRY) contam como análises separadas em termos de APM.

PoC

Prova de Conceito

Um Nó é uma máquina de trabalho. Pode ser uma máquina virtual ou física.

HA

Alta disponibilidade

K8s

Kubernetes

SC

StorageClass

RWX

ReadWriteMany

Descrição dos componentes

Componentes do Oz API:

  • APP é o aplicativo frontal da API que recebe solicitações REST, executa o pré-processamento e cria tarefas para outros componentes da API.

  • Celery é a fila assíncrona de tarefas. A API tem as seguintes filas do celery (observe: paramos de oferecer suporte ao Celery na versão 6.5.0):

    • Celery-default processa tarefas de todo o sistema.

    • Celery-maintenance processa tarefas de manutenção.

    • Celery-tfss processa tarefas de análise.

    • Celery-resolution verifica a conclusão de todas as análises aninhadas dentro de uma pasta e altera o status da pasta.

    • Celery-preview_convert cria uma prévia de vídeo para a mídia.

    • Celery-beat é um CronJob para gerenciar tarefas de manutenção do celery.

    • Celery-Flower é um coletor de métricas do Celery.

    • Celery-regula (opcional) processa tarefas de análise de documentos.

  • Redis é um broker de mensagens e backend de resultados para o Celery.

  • RabbitMQ (opcional) pode ser usado como broker de mensagens para o Celery em vez do Redis.

  • nginx serve arquivos estáticos de mídia para solicitações externas HTTP(s).

  • 1:N (opcional) processa a análise de Blacklist.

  • Estatística (opcional) fornece estatísticas' coleção para o Web UI.

  • Web UI fornece a interface web.

BIO-Updater verifica atualizações dos modelos e baixa novos modelos.

Oz BIO (TFSS) executa o TensorFlow com modelos de IA e toma decisões para a mídia recebida.

Cenários de implantação

O cenário de implantação depende da carga de trabalho esperada.

Pequena empresa ou PoC
Carga média
Alta carga

Casos de uso

  • Para fins de teste/desenvolvimento

  • Pequenas instalações com baixo número de APM

  • Uso típico com carga moderada

  • Alta carga com HA e escalonamento automático

  • Uso com provedor de nuvem

Carga de trabalho esperada

  • ~6-8 APM

  • ~250 000 análises por mês

  • ~40-60 APM

  • 500 000 a 1 000 000 análises por mês

  • 60+ APM

  • 1 000 000+ análises por mês

Ambiente

Docker

Docker

Kubernetes

HA

Não

Parcialmente

Sim

Prós

  • Requer uma quantidade mínima de recursos computacionais

  • Baixa complexidade, portanto não são necessários engenheiros altamente qualificados no local

  • Fácil de gerenciar e oferecer suporte

  • Suporta HA parcialmente

  • Pode ser ampliado para suportar uma carga de trabalho maior

  • HA e escalonamento automático

  • Observabilidade e gerenciabilidade

  • Permite alta carga de trabalho e pode ser ampliado

Contras

  • Adequado apenas para cargas baixas, sem APM alto

  • Sem escalonamento e alta disponibilidade

  • A HA da API requer balanceamento preciso

  • Requisitos mais altos de qualificação da equipe

  • Requisitos elevados de qualificação da equipe

  • Requisitos adicionais de infraestrutura

Requisitos de recursos externos

PostgreSQL

  • PostgreSQL

  • Volume compartilhado (R/W)

  • Para implantações em Kubernetes:

    • K8s v1.25+

    • ingress-nginx

    • clusterIssuer

    • kube-metrics

    • Prometheus

    • clusterAutoscaler

  • PostgreSQL

  • Volume compartilhado (R/W)

  • Redis

O escalonamento automático é implementado com base no ClusterAutoscaler e deve ser suportado pela sua infraestrutura.

Pequena empresa ou PoC

Consulte o guia de instalação aqui: Docker.

  • Tipo de containerização: Docker,

  • Tipo de instalação: Docker Compose,

  • Escalonamento automático/HA: nenhum.

Requisitos

Software

  • Docker 19.03+,

  • Podman 4.4+ (apenas para a API 5),

  • Python 3.4+.

Armazenamento

  • Depende da qualidade da mídia, do tipo e do número de análises e da profundidade de arquivamento necessária.

  • Pode ser calculado como: [average media size] * 2 * [analyses per day] * [archive depth in days]. Consulte este artigo a referência de tamanho da mídia.

  • Cada solicitação de análise executa operações de leitura e gravação no armazenamento. Qualquer latência adicional nessas operações impactará o tempo de análise.

Qualificação da equipe

  • Conhecimento básico de Linux e Docker.

Implantação

Dois nós:

Recursos:

  • 2 nós,

  • 16 CPU/32 RAM para o primeiro nó; 8 CPU/16 RAM para o segundo nó.

Carga média

Consulte o guia de instalação aqui: Docker.

  • Tipo de containerização: Docker (Podman é suportado apenas para a API 5),

  • Tipo de instalação: Docker Compose,

  • Escalonamento automático/HA: escalonamento manual; HA é parcialmente suportada.

Requisitos

Recursos computacionais

Dependendo da carga, você pode alterar o número de nós. No entanto, para 5+ nós, recomendamos que prossiga para a seção de Alta carga.

  • De 2 a 4 nós Docker (consulte esquemas):

    • 2 nós:

      • 24 CPU/32 RAM por nó.

    • 3 nós:

      • 16 CPU/24 RAM por nó.

    • 4 nós:

      • 8 CPU/16 RAM para dois nós (cada),

      • 16 CPU/24 RAM para dois nós (cada).

Recomendamos usar um banco de dados PostgreSQL externo autogerenciado e um compartilhamento NFS.

Software

  • Docker 19.03+,

  • Podman 4.4+ (apenas para a API 5),

  • Python 3.4+.

Armazenamento

  • Depende da qualidade da mídia, do tipo e do número de análises e da profundidade de arquivamento necessária.

  • Pode ser calculado como: [average media size] * 2 * [analyses per day] * [archive depth in days]. Consulte este artigo a referência de tamanho da mídia.

  • Cada solicitação de análise executa operações de leitura e gravação no armazenamento. Qualquer latência adicional nessas operações impactará o tempo de análise.

Qualificação da equipe:

  • Conhecimento avançado de Linux, Docker e Postgres.

Implantação

Dois nós:

Três nós:

Quatro nós:

Alta carga

Consulte o guia de instalação aqui: Kubernetes.

  • Tipo de containerização: contêineres Docker com orquestração Kubernetes,

  • Tipo de instalação: gráficos Helm,

  • Escalonamento automático/HA: oferece suporte ao escalonamento automático; HA para a maioria dos componentes.

Requisitos

Recursos computacionais

3-4 nós. Dependendo da carga, você pode alterar o número de nós.

  • Nós de 16 CPU/32 RAM para os pods de BIO,

  • Nós de 8+ CPU/16+ RAM para toda a outra carga de trabalho.

Recomendamos usar um banco de dados PostgreSQL externo autogerenciado.

Software

  • Docker 19.03+,

  • Python 3.4+.

Armazenamento

  • Depende da qualidade da mídia, do tipo e do número de análises e da profundidade de arquivamento necessária.

  • Pode ser calculado como: [average media size] * 2 * [analyses per day] * [archive depth in days]. Consulte este artigo a referência de tamanho da mídia.

  • Cada solicitação de análise executa operações de leitura e gravação no armazenamento. Qualquer latência adicional nessas operações impactará o tempo de análise.

Qualificação da equipe:

  • Conhecimento avançado de Linux, Docker, Kubernetes e Postgres.

Esquema de implantação

Atualizado

Isto foi útil?