Desafios
As principais audiências da plataforma, alunos e professores, representavam um grande desafio dado o comportamento e/ou hábito de uso da aplicação, o qual era extremamente variável. A vasta oferta cultural na agenda de atividades proposta pelo Ministério da Cultura ocasionava uma distribuição do tráfego de usuários ao longo da semana e inclusive em uma ampla faixa horária em cada dia, complexificando o planejamento das capacidades da plataforma para garantir de ponta a ponta a melhor experiência dos usuários com custo eficiente. Além disso, o Ministério da Cultura propôs como objetivo para o primeiro ano inscrever 80% de sua audiência mediante ações de marketing, como promoção de eventos, benefícios especiais e concursos que geravam um alto volume de usuários simultâneos respondendo a essas iniciativas. Em resumo, a chave do sucesso era contar com uma solução completamente escalável, rápida, robusta e segura, mas que a seu turno fosse eficiente em termos de custos.
- A plataforma deve ter a elasticidade necessária para responder às iniciativas de marketing, escalando rapidamente suas capacidades quando o tráfego de usuários aumenta e, pelo contrário, reduzindo-as. Garantindo em todo momento a melhor experiência de usuário ao menor custo possível.
- Mais de 70% dos usuários da aplicação acessam de dispositivos móveis por conexões 3G e 4G; portanto deve ter excelente velocidade de download, inferior a 4 segundos.
- Dada a sensibilidade da informação gerenciada pela plataforma, é de suma importância que cada transação seja realizada de forma segura de ponta a ponta.
Abordagem
A arquitetura desta plataforma foi desenhada com base nos objetivos de negócio e nas boas práticas de Serverless Computing. Entre as principais características das aplicações Serverless, vale destacar que somente há cobrança quando os usuários usam a plataforma. Além disso, oferece os mais altos níveis de disponibilidade e resiliência, são autoescaláveis e totalmente gerenciadas pela AWS. Graças às capacidades da Amazon Web Services implementamos uma solução 100% Serverless; foi crucial o uso de Amazon API Gateway, AWS Lambda e AWS DynamoDB, entre outros serviços Serverless, para cumprir com sucesso os desafios propostos. Para o desenho da aplicação web, baseamo-nos em uma estratégia mobile first. Utilizando Angular para otimizar a apresentação dos conteúdos e a navegação dos diversos fluxos de trabalho. Somado ao uso do Amazon CloudFront (CDN) para a distribuição desses conteúdos a fim de que os usuários possam baixá-los com alta velocidade de transferência no servidor mais próximo de onde estiverem conectados.
+4
API Gateway Endpoints
+100
Funções Lambda
+10
Tabelas Dynamodb
+90
CodePipeline Delivery
Serviços na AWS
Cognito
É um serviço que permite, de forma rápida e simples, incorporar em suas aplicações web e dispositivos móveis funcionalidades como controle de acesso, inscrição e login dos usuários.
Kinesis
É uma plataforma para transmitir dados na AWS. Oferece serviços eficazes que facilitam a carga e a análise de dados em streaming e lhe dão capacidade de criar aplicações de streaming personalizadas para necessidades especiais.
Step Functions
Facilita a coordenação de componentes de aplicações e microsserviços distribuídos com fluxos de trabalho visuais. Criar aplicações a partir de componentes individuais que executam cada um uma função discreta permite escalar e modificar as aplicações com rapidez.
EventBridge
É um barramento de eventos sem servidor que facilita a conexão de aplicações por meio de dados provenientes de aplicações próprias, aplicações SaaS integradas e serviços da AWS.
CloudFront
É um serviço rápido de rede de entrega de conteúdo (CDN) que distribui globalmente a clientes dados, vídeos, aplicações e APIs com segurança, baixa latência e altas velocidades de transferência.
S3
No Amazon Simple Storage Service, oferece-se aos desenvolvedores e às equipes de TI um armazenamento de objetos seguro, durável e altamente escalável.
Aurora Serverless
É uma configuração de escalonamento automático sob demanda para o Amazon Aurora (edição compatível com MySQL) na qual o banco de dados inicia, interrompe e escala a capacidade automaticamente de forma crescente ou decrescente conforme as necessidades da aplicação.
SNS
É um serviço de mensagens publicação/assinatura totalmente gerenciado que facilita o desacoplamento e o ajuste de escala de microsserviços, sistemas distribuídos e aplicações sem servidor.
SQS
É um serviço de fila de mensagens totalmente gerenciado que facilita o desacoplamento e o escalonamento de microsserviços, sistemas distribuídos e aplicações sem servidor.
Parceiros
Resultados
- No primeiro ano superamos em 12% o objetivo proposto pelo Ministério da Cultura quanto à quantidade de inscritos no programa.
- Mantivemos o portal com disponibilidade (uptime) de 99,99% ao ano.
- Conseguimos que a velocidade média de download fique abaixo de 3,7 segundos.
- Melhoramos o custo anual da infraestrutura, ficando 30% abaixo do orçamento anual.
- Obtivemos a certificação AWS Well-Architected Serverless Applications.
Conclusão
Em conjunto com diversas áreas do Governo da Cidade de Buenos Aires e da AWS formamos um time multidisciplinar e iniciamos este grande desafio. Decidiu-se usar tecnologias Serverless com base nos objetivos de negócio e nas características particulares do uso desta plataforma por sua audiência-alvo. Tornando-se a primeira solução do setor público a usar tecnologias Serverless montadas sobre a Amazon Web Services como solução em nuvem. Essas tecnologias inovadoras nos permitiram alcançar com sucesso os resultados de negócio e gerar confiança suficiente para que outros projetos do setor público sigam um caminho semelhante.
- A tecnologia Serverless tem o potencial de mudar por completo a forma como as empresas projetam, constroem, implantam e melhoram suas aplicações. Reduz em grande medida os custos de gestão e infraestrutura e, a seu turno, facilita o crescimento em grande escala, acompanhando a evolução do negócio.
- O Amazon API Gateway é um serviço totalmente gerenciado pela AWS que nos facilitou a criação, a publicação, a manutenção, o monitoramento e a proteção das APIs RESTful privadas e públicas com os mais altos níveis de serviço conforme as exigências do projeto.
- A AWS Lambda é uma tecnologia disruptiva na qual não é preciso administrar servidores; basta focar em codificar a lógica de negócio e executá-la. Isso nos facilitou construir a lógica de negócio segmentada em funções discretas com base em uma estratégia de microsserviços. Essas funções executam tarefas muito específicas e depois são orquestradas com uma arquitetura baseada em eventos modelando os fluxos de negócio necessários.
- O AWS Dynamodb é um serviço de banco de dados noSQL totalmente gerenciado com níveis de latência baixa de maneira uniforme independentemente do nível de carga. Isso nos permitiu garantir a experiência de usuário desejada para a gestão de estados, dados sensíveis e outros.


