2. ...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.
3. ...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.
4. ...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.
5. ...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.
6. ...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.
7. … 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?
8. … 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)
9. … 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.
10. … 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.
11. … ainda sobre o AWS SNS (Simple Notification Service)
… e nesse fluxograma
12. … 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
13. … 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.”
14. … 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.
15. … fontes
Toda informação presente foi extraída da documentação oficial da AWS.
CloudWatch
https://aws.amazon.com/pt/cloudwatch/
SNS
https://aws.amazon.com/pt/sns/
Lambda
https://aws.amazon.com/pt/lambda/