35
Globalcode – Open4education Microservices Renato Groffe MTAC | MCP | MCTS Monitorando serviços REST com o Application Insights e Distributed Tracing

Monitorando serviços REST com o Application Insights e Distributed Tracing

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Monitorando serviços REST com o Application 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)

Page 3: Monitorando serviços REST com o Application Insights e Distributed Tracing

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

Page 4: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Agenda

Contexto atual

Monitorando serviços REST

Application Insights

Distributed Tracing

Exemplo prático

Page 5: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Contexto atual

Page 6: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Contexto atual

Escalabilidade, disponibilidade e performance

REST como principal estilo arquitetural

Microserviços ganhando força

Economia das APIs

Page 7: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Questões fundamentais

Modelagem

Cultura de automação

Estratégias de deployment

Segurança

Monitoramento

Page 8: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Monitorando serviços REST

Page 9: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Por que monitorar?

Garantir a operação do sistema

Detecção de falhas

Acompanhamento da performance

Determinar uso intensivo de funcionalidades

Page 10: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Como monitorar?

Estipulando métricas para análise

Implementando uma estratégia de log

Criando relatórios de acompanhamento

Page 11: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Surgem as dificuldades...

É costume relegar o monitoramento a um segundo plano

Logs bem elaborados exigem grandes esforços de codificação

Page 12: Monitorando serviços REST com o Application Insights e Distributed Tracing

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

Page 13: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Surgem as dificuldades...

Múltiplos serviços envolvidos em uma mesma requisição

Page 14: Monitorando serviços REST com o Application Insights e Distributed Tracing

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

Page 15: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Application Insights

Page 16: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

O que é?

Serviço que integra o Microsoft Azure, estando voltado ao monitoramento de aplicações Web (sites e serviços)

Page 17: Monitorando serviços REST com o Application Insights e Distributed Tracing

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

Page 18: Monitorando serviços REST com o Application Insights e Distributed Tracing

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

Page 19: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Como funciona?

Integração com Excel e Power BI

Page 20: Monitorando serviços REST com o Application Insights e Distributed Tracing

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)

Page 21: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Como funciona?

Regras de alerta geram e-mails de notificação

Page 22: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Como funciona?

Requisitos para uso:

Uma conta de acesso ao Microsoft Azure

Uma Instrumentation Key

Um SDK disponibilizado pela própria Microsoft

Page 23: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Plataformas suportadas

Page 24: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Distributed Tracing

Page 25: Monitorando serviços REST com o Application Insights e 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

Page 26: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Representação esquemática

Page 27: Monitorando serviços REST com o Application Insights e Distributed Tracing

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

Page 28: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Zipkin

Page 29: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Zipkin

Page 30: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Application Insights

Também há o suporte a tracing distribuído

Application Insights + TrackDependency API

Application Insights + Azure Cloud Services

Page 31: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Application Insights

Page 32: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Exemplo prático

Application Insights + ASP.NET Web API

Page 33: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Dúvidas?

Page 34: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Referências

Application Insights:https://azure.microsoft.com/pt-br/services/application-insights/

Zipkin:https://github.com/openzipkin/zipkin

Page 35: Monitorando serviços REST com o Application Insights e Distributed Tracing

Globalcode – Open4education

Obrigado!!!