Teste da Arquitetura
Elaborar testes para a arquitetura proposta é essencial para garantir que o sistema atenda aos requisitos do projeto e funcione corretamente. A seguir, são apresentados os testes a serem realizados para validar a arquitetura proposta.
Testes Manuais
Teste de Conexão MQTT
Objetivo: Verificar se o cliente MQTT consegue publicar mensagens nos tópicos corretos e se o broker MQTT encaminha corretamente as mensagens para o AWS IoT Core.
Passos:
- Configurar um cliente MQTT para publicar mensagens nos tópicos especificados.
- Verificar se as mensagens são recebidas pelo broker MQTT.
- Verificar se as mensagens são encaminhadas corretamente para o AWS IoT Core.
Ferramentas: Cliente MQTT (por exemplo, MQTT Explorer)
Teste de Armazenamento no DynamoDB
Objetivo: Assegurar que as mensagens recebidas do broker MQTT são corretamente armazenadas no DynamoDB.
Passos:
- Publicar mensagens nos tópicos MQTT para simular a entrada de dados.
- Verificar se as mensagens são armazenadas no DynamoDB.
- Consultar o DynamoDB para confirmar se os dados estão corretos e completos.
Ferramentas: AWS Management Console (para consulta e verificação do DynamoDB)
Teste de Integração entre AWS IoT Core, DynamoDB e ECR/EC2
Objetivo: Garantir que a integração entre o AWS IoT Core, DynamoDB e os serviços ECR/EC2 está funcionando corretamente.
Passos:
- Confirmar se o AWS IoT Core está encaminhando as mensagens para o DynamoDB.
- Verificar se as imagens Docker do Grafana e do Prometheus estão armazenadas no Amazon ECR.
- Garantir que o Amazon EKS esteja integrado ao EC2 e possa provisionar os pods conforme necessário.
- Testar a comunicação entre os serviços, garantindo que o Grafana possa acessar os dados armazenados no DynamoDB.
Ferramentas: AWS Management Console, Kubectl (para gerenciamento do Kubernetes)
Teste de Visualização de Dados no Grafana
Objetivo: Confirmar que o Grafana está corretamente configurado para visualizar os dados armazenados no DynamoDB.
Passos:
- Acessar o Grafana Dashboard.
- Configurar os painéis para exibir os dados relevantes.
- Verificar se os dados são exibidos corretamente nos painéis do Grafana.
Ferramentas: Navegador web para acessar o Grafana Dashboard.
Teste de Escalabilidade e Provisionamento Automático
Objetivo: Garantir que a arquitetura seja escalável e possa provisionar recursos automaticamente conforme necessário.
Passos:
- Simular um aumento na carga de trabalho, aumentando o número de mensagens MQTT publicadas.
- Observar se o Amazon EKS provisiona automaticamente novos pods conforme a demanda.
- Verificar se o desempenho do sistema permanece estável mesmo sob carga aumentada.
Ferramentas: Ferramentas de monitoramento de desempenho (por exemplo, AWS CloudWatch, Prometheus) para observar o provisionamento automático e o desempenho do sistema.
Testes Automatizados - GitHub Actions
Teste de Build de Imagens Docker
Objetivo: Verificar se as imagens Docker do Grafana e do Prometheus são construídas corretamente.
Passos:
- Configurar uma pipeline de CI/CD para construir as imagens Docker automaticamente.
- Verificar se as imagens são construídas sem erros.
- Armazenar as imagens no Amazon ECR.
Ferramentas: GitHub Actions e Docker
Teste de Integração com DynamoDB
Objetivo: Assegurar que a aplicação web pode se conectar ao DynamoDB e acessar os dados corretamente.
Passos:
- Configurar uma pipeline de CI/CD para testar a integração com o DynamoDB.
- Verificar se é possivel acessar os dados armazenados no DynamoDB.
- Confirmar se ocorre a exibição dos dados corretamente.
Ferramentas: GitHub Actions e ferramentas de teste de integração
Teste de Configuração do Amazon EKS
Objetivo: Garantir que o Amazon EKS esteja corretamente configurado e possa provisionar os pods conforme necessário.
Passos:
- Configurar uma pipeline de CI/CD para testar a configuração do Amazon EKS.
- Verificar se o Amazon EKS provisiona os pods conforme necessário.
- Testar a comunicação entre os serviços para garantir que o Grafana possa acessar os dados armazenados no DynamoDB.
- Confirmar se o desempenho do sistema permanece estável mesmo sob carga aumentada.
Ferramentas: GitHub Actions, Kubectl (para gerenciamento do Kubernetes)
Conclusão
Os testes propostos visam garantir que a arquitetura proposta seja robusta, escalável e capaz de atender aos requisitos do projeto. A combinação de testes manuais e automatizados permite validar a arquitetura em diferentes níveis, desde a integração entre os serviços até a escalabilidade e provisionamento automático. A realização desses testes é essencial para garantir a qualidade e o desempenho do sistema, bem como para identificar possíveis problemas e melhorias ao longo das sprints.