Teste A/B ou também conhecido como teste dividido, consiste em ter duas versões de sua aplicação rodando ao mesmo tempo, e ter uma porcentagem do público sendo direcionada para uma versão (A) e outra parte para a outra versão (B). Essencialmente, este é um teste estatístico, onde você poderá verificar como novas atualizações irão impactar seus usuários.
Pode parecer complexo, porém é bem simples. Para este teste você terá de realizar algumas tarefas antes:
- Ter o OC instalado e configurado, como apresentamos aqui.
- Ter mais de uma versão da aplicação rodando, Versão A e B.
- Ter rastreabilidade das mudanças que irá testar, para poder comparar estatisticamente após o teste.
Para este tutorial vamos criar 2 aplicações e chamar uma de "site" que será a nossa versão (A) e a segunda versão de "stgsite" que será nossa versão (B).
As aplicações podem ser criadas pelo painel ou pela linha de comando como explicamos aqui.
Então o passo agora é simples, você deverá editar o balanceador de carga de sua aplicação para que ele direcione corretamente as porcentagens desejadas para suas versões de aplicação. Para isso você deverá usar o terminal e o OC:
Logue em sua conta, escolha o projeto e então edite a rota da aplicação que fará o A/B:
$ oc login
$ oc project site
$ oc edit route site
E então você verá um arquivo similar ao abaixo, e vamos explicar as linhas destacadas que você deverá incluir/editar:
apiVersion: v1 kind: Route metadata: annotations:
haproxy.router.openshift.io/balance: roundrobin openshift.io/generated-by: GetupCloudWebConsole openshift.io/host.generated: "true" creationTimestamp: 2016-10-20T12:22:24Z labels: app: site template: site name: site namespace: teste-ab resourceVersion: "80678520" selfLink: /oapi/v1/namespaces/teste-ab/routes/site uid: db55bb62-96bf-11e6-b7f6-000d3ac01d22 spec: alternateBackends: - kind: Service name: stgsite weight: 30 host: site-teste-ab.getup.io port: targetPort: 8080-tcp tls: insecureEdgeTerminationPolicy: Allow termination: edge to: kind: Service name: site weight: 70 status: ingress: - conditions: - lastTransitionTime: 2016-10-20T12:22:24Z status: "True" type: Admitted host: site-delivery-continuo.getup.io routerName: router
Explicando:
haproxy.router.openshift.io/balance: roundrobin >> Esta anotação informa ao roteador de tráfego que ele deverá utilizar a estratégia "RoundRobin" que implementa o balanceamento de carga entre os destinos, e em nosso caso adicionaremos um "peso" à estas rotas para testarmos nossa aplicação.
alternateBackends >> Este bloco de código que você irá adicionar, indicará ao roteador que ele deverá direcionar uma porcentagem do tráfego para outro serviço, em nosso caso, vamos direcionar 30% para a versão B e os outros 70% vamos deixar para o site versão A.
weigth: 70 >> Esta linha adicional informa que a rota padrão deverá receber um "peso" de 70%.
Agora basta enviar para seus beta-testers e coletar o retorno para verificar qual será a versão final.
Comentários
0 comentário
Por favor, entre para comentar.