Monitorando serviços REST com o Application Insights e Distributed Tracing
-
Upload
renato-groff -
Category
Software
-
view
168 -
download
0
Transcript of Monitorando serviços REST com o Application Insights e Distributed Tracing
Globalcode – Open4education
Microservices
Renato GroffeMTAC | MCP | MCTS
Monitorando serviços REST com oApplication Insights e Distributed Tracing
Globalcode – Open4education
Apresentação pessoal
Atuação na área de desenvolvimento de softwaredesde 2001
Autor Técnico / Palestrante (Canal .NET, TechNet, .NET Magazine, .NET Coders, GDG-SP,DotNet Baixada)
MTAC (Microsoft Technical Audience Contributor)
Globalcode – Open4education
Contatos
Facebook:https://www.facebook.com/renatogroff
Site:http://renatogroffe.net/
Canal .NET:https://www.facebook.com/canaldotnet
LinkedIn:http://br.linkedin.com/in/renatogroffe
Globalcode – Open4education
Agenda
Contexto atual
Monitorando serviços REST
Application Insights
Distributed Tracing
Exemplo prático
Globalcode – Open4education
Contexto atual
Globalcode – Open4education
Contexto atual
Escalabilidade, disponibilidade e performance
REST como principal estilo arquitetural
Microserviços ganhando força
Economia das APIs
Globalcode – Open4education
Questões fundamentais
Modelagem
Cultura de automação
Estratégias de deployment
Segurança
Monitoramento
Globalcode – Open4education
Monitorando serviços REST
Globalcode – Open4education
Por que monitorar?
Garantir a operação do sistema
Detecção de falhas
Acompanhamento da performance
Determinar uso intensivo de funcionalidades
Globalcode – Open4education
Como monitorar?
Estipulando métricas para análise
Implementando uma estratégia de log
Criando relatórios de acompanhamento
Globalcode – Open4education
Surgem as dificuldades...
É costume relegar o monitoramento a um segundo plano
Logs bem elaborados exigem grandes esforços de codificação
Globalcode – Open4education
Surgem as dificuldades...
Um único serviço pode possuir múltiplas instâncias
Host
Instância 1
Host
Instância 2
Host
Instância 3
Load Balancer
Globalcode – Open4education
Surgem as dificuldades...
Múltiplos serviços envolvidos em uma mesma requisição
Globalcode – Open4education
Como superar isto?
Telemetria → coleta automatizada de dados (métricas) para posterior análise
O Microsoft Azure oferece o Application Insights
Distributed Tracing → múltiplos serviços
Application Insights e Zipkin
Globalcode – Open4education
Application Insights
Globalcode – Open4education
O que é?
Serviço que integra o Microsoft Azure, estando voltado ao monitoramento de aplicações Web (sites e serviços)
Globalcode – Open4education
O que é possível monitorar?
Algumas das métricas disponibilizadas por default:
Número de requisições
Tempos de resposta
Falhas
Eventos customizados
Globalcode – Open4education
Como funciona?
Dados são coletados em uma aplicação e enviados a um repositório na nuvem
Dashboards no portal do Azure oferecem diferentes análises
Globalcode – Open4education
Como funciona?
Integração com Excel e Power BI
Globalcode – Open4education
Como funciona?Monitoramento em tempo real (Beta)
Aplicações on-premise ou na nuvem (mesmo fora do Azure) podem ser monitoradas
Detecção proativa → detecção e geração de avisos sobre problemas de performance (usando data mining + Machine Learning)
Globalcode – Open4education
Como funciona?
Regras de alerta geram e-mails de notificação
Globalcode – Open4education
Como funciona?
Requisitos para uso:
Uma conta de acesso ao Microsoft Azure
Uma Instrumentation Key
Um SDK disponibilizado pela própria Microsoft
Globalcode – Open4education
Plataformas suportadas
Globalcode – Open4education
Distributed Tracing
Globalcode – Open4education
O que é?
Monitoramento envolvendo interações entre múltiplos serviços
Permite identificar toda a rota percorrida por uma requisição HTTP
Capacidade de determinar “gargalos”
Exemplos de soluções: Zipkin e Application Insights
Globalcode – Open4education
Representação esquemática
Globalcode – Open4education
ZipkinSolução open source desenvolvida pelo Twitter
Implementação de um projeto conhecido como Google Dapper
Monitoramento de requisições HTTP, SQL e até Redis
Gráficos mapeando dependências
Fluxo apresentado sob a forma de timelines
Globalcode – Open4education
Zipkin
Globalcode – Open4education
Zipkin
Globalcode – Open4education
Application Insights
Também há o suporte a tracing distribuído
Application Insights + TrackDependency API
Application Insights + Azure Cloud Services
Globalcode – Open4education
Application Insights
Globalcode – Open4education
Exemplo prático
Application Insights + ASP.NET Web API
Globalcode – Open4education
Dúvidas?
Globalcode – Open4education
Referências
Application Insights:https://azure.microsoft.com/pt-br/services/application-insights/
Zipkin:https://github.com/openzipkin/zipkin
Globalcode – Open4education
Obrigado!!!