abtesting: não há nada como testar em produção!
Post on 18-Nov-2014
298 Views
Preview:
DESCRIPTION
TRANSCRIPT
Daniel Semedohttp://semedo.azurewebsites.netV-daseme@microsoft.com
A/B Testing: Não há nada como testar em produção!!
Every company is a software company
“Hoje, quase todas inovações significativas para uma empresa requer o uso de sofwares, muitas empresas ainda não estão preparadas para entregar software no tempo em que o negócio exige.”*
Aplicações Modernas
Investimentos baseados em uso real
Habilitado para Nuvem
Desenvolvimento e ciclo curto de entregas
*GARTNER Agenda Overview for Application Development, 2014, Ian Finley, Thomas E. Murphy, Jim Duggan, Mark Driver, Gordon Van Huizen, Nathan Wilson, David Mitchell Smith, Matthew Hotle, Joe Bugajski, Brian Prentice, Ray Valdes, Ross Altman, Richard Marshall, Van L. Baker, David Norton, 9 January 2014
“It has been said that the only sustainable advantage in business is the ability for a company to learn faster and respond more effectively than its competitors (also known as business agility).” – CIO magazine, 2012
Entrega rápida de Valor
Aumentar o fluxo de entrega de valor
Ciclos curtos de entrega
Redução de retrabalho
ProduçãoDesenvolvimento Colaboração
Monitor + learnPlan
Develop + test Release
Requisitos
Visual Studio Online Service
Um exemplo sobre curto ciclo de entrega
Visual StudiovNext
Visual Studio 2013
Visual StudioUpdate 1
Visual StudioUpdate 2
Visual StudioUpdate N
3meses
Novo update
3semanas
Novo CTP (customer test preview)
6meses
Visão roadmap
Histórico de Releases no site
Há cada 3 semanas
novas features na versão
online
Release
O que impulsiona Release Management?
Apps de Negócios estão em uma cadência ágil de entrega devido a
competitividade.
Impedimentos exarcebados já
existentes.
Deployment complexo devido a aplicações multi-plataforma. Complexidade em suportar diferentes dispositivos e garantir
serviços always “on”.
40
%
Releases quadrimestrais ou menos frequentes
Source: Continuous Delivery Is Reshaping The Future Of ALM, Forrester Research, Inc., July 22, 2013
Padrões de Deploy em Produção
Stop and Go Canary
Blue-Green
Install AppValidationTest Auto
ConfigureEnvironment
ConfigureApplication
A
Rollback
Simple Stop and Go
Stop Server
Install Components
Configure
Start Server
Manual Test
Restore Service
Stop Service
Stop and Go – Multi Servers
Stop Server
Install Components
Configure
Start Server
Sanity Test
Restore Service
Stop Service
Stop Server
Install Components
Configure
Start Server
Canary
Stop Server
Install Components
Configure
Start Server
Sanity Test
Restore Traffic
Remove Traffic
Stop Server
Install Components
Configure
Start Server
Sanity Test
Restore Traffic
Remove Traffic
Stop Server
Install Components
Configure
Start Server
Sanity Test
Restore Traffic
Remove Traffic
A/B TESTING
Blue-Green
Staging
Dev Test
Prod
Staging
Blue-Green
Staging
Dev Test
ProdRollback
Após AprovaçãoStaging IP ganha status Prod
Prod
Em Falha:Rollback é feito em Prod
Staging
Blue-Green
Staging
Dev Test
ProdRollback
Após SuccessoRollback é reaberto como staging
Prod
Staging
Pipeline
Error reporting
Aprovações
Automação de cada ambiente
Papel do QA no time de desenvolvimento do Visual Studio
24 | Un-Managing Agile Teams
Times de 8-12
Multi-disciplinar
3 perfis distintos
Estrutura
25 | Un-Managing Agile Teams
Nossas Regras
Program Manager – Responsável por assegurar que estamos construindo a coisa certa.
Desenvolvimento – Responsável por assegurar que estamos construindo produtos que sejam rápidos, confiáveis e bem construidos.
QA – Responsável por assegurar que estamos construindo um produto de alta qualidade e que atenda as expectativas e necessidades dos usuários.
26 | Un-Managing Agile Teams
Estrutura Organizacional
Program Manager Desenvolvimento QA
27 | Un-Managing Agile Teams
Nossos Times
Program Manager Desenvolvimento QA
28 | Un-Managing Agile Teams
Nossos Times
QADev QA
Dev QA
Dev QA
Dev
PM PM PM PM
Collaboration
Version Control BuildWork Item Tracking
QA garante a passagem entre ambientes
Papel de QA: Garantir
Qualidade ao longo do
Pipeline de Deployment
Como garantir?
-Garantia de Qualidade do Build (Code
Analysis, Code Coverage, Code Metrics, Unit
Tests);
-Testes Funcionais (Testes de regressão);
-RBT – Requirements based Tests em QA para
garantia de regressão em novas features
-Performance e Load Tests
-Monitoramento do ambiente e disparo de
alertas
SLA em cada teste automatizado...
Fase 1 – Análise de QA do Build-Compilação-Unit Tests-Code Analysis-Code Metrics-Architecture Validation...++
Build recebe status de pronto
para deploy
Team Foundation Server 2013 Update 3
Parâmetros de Rejeição do Build-Baixo nível de Code Analysis ou (excesso de Warnings ou não compliance);-Testes unitários falhos ou com resultados de execução elevados;-Code Coverage Results inferior ao estipulado;-Tempo de geração do build fora do comum;
Visual Studio Ultimate 2013 Update 3
QA em cada ambiente
Release Management 2013 Update 3
Exploratory Tests e RBT Manual Requisito a ser
validado
Detalhes do resultado do teste
Microsoft Test Manager 2013 Update 3
Garanta o processo de deployment
Papel de QA: Garantir Qualidade ao longo do
Pipeline
Validação do ambiente + Aplicação
-Janela de tempo para reprodução de testes de carga e performance nos ambientes de QA e Produção-Rollback do banco de dados e demais operações preparadas para eventual falha
Visual Studio 2013 Ultimate Update 3
Bugs
Monitor+Learn
PROD
Service Availability& Operational Metrics
• TFS switched to weekday deployments S61• Build availability impacted by external
dependencies (Networking/Service Bus). • App Insights Usage feature had multiple
incidents due issues IaaS VM with SQL installed. Working to migrate to more resilient and operable design.
• App Insights lacks impact telemetry for customer data flows which reduces time to detect, accuracy of root cause and limits ability to asses incident severity .
• App Insights Usage currently supported by Dev team & working to migrate to Service Delivery for more consistent Live Site Management
38
DRAFT
-40%-20%
0%20%40%60%80%
100%120%140%160%
% Growth in Active Accounts (by Services)
Build Active AccountsELS Active AccountsAI Active AccountsMonaco Active Websites
Jan-
13
Jan-
13
Feb-
13
Mar
-13
Apr-1
3
Apr-1
3
May
-13
Jun-
13
Jul-1
3
Jul-1
3
Aug-1
3
Sep-
13
Oct-1
3
Oct-1
3
Nov-1
3
Dec-1
3
Jan-
14
Jan-
14
Feb-
14
Mar
-14
VSO Account Growth Over Time
Rastrear taxa mensal de crescimento (não apenas Cumulativa)
Launch
MoM Growth in [sub]Service Adoption
Created an Account
Created a Project
Check-In / Push
Build
Deployed
Todo serviço possui multíplos FunisAlimentar/medir apenas a boca do funil pode ser uma métrica sem valor, pense em alimentar/medir toda a experiência do serviço, garantindo o resultado de uso completo.
Pense em cada progressão e planeje a expansão da eficiência do funil
Experimente! August September OctoberNovemb
erDecember January*
Accounts Created
Projects Created
Code Checked-In
Builds Executed
Deployments to Azure
August September OctoberNovemb
erDecember January*
Account -> Project
Project -> Check-In
Check-In -> Build
Build -> Deploy
E2E Conversion
Learn
Measu
re
Build
Um exemplo - Build, Measure, Learntinhamos…
… Decidimos que podiamos fazer melhor
30%Criavam novos Team Projects no primeiro acesso
Build
Build, Measure, Learn
Então fizemos…
Measu
re50%+20% Aumento
Performant
Successful
AvailableAvailable
Applic
ati
on Insi
ghts
Saiba antes que seus clientes saibam
Configure o dashboard com métricas que
mais lhe interessam
Identifique issues e comportamentos monitorando suas
aplicações
Verifique a “pulsação de
suas aplicações”
• Tenha uma visão 360 para monitorar e detectar issues em produção com Application Insights.
• Testes web são executados com frequência (5m-10m) para validar disponibilidade, performance e comportamento da aplicação em produção
Global service monitoring
Saiba antes que seus clientes saibam
Melhore de forma contínua• Identifique erros sistêmicos
e de mal comportamento da aplicação para priorizar/prevenir falhas
• Priorize melhorias, bugs e demais correções com métricas de uso da aplicação de forma quantitativa e qualitativa
Dados valiosos para definir o futuro de suas aplicações
Valide seus investimentos
Dev & TestComo o desenvolvedor apoia neste processo e torna possível o curto ciclo de entrega da aplicação?
Produtividade para Dev & TestConexão com
Microsoft Azure direto do próprio Visual
Studio
Faça sua aplicação e teste utilizando os diferentes serviços
dísponiveis para simular e testar sua aplicação
Execute testes e monitore a performance,
exceções e demais comportamentos de sua
aplicação
Deploy+Monitor em cliques
Faça o deploy de sua aplicação em
ambientes de Staging ou Produção
Acesse a instância e faça configurações no sistema operacional caso seja necessário
Deploy para a Nuvem ou On Premise
Resultado do Deploy
Configure Builds+Deploy local
ou na nuvem (Utilizando RM ou
publish direto)
Teste a Performance de sua Aplicação
Teste a performance de sua aplicação e verifique a disponibilidade, performance e requisições realizadas por execução
Melhore de forma contínua
• Identifique erros sistêmicos e de mal comportamento da aplicação para priorizar/prevenir falhas
• Priorize melhorias, bugs e demais correções com métricas de uso da aplicação de forma quantitativa e qualitativa
Dados valiosos para definir o futuro de suas aplicações
Valide seus investimentos
Application Insights (Visual Studio Online)
Dev & Test
VIDEO DEMO
Resumindo Assuma o real papel de QA
Regra clara entredev (qa) x ops
Automação não é nada sem controle
Priorize Métricas vitais para o negócio
Não há nada como produção!
http://erikasaca.files.wordpress.com/2011/03/ruby-red-slippers2.jpg
Daniel Semedohttp://semedo.azurewebsites.netV-daseme@microsoft.comLinkedin.com/in/danielsemedowww.microsoftvirtualacademy.com
Obrigado! Veja estes e outros recursos no Visual Studio Online (FREE até 5 usuários)
www.visualstudio.com
top related