2.17 - Canary Release

Canary release é uma técnica utilizada para reduzir o risco de introduzir uma nova versão de software em ambiente de produção, lançando lentamente a mudança para um pequeno grupo de usuários antes de lançá-lo para toda a infra-estrutura e disponibilizá-lo para todos.

Preparando nossa aplicação

Vamos lançar uma nova versão da nossa aplicação e aplicar a técnica de Canary Release. Para isso, vamos criar um branch no git contendo nosso código mais novo.

Na raiz do seu repositório git, execute:

git branch v3.0
git checkout v3.0

Agora vamos editar o arquivo e alterar a versão da nossa aplicação para 3.0 conforme abaixo:

<?php
echo "<h1>Openshift Workshop v3.0</h1> ";
echo $_SERVER['SERVER_ADDR']
?>

Quando finalizado, podemos agora fazer o commit e push para nosso repositório.

git add index.php
git commit -m "v3.0"
git push origin v3.0

Se fizemos tudo certo, em nosso Github deve existir um novo branch:

Criando nova versão no Openshift

Precisamos criar uma nova versão da nossa aplicação usando o branch v3.0.

Selecione no menu superior Add to project

  • Selecione o template PHP no submenu Browser Catalog.

  • Selecione o template PHP na versão 7.0.

  • Preencha o campo Name com o valor workshop-php-v3

  • Preencha o campo Git Repository URL com o valor https://github.com/<seu-usuario>/workshop-ocp.git

  • Clique em Show advanced options

  • Preencha o campo Git Reference com o valor v3.0

  • Desça a página toda e clique em Create

Quando tudo finalizar, teremos 2 versões da nossa aplicação rodando no Openshift.

Se abrirmos o link da primeira versão temos:

E se abrirmos o link da última versão que criamos:

A URL de acesso da primeira versão é a única que nossos usuários conhecem e portanto é nela que iremos fazer a separação da quantidade de acesso.

Vamos configurar para que a versão 3.0 tenha somente 10% dos acessos enquanto a versão 1.0 terá 90%.

  • Clique em Applications -> Routes

  • Na tabela, seleciona a rota de nome workshop-php

  • No menu superior direito clique em Actions -> Edit

  • Selecione o campo Split traffic across multiple services

  • Arraste a barra para que o fique somente 10% para o workshop-php-v3

E altere os valores conforme figura abaixo:

Assim que salvarmos, o Openshift irá mostrar uma tela com as configurações que escolhemos.

E também na tela inicial temos um aviso que o acesso está sendo divido.

Testando a divisão de acesso na nossa aplicação

Para testarmos que realmente 90% do acesso está indo para versão 1.0 e 10% para v3.0, vamos usar um comando do shell:

while [ true ]; do curl http://workshop-php-testdrive.apps.ocp.rhbrlab.com/; sleep 1.3; echo; done

Esse comando irá executar um curl na sua aplicaçao em cada 1s.

Altere a url acima de acordo com a sua aplicação.

Perceba que a cada 10 requisições para nossa aplicação, 1 é enviada para a versão 3.0.

Last updated