...ainda sobre a VTEX
Ainda falando da empresa em que trabalho, a VTEX é uma plataforma de e-commerce que apesar de nascida no Brasil começou uma expansão na América Latina bem na época que entrei e hoje está em mais de dez países, mantemos no ar lojas como Boticário, Sony Brasil e C&A no Brasil, Walmart argentina e Fravega, que é tipo as Casas Bahia da Argentina, dentre outros caras grandes mundo afora.
...sobre o cenário
Hoje, infra da VTEX é quase que totalmente Powered by AWS, digo quase porque existem pequenos serviços que rodam em outras nuvens como Azure e alguns serviços terceirizados. Contando com isso na AWS trabalhamos numa quantidade superior a 600 servidores e serviços diversos que precisamos monitorar pra que caso algo dê errado saibamos e se possível sanemos antes mesmo do cliente final saber que houve problema.
...das ferramentas
Dentre várias ferramentas, serviços proprietários e desenvolvidos em casa o Cloudwatch sempre foi usado à exaustão, mas até pouco tempo apenas passivamente onde coletavamos métricas e as trabalhávamos fora do Cloudwatch, isso no que se refere a notificações é claro, questões relacionadas a auto scaling são tratadas diretamente no ambiente. Inserir ou remover instâncias baseadas no processamento por exemplo é um procedimento padrão ligado ao cloudwatch.
...sobre o Target
O CloudWatch possui um sistema de alarmes para tomada de ações, seja em cima da instância, do AutoScaling group ou apenas notificar, e aí está finalmente o alvo do talk de hoje, usar esses alarmes para notificar de forma ativa.
...sobre o AWS CloudWatch
O CloudWatch possui um sistema de alarmes para tomada de ações, seja com efeito na instância, no AutoScaling Group ou apenas notificar, e aí está finalmente o alvo do talk de hoje, usar esses alarmes para notificar de forma mais efetiva.
… ainda sobre o AWS CloudWatch
No talk anterior foi falado sobre o Cloudwatch e a criação de alarmes o que ja é muito útil pro dia-a-dia, a parte ruim é que pra notificação direta nos resta a opção de email, e sejamos francos, quem fica vigiando o email 24x7 pra saber se seu sistema caiu?
… AWS SNS (Simple Notification Service)
Nesse ponto entra outro amigo nosso, que é o Mr SNS (Simple Notification Service). Ao criarmos o alarme podemos definir como ação a inserção dessa notificação de alarme em um topico de SNS, escolhendo um nome da lista ou inserindo seu "arn" (AWS Resource Name)
… ainda sobre o AWS SNS (Simple Notification Service)
Para cada tópico criado no SNS podemos colocar vários "Subscribers" que são agentes que vão receber toda notificação que chegar a esse tópico. E aí que está o ponto chave, apesar de você ainda poder inserir seu email como subscriber, você pode também executar um POST http/s, onde o SNS vai enviar um json com as informações contidas no alarme.É importante frisar que para um subscriber receba notificações é necessário confirmar que o desejo de recebê-las em sua aplicação assim como por email, então vc tem, obrigatoriamente, que tratar e responder o json de confirmação que é enviado quando cadastrar uma aplicação como subscriber, pois apenas depois disso vai passar a receber notificações.
… ainda sobre o AWS SNS (Simple Notification Service)
Vale a pena ressaltar que existem outras formas de obter notificações do SNS para agir, além do email e post, como podemos ver no menu de criação de subscription do SNS.
… ainda sobre o AWS SNS (Simple Notification Service)
O uso do SMS, enviado pela própria AWS como parte do SNS, onde é necessário apenas inserir o número do celular acompanhado do código do país e número de área
… ainda sobre o AWS SNS (Simple Notification Service)
...e a interação com o AWS Lambda
“O AWS Lambda é um serviço de computação sem servidor que executa seu código em resposta a eventos e gerencia automaticamente os recursos computacionais adjacentes para você. Você pode usar o AWS Lambda para estender outros serviços da AWS com lógica personalizada ou criar seus próprios serviços de back-end que operam na escala, desempenho e segurança da AWS. O AWS Lambda pode executar automaticamente códigos em resposta a múltiplos eventos, como modificações a objetos em buckets do Amazon S3 ou atualizações de tabela no Amazon DynamoDB.”
… casos de uso
Na VTEX temos uma app centralizadora de notificações, que recebe um post não só do SNS, mas de outros agentes e ferramentas e com essa informações notifica através de ligação telefone e postagem em um canal do Slack (Ferramenta usada para comunicação interna na empresa).
No entanto com base nas informações que temos hoje é possível, uma vez que se pode inserir métricas no CloudWatch, até mesmo disparar um alarme com base no portão eletrônico de uma casa, ou sensor de movimento.
… fontes
Toda informação presente foi extraída da documentação oficial da AWS.
CloudWatchhttps://aws.amazon.com/pt/cloudwatch/
SNShttps://aws.amazon.com/pt/sns/
Lambdahttps://aws.amazon.com/pt/lambda/