ABTesting: Não há nada como testar em produção!

Post on 18-Nov-2014

299 views 0 download

description

Apresentação realizada na trilha de testes no TDC 2014

Transcript of ABTesting: Não há nada como testar em produção!

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