DevOps... O caminho! - Monitoramento de aplicações com App Insights
1. Adriano Bertucci
adriano.bertucci@konia.com.br
Konia Tecnologia
@adrianobertucci
DevOps... O caminho!
Monitoria de aplicações com App Insights.
Marcus Garcia
marcus.garcia@konia.com.br
Konia Tecnologia
Guilherme Cardoso
guilherme.cardoso@konia.com.br
Konia Tecnologia
@guilhermescard
2. Agenda
• O famoso “DevOps”
• A importância do DevOps para o negócio
• Application Lifecycle Management (ALM) e o DevOps
• Ferramentas
• Application Insights
• Recursos de Telemetria
• Demonstração
• Dúvidas, curiosidades e afins.
4. DevOps é...
… conjunto de processos, métodos e sistemas para
comunicação, colaboração e integração entre os departamentos
para Desenvolvimento, Operações.
*
Wikipedia
Os
desenvolvedores
estão
sendo
integrados
aos
processos
de
entrega
de
serviços
operacionais
Operações
englobou
o
novo
papel
de
serviço
proprietário
6. DevOps – Agile Operations
“Não se trata apenas de colaboração entre desenvolvimento e
operações, trata-se de cada parte do negócio, da empresa
trabalhar de maneira colaborativa para atender os objetivos do
negócio.”
Patrick Dubois, Pai do DevOps
7. TI Dinâmica
“Com TI Dinâmica, estamos reunindo as capacidades da
infraestrutura básica e as plataformas de desenvolvimento para
ajudar os clientes a construir sistemas integrados que vai torná-lo
um parceiro mais forte para em negócio.”
Bob Muglia, VP of Server & Tools @ Microsoft, TechEd 2007
8. Por que DevOps agora?
Novas
tecnologias
Cloud
compu:ng
gerando
novas
oportunidades
de
valor
Contato
direto
com
o
Agilidade
para
compe:r
consumidor
Proliferação
de
disposi:vos
Modernização do negócio
9. Por que DevOps agora?
Equilibrar
agilidade
com
qualidade,
escala
e
compliance.
A TI usada para modernizar o negócio
Negócio
pensado
“pra
frente”
Maximizar
economias
em
escalas
Melhoria
no
:me-‐to-‐market
Entrega
con:nua
de
valor
11. Ciclo de Vida das Aplicações
Product
Backlog
Ops
Backlog
Sprint
Monitor
DESENVOLVER
Idéia
de
trabalhar
o
soSware
OPERAR
Resolução
de
Incidentes
Gerenciamento
de
Release
Testando
Causa
Raiz
Não
é
possível
reporuzir
Incidentes
de
Produção
Não
é
possível
iden:ficar
a
Causa
Raiz
Falta
de
App
Não
é
possível
obter
Feedback
Gerenciamento
de
Mudanças
e
Provisionamento
12. O problema: Desenvolvimento X Operações
Desenvolvimento
• Dia-‐a-‐Dia:
Aumentar/Manter
a
viabilidade
do
negócio
através
codificação
para
suportar
as
demandas
do
mercado
• Quando
ocorre
um
problema:
O
obje:vo
é
entender
a
causa
raiz
para
prevenir
futuras
ocorrências.
• Tempo:
Sprints
(3-‐4
semanas)
Operações
• Dia-‐a-‐Dia:
Aumentar/Manter
a
disponibilidade
operacional
do
negócio
eliminando/controlando
as
alterações
• Quando
ocorre
um
problema:
O
obje:vo
é
restaurar
o
funcionamento
–
REBOOT!
• Tempo:
SLA
99.9%
(cerca
43
min/
mês)
Obje>vos,
prioridades
e
mentalidade
desalinhados!
13. “Você
sabe
o
que
pode
ter
causado
a
falha?”
“Como
eu
vou
saber,
você
que
escreveu
o
código”
14. DevOps: Barreiras de Adoção
Necessidade
de
uma
mudança
cultural
Nenhuma
troca
de
conhecimento
Processos
dissociados
Falta
de
automação
15. A solução: Dev + Ops = DevOps
• Artefatos
compar>lhados
• A
saída
do
processo
de
desenvolvimento
é
na:vamente
consumida
pelo
ferramental
operacional
e
vice-‐versa
• Automação
• Releases
automá:cos
liberados
para
qualquer
ambiente
através
de
uma
experiência
“self-‐service”.
• Obje>vo
comum
• Métricas
de
monitoramento
únicas
e
automa:zadas.
Cultura
colabora>va,
onde
todas
as
partes
interessadas
trabalham
em
conjunto
durante
todo
o
ciclo.
19. Para refletir...
• Sua aplicação está no ar neste momento?
• Está funcionando?
• Será que está com algum erro?
• E o desempenho?
• A resposta é.... ???
20. Tudo mudou. Não Acredita?
Força de trabalho
2.6 bilhões de
dispositivos móveis
em 2016; 350M usados
no trabalho
Consumidores
82% da população mundial
online participa de redes
sociais
Comércio
70%
das empresas usam ou
estão investindo em
soluções de nuvem
22. Tudo está conectado...
• Usuários
• Clientes
• Browser
• Devices
• Desktop
• Servidores
• Banco de dados
• Serviços
23. Portanto: Um montão de coisas pode dar
errado
Bug na aplicação
Respostas do servidor
muito lentas
Banco de dados
sobrecarregado Serviço de terceiros
fora do ar
Funcionalidade difícil
de usar
25. Saiba antes que seu cliente
Tenha uma visão 360 graus da saúde de sua aplicação e detecte
problemas em produção.
Confgure
as
métricas
de
saúde
Verifique
o
pulso
da
sua
aplicação
Iden:fique
problemas
com
a
aplicação
em
produção
26. Saiba antes que seu cliente
Receba alertas automaticamente quando sua aplicação não
estiver respondendo
Alertas
automá:cos
com
informações
relevantes.
28. Melhoria contínua
• Identifique problemas que
afetam a infraestrutura de sua
aplicação.
• Priorize novas funcionalidades,
correções de bugs e estratégias
baseadas em qualidade.
Dados
valiosos
na
ponta
dos
seusc
dedos
Valorize
seu
inves:mento
29. A solução: Application Insights
Disponível
Minha
aplicação
está
disponível
e
com
bom
desmpenho
para
meus
usuários
?
Dashboard
Único
Performance
Melhorando
O
quê
está
errado?
Mostre-‐me
os
problemas
de
desempenho,
Uso
de
memória
e
exceções
Onde
iremos
inves:r?
Mostre-‐me
as
principais
funconalidades
e
U:lização
dos
usuários
Dashboards
de
Saúde
No:ficações
e
Insights
Uso
dos
Dashboards
30. Application Insights e o Azure
• Até a versão 1.x o Application Insights é gerenciado pelo Visual
Studio Online
• A partir da versão 2.x ele estará no Microsoft Azure (Visual
Studio 2013 Update 3)
32. Fontes de telemetria
aplicação
plataforma
infraestrutura
1
3
4
5
6
Monitoramento
Outside-‐in
Pings
de
URL
e
Testes
Web
a
par:r
de
vários
pontos
de
presença
globais
Traces
gerados
pelo
desenvolvedor
Qualquer
coisa
que
o
dev
queira
mandar
para
o
Applica:on
Insights
Comportamento
da
aplicação
Dispensa
codificação
–
dependências
de
serviço,
consultas,
tempo
de
resposta,
exceções,
logs,
etc.
Desempenho
da
infraestrutura
Contadores
de
desempenho
de
sistema
“Meta-‐telemetria”
Código-‐fonte,
builds,
implantações,
mudanças
de
configuração
2
Comportamento
do
usuário
Como
a
aplicação
está
sendo
u:lizada?
33. Como utilizar o Application Insights?
Alterações
no
código
Não
invasivo
34. Plataformas suportadas
Server
side
• .NET
&
Java
• On-‐prem:
MS
Monitoring
Agent
• Azure:
VM’s
e
cloud
services
• ASP.NET
• AppInsights
SDK
Client
side
• Browser
(JS)
• Windows
Phone
• Windows
Store
Em
breve
• Azure
Web
Sites
• iOS
• Android