Arquitetura da Digibee Integration Platform no modelo Saas dedicado

Saiba mais sobre a arquitetura da plataforma para clientes SaaS dedicado

A Digibee Integration Platform é executada em um cluster Kubernetes gerenciado pelos principais provedores de nuvem, como Google, AWS e Azure. Esta documentação de arquitetura visa descrever os principais componentes e objetivos da plataforma, incluindo, entre outros, alta disponibilidade, escalabilidade e criação de logs.

Alta disponibilidade

A plataforma de integração Digibee é projetada para garantir alta disponibilidade usando zonas de disponibilidade. As zonas de disponibilidade são locais fisicamente separados dentro do data center de um provedor de nuvem que fornece energia, resfriamento e rede independentes.

Ao usar zonas de disponibilidade, a Digibee Integration Platform garante que o cluster permaneça disponível mesmo no caso de falha de uma única zona. Isso é obtido distribuindo os recursos do cluster em várias zonas de disponibilidade e usando balanceadores de carga para distribuir o tráfego e estratégias de posicionamento para distribuir recursos.

Em caso de falha zonal, a Digibee implementa um failover automático em todos os seus aplicativos, garantindo que a Digibee Integration Platform permaneça disponível para os usuários. Essa estratégia de disponibilidade garante que os recursos sejam usados ​​com eficiência ao escalar para um alto volume.

Diferentes provedores de nuvem podem tratar as zonas de disponibilidade de maneira diferente.

Escalabilidade

A Digibee Integration Platform foi projetada para ser escalável, permitindo lidar com um número crescente de usuários e solicitações. Isso é obtido por meio do uso do Kubernetes e da separação de componentes e aplicativos básicos.

Componentes básicos

Os componentes básicos da Digibee Integration Platform, como o cluster Kubernetes, são projetados para serem escalonáveis ​​horizontalmente. Isso significa que mais recursos podem ser adicionados a esses componentes conforme necessário para lidar com o aumento do tráfego.

Os nós do Kubernetes (máquinas virtuais que compõem o cluster) podem ser dimensionados com base em diferentes critérios. Um método comum de dimensionamento é por meio do uso de um dimensionador automático como, por exemplo, um autoescalador.

Um autoescalador é um controlador do Kubernetes que aumenta ou diminui automaticamente o número de nós em um cluster com base em regras e limites predefinidos. O dimensionador automático pode ser configurado para usar métricas diferentes, como memória, rede e outras métricas personalizadas para acionar o dimensionamento do cluster.

Essa abordagem permite que a plataforma seja altamente disponível e responsiva aos usuários, ao mesmo tempo em que minimiza os custos usando apenas os recursos necessários para lidar com o tráfego atual.

Aplicativos

Os aplicativos executados na Digibee Integration Platform também são projetados para serem escalonáveis ​​horizontalmente. O Kubernetes é usado para ativar automaticamente novas instâncias de um aplicativo conforme necessário para lidar com o aumento do tráfego. Isso é obtido por meio do uso de um recurso chamado Horizontal Pod Autoscaler (HPA).

HPA é um controlador do Kubernetes que aumenta ou diminui automaticamente o número de réplicas (instâncias) de um pod (um grupo de um ou mais contêineres) com base em regras e limites predefinidos. O controlador HPA monitora continuamente métricas como CPU e uso de memória do pod e, com base nas regras definidas, aumentará ou diminuirá o número de réplicas.

Isso permite que a plataforma ajuste automaticamente seus recursos para atender às demandas dos aplicativos executados nela. Em situações de alto tráfego, o HPA aumentará o número de réplicas para lidar com a carga adicional. Isso garante que o aplicativo permaneça responsivo aos usuários, mesmo durante períodos de alto tráfego.

Logging

A Digibee Integration Platform inclui um sistema de registro centralizado que permite a coleta e análise de registros de todos os componentes da plataforma. Isso permite fácil depuração e solução de problemas. O sistema de registro fornece informações valiosas sobre o desempenho e o comportamento da plataforma, permitindo a rápida identificação e resolução de quaisquer problemas. Os registros são divididos em duas categorias principais: logs de plataforma e logs de pipeline. Os logs da plataforma referem-se aos logs gerados pela infraestrutura que mantemos, como o Kubernetes e o banco de dados. Esses logs são usados ​​para fins de monitoramento e alarme, e usamos o Prometheus e o Datadog para esse fim.

  • O Prometheus é um sistema de monitoramento de código aberto e banco de dados de séries temporais que permite a coleta e análise de métricas de diferentes fontes.

  • O Datadog é uma plataforma de monitoramento e análise que permite visibilidade quase em tempo real do desempenho da plataforma.

Os logs do pipeline são armazenados no Elasticsearch, um mecanismo de pesquisa e análise que permite a indexação e consulta de grandes quantidades de dados. Esses logs fornecem uma visão simplificada e objetiva de cada transação e podem ser acessados ​​pela interface da plataforma.

O Elasticsearch não é acessível fora da infraestruturada Digibee Integration Platform.

Componentes da Digibee Integration Platform

O ecossistema Digibee Integration Platform é construído com uma variedade de componentes, incluindo componentes Off-the-shelf e Custom-built. Esses componentes trabalham juntos para fornecer uma experiência estável e responsiva para os usuários, além de serem facilmente personalizáveis ​​e adaptáveis ​​às necessidades de cada organização.

Os componentes a seguir são distribuídos entre namespaces para fornecer alta disponibilidade para a plataforma. Os namespaces são organizados para garantir que cada componente seja isolado e possa funcionar independentemente dos outros. Isso permite um fácil dimensionamento e manutenção da plataforma, bem como a capacidade de identificar e resolver rapidamente quaisquer problemas que possam surgir.

Componentes Off-the-shelf

  • Redis: armazenamento de estrutura de dados na memória usado como um cache. Ele armazena dados em um formato de valor-chave e é usado para acelerar a recuperação de dados.

  • Minion: servidor de armazenamento de objetos de código aberto usado para armazenar arquivos estáticos. Permite o armazenamento de grandes quantidades de dados e é facilmente escalável.

  • Kong: gateway de API de código aberto usado para gerenciar e proteger o tráfego da API. Ele fornece recursos como autenticação, limitação de taxa e monitoramento.

  • Postgres: sistema de gerenciamento de banco de dados relacional de código aberto usado por Kong e FusionAuth.

  • FusionAuth: autenticação de código aberto e plataforma de gerenciamento de usuários usada para lidar com a autenticação e autorização do usuário.

  • ElasticSearch: mecanismo de pesquisa e análise usado para indexar e consultar grandes quantidades de dados.

  • MongoDB: banco de dados orientado a documentos de código aberto usado para armazenar e recuperar dados de maneira flexível e escalável.

  • RabbitMQ: agente de mensagens de código aberto usado para enviar e receber mensagens entre diferentes componentes da plataforma.

Componentes custom-built

  • Triggers HTTP: componente personalizado que processa solicitações HTTP.

  • Triggers HTTP-File: componente personalizado que processa arquivos por meio de solicitações HTTP.

  • Trigger REST: componente personalizado que processa solicitações REST.

  • Triggers Email: componente personalizado que processa e-mails.

  • Trigger Scheduler: componente personalizado que processa tarefas agendadas usando cron.

  • Portal: UI personalizada para usuários.

  • Coordinator: back-end personalizado para APIs de administração.

  • Controller: é um back-end personalizado que controla e cria objetos no Kubernetes.

Sequência do processo de comunicação da Digibee Integration Platform

O diagrama a seguir fornece uma representação gráfica da sequência de operações e comunicações durante a instalação e atualização da Digibee Integration Platform.

Atualizado