Implementação de aplicação de gerenciamento de filas cirúrgicas utilizando práticas de CI/CD e Segurança na AWS
O Cliente
EzList é uma solução interativa para clínicas e hospitais que faz o gerenciamento inteligente de filas cirúrgicas, oferecendo como diferencial a simplificação, controle e redução do esforço na gestão de filas de espera.
O Desafio
O cliente nos apresentou a necessidade de deploy de uma aplicação web, que fosse altamente disponível, com baixa latência, versionada e com custos otimizados e previsíveis.
A Proposta
Para atender satisfatoriamente todos os requisitos do cliente utilizamos conceitos atuais de engenharia rede, sugerimos e implementamos uma topologia baseada em micro-serviços, que utiliza boas práticas de segurança, oferece múltiplas camadas de redundância e alta disponibilidade!Esta topologia tem se tornado cada vez mais popular, pois também é utilizada por gigantes da tecnologia como Google, Microsoft, Huawei, entre outros.
Na prática, o código é versionado via GitHub utilizando três branchs (homologação, desenvolvimento e produção), a implementação é feita inteiramente na AWS, utilizando o CodePipeline, que se integra com o GtHub e monitora alterações no código, quando uma nova versão é lançada, o CodePipeline aciona o CodeBuild que começa a construir uma nova imagem da aplicação, a imagem é armazenada no ECR. Logo em seguida, o ArgoCD detecta a nova versão da imagem e faz o Deploy do novo container no cluster Kubernets e para evitar downtime, a saúde do novo container é validada pelo ArgoCD, que só então encerra o container antigo que está sendo substituído.
Agora com o novo container ativo, ele já entra em produção, visto que o Application Load Balance é configurado automaticamente para fazer o apontamento para o mesmo! Nas camadas posteriores, o CloudFront garante a menor latência para o cliente, onde quer que ele esteja, o WAF garante a proteção contra filtrando e negando diversos tipos de ataques!
Tecnologias utilizadas neste projeto:
- AWS EKS
- AWS CodePipeline/CodeBuilder
- AWS ECR
- AWS CloudFront
- AWS WAF
- AWS S3
- ArgoCD
- GitHub