1
resposta

[Dúvida] Ajuda com arquitetura de sistema

Bom dia prezados. Gostaria de uma ajuda com um direcionamento sobre arquitetura de aplicação. Desenvolvi uma aplicação monolitica que está fazendo a rotina normal. Porém, todas as informações ficavam locais nas maquinas que elas estavam sendo executadas. Para solucionar a questão eu criei um espelho do banco sqlite com um container docker com o postgres, deixei uma sincronização de bancos e criei uma api que consome informações do postgres, e alimenta o frontend web.

Gostaria de pedir um auxilio sobre essa arquitetura. Esse modelo é usado e seguro para um cenario de produção? Ainda vou implementar o https para a transferência mas se alguém tiver alguma coisa a considerar para segurança.

Obrigada desde já. Abraços.

1 resposta

Olá, Rayra!

Obrigada por compartilhar sua dúvida conosco. Vamos lá!

A transição de uma aplicação monolítica para uma arquitetura que utiliza containers e APIs é um passo significativo e pode trazer muitos benefícios, como escalabilidade e facilidade de manutenção. No entanto, há alguns pontos que você deve considerar para garantir que sua arquitetura seja adequada para um ambiente de produção.

  1. Sincronização de Dados: A sincronização entre o SQLite e o PostgreSQL é um ponto crítico. Certifique-se de que a sincronização é robusta e que não há perda de dados ou inconsistências. Ferramentas de replicação ou scripts bem testados podem ajudar.

  2. Segurança da API: Implementar HTTPS é um passo essencial para garantir a segurança na transferência de dados. Além disso, considere autenticação e autorização adequadas para sua API. JWT (JSON Web Tokens) é uma opção popular para autenticação.

  3. Gerenciamento de Containers: Usar Docker é uma ótima escolha, mas em produção, é importante gerenciar os containers de forma eficiente. Ferramentas como Kubernetes podem ajudar a orquestrar e escalar seus containers.

  4. Monitoramento e Logs: Implementar um sistema de monitoramento e logging é crucial para identificar problemas rapidamente e manter a saúde da aplicação. Ferramentas como Prometheus para monitoramento e ELK Stack para logs são bastante utilizadas.

  5. Backup e Recuperação de Dados: Tenha um plano de backup e recuperação para o banco de dados PostgreSQL. Isso é vital para proteger seus dados contra falhas ou perda.

  6. Teste de Carga: Antes de mover para produção, realize testes de carga para garantir que sua arquitetura pode suportar o tráfego esperado.

Essas são algumas considerações gerais que podem ajudar a tornar sua arquitetura mais robusta e segura. Lembre-se de que cada aplicação tem suas particularidades, então adapte essas sugestões conforme necessário.

Bons estudos!