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