O blog da AWS
Evoluindo diante de uma pandemia, como escalar para atender um país inteiro usando tecnologias sem servidor na AWS
Por Branko Straub, arquiteto de soluções da Amazon Web Services para o setor público no Chile
A Amazon Web Services trabalha com mais de 6.500 agências governamentais em todo o mundo, incluindo instituições governamentais responsáveis por manter e fornecer sistemas críticos para os cidadãos.
A Divisão de Governo Digital (DGD), pertencente ao Ministério Geral da Presidência do Chile, juntamente com a Amazon Web Services (AWS) trabalharam para modernizar, em tempo recorde, o Comissário Virtual.
Devido à pandemia, COVID-19, o Governo do Chile declarou estado de quarentena em várias regiões do país. Milhões de cidadãos foram alcançados por esta medida, com o objetivo de controlar a pandemia, o governo ordenou o controle da circulação de cidadãos através da concessão de licenças temporárias. A fim de otimizar a emissão de tais licenças, foi decidido que elas deveriam ser concedidas através de uma plataforma web.
Com o estado declarado de emergência, foi decidido que o “Virtual Commissioner”, que oferecia serviços para realizar reclamações e procedimentos on-line: perda de documentos, registros, reclamações e certificados, assumiria a responsabilidade pela emissão de certificados de circulação para a compra de suprimentos básicos, assistência para instalações médicas, pagamento por serviços básicos, entre outros para os mais de 8 milhões de pessoas que estariam em quarentena.
Usando o caso do Commissariado Virtual como exemplo, este guia busca fornecer orientações gerais sobre como implementar um sistema crítico altamente escalável e econômico, mas que possa ser modificado de acordo com as necessidades de cada instituição.
Dimensionamento na AWS
Antes da pandemia, a plataforma tinha uma média de 500 procedimentos por dia. A arquitetura consistia em: uma base relacional MySQL para gerenciamento de usuários e armazenamento de permissões concedidas, um servidor de aplicativos PHP para o back-end e frontend da aplicação web, um sistema de arquivos NFS para o repositório de documentos gerados e o armazenamento de recursos estáticos do aplicativo.
A pandemia do COVID-19 obrigou o Virtual Commissioner a escalar e fornecer mais capacidade para suportar o fardo. Um conjunto de máquinas virtuais do EC2 foi implantado em paralelo para atender à crescente demanda de processamento.
A plataforma foi projetada para lidar com o número de usuários inicialmente planejado, no entanto, esse número aumentou substancialmente como resultado da pandemia.
Isso causou quedas esporádicas no site, criando assim indisponibilidade e impossibilidade de gerar certificados de tráfego de cidadãos.
Da AWS, devido à importância desta plataforma, duas linhas de ação foram tomadas, juntamente com o cliente, para remediar a situação e garantir a disponibilidade do Virtual Commissioner.
Recipientes
A primeira etapa foi disponibilizar o aplicativo em contêineres usando o Amazon Elastic Kubernetes Service (EKS) um serviço baseado em Kubernetes totalmente gerenciado, altamente disponível, seguro e escalável.
Essa implementação permitiu que o Virtual Commissioner escalasse em paralelo para atender à crescente demanda, podendo escalar das dezenas de instâncias de aplicativos para um total, no seu ponto mais alto, de 300 máquinas virtuais (EC2) hospedando mais de 3000 contêineres com o Virtual Commissioner funcionando em paralelo garantir a procura. Isso atendeu à demanda e adicionou recursos de monitoramento, implantação contínua, balanceamento e controle de acesso fornecidos pelo Kubernetes na AWS.
Para otimizar o tráfego e reduzir a carga sobre os servidores de aplicativos, o Amazon Cloudfront foi implementado: uma rede de entrega de conteúdo (CDN) segura, rápida e programável que usa o POP da Amazon em Santiago do Chile.
Por sua vez, o AWS WAF — um firewall de aplicativo da web foi implementado para proteger o site contra solicitações indesejadas e mal-intencionadas.
Recursos do AWS Lambda
A segunda linha de trabalho foi modernizar o aplicativo, construindo do zero, uma série de recursos do AWS Lambda, com o objetivo de reduzir a carga do aplicativo original. Os recursos do Lambda permitem que você execute código sem ter que se preocupar com o provisionamento ou o gerenciamento de servidores. Além disso, o Amazon DynamoDB, um banco de dados de valor chave capaz de lidar com milhões de solicitações por segundo, foi implementado.
Essa implementação permitiu, em menos de uma semana, escrever código Python do zero para apoiar a geração e validação dos documentos mais exigidos relacionados à situação da pandemia COVID-19. As funções do Lambda, de forma escalável e econômica, geram PDFs que servem como prova de circulação, que são então armazenados no Amazon S3, nosso serviço de armazenamento de objetos altamente escalável.
As informações do processo são armazenadas no Amazon DynamoDB para análise posterior, que é realizada de forma agregada, segura e anônima, para decisões governamentais subsequentes. Finalmente, as permissões geradas em PDF são enviadas aos cidadãos usando o Amazon Simple Email Service, nosso serviço de envio em massa.
Este conjunto de serviços sem servidor permitiu, em menos de uma semana, redesenhar o site Virtual Commissioner, garantindo a agilidade da geração do processo e reduzindo o custo operacional.
Opinião
Usando uma arquitetura sem servidor com o AWS Lambda, aproximadamente 50 milhões de licenças de tráfego foram concedidas até o momento. O site do Virtual Commissioner não sofreu degradação do serviço e entregou com sucesso mais de 1,2 bilhão de solicitações HTTP e mais de 100 TB de dados por meio de nosso serviço de CDN, o Amazon Cloudfront.
Conseguiu reduzir o tempo médio de carregamento do site de 5 segundos para cerca de 200 milissegundos. As funções do Lambda estão lidando com mais de 80% da carga atual do site, movendo-se para uma arquitetura 100% sem servidor.
Finalmente, esse conjunto de otimizações atinge aproximadamente a metade do custo operacional mensal do Virtual Commissioner na AWS.
Juntamente com a Divisão de Governança Digital, continuamos trabalhando para otimizar o Virtual Commissioner, adotando serviços sem servidor, reduzindo assim a complexidade, os custos operacionais e aumentando o desempenho.
Se você quiser começar a criar arquiteturas econômicas e escaláveis sem servidor, recomendo que você revise o seguinte documento.
Sobre o autor
Branko Straub é arquiteto de soluções da Amazon Web Services para o setor público no Chile. Branko tem ajudado várias instituições do setor público e privado na adoção de tecnologia de nuvem nos últimos 5 anos e tem realizado com sucesso projetos que marcam o impacto social em nível de cidadãos e estudantes em toda a América Latina.