Entenda a Arquitetura do SAPI
A arquitetura do SAPI é composta por duas plataformas principais: a antiga e a Core/DCG. Aqui está uma explicação detalhada da infraestrutura conforme o documento fornecido:
Plataforma Antiga - SOLO
- Script Local em Cada Máquina:
- Cada máquina possui um script que é executado a cada 5 minutos via cron.
- Esse script lê um arquivo JSON armazenado no S3, que contém a versão atual do sistema.
- Se a versão do JSON for diferente da versão instalada na máquina, o script baixa a nova versão, constrói o pacote e o coloca em produção.
Plataforma Core/DCG
Servidores de Produção:
- Existem vários servidores de produção, nomeados como:
production-sapi-us-east-1c-44-new-DCG
production-sapi-us-east-1c-59-new-DCG
production-sapi-us-east-1c-81-new
production-sapi-us-east-1c-52-new
- Cada um desses servidores está localizado em diferentes zonas de disponibilidade (AZs) para garantir redundância e disponibilidade.
- Existem vários servidores de produção, nomeados como:
Domínios e VPNs:
- O sistema utiliza domínios específicos para acesso e operação:
- Há VPNs configuradas para acesso seguro:
vpn.omniplat.internal
na zona Cvpn2.omniplat.internal
na zona E
Deployment e Versões:
- O processo de deploy e versão é gerenciado através de um arquivo JSON (
sapi-version.json
) armazenado emsapi-deploy
.
- O processo de deploy e versão é gerenciado através de um arquivo JSON (
Conexões com Clientes:
- A arquitetura inclui acesso à internet pública e um banco de dados de clientes.
- Há firewalls (FW) dos clientes para garantir a segurança das conexões.
- As VPNs são utilizadas para assegurar a comunicação segura entre os servidores e os sistemas dos clientes.
Considerações Gerais
- Automação e Atualizações: Tanto na plataforma antiga quanto na Core/DCG, há um forte uso de automação para garantir que as versões mais recentes do sistema sejam deployadas automaticamente.
- Segurança: O uso de VPNs e firewalls garante que os dados dos clientes e a comunicação entre os servidores sejam protegidos.
- Redundância e Disponibilidade: A distribuição dos servidores em várias zonas de disponibilidade aumenta a resiliência do sistema, assegurando que a aplicação continue operando mesmo em caso de falhas em uma das zonas.
Esta arquitetura permite uma operação robusta e segura, com processos automáticos de atualização e redundância para garantir alta disponibilidade e proteção dos dados.