De acordo com a empresa Nolio, em seu primeiro video de uma série de melhores práticas para DevOps, empresas utilizam a técnica de "Canary Deployments" para testar software em produção, redirecionando um subgrupo de usuários para uma nova funcionalidade como parte das práticas de continuous delivery (entregas contínuas). Um deploy "canary" (de canário de mina) é um tipo de versão incremental, instalada em paralelo à versão de produção. Executar múltiplas versões de um produto em uma mesma infraestrutura depende de software projetado para este tipo de configuração e de uma perfeita automação do processo de deploy.
Superar os desafios técnicos relacionados aos Canary Deployments reduz os riscos no processo de deploy, e possibilita testes A/B e testes de performance preventivos. Testes A/B permitem que os testes de novos requisitos se restrinjam apenas a um grupo reduzido de usuários, sem afetar o sistema por completo. Além disso, a execução de testes de performance não afeta o desempenho do sistema como um todo.
Segundo a Nolio, a aplicação de Canary Deployments consiste das seguintes etapas:
- Estabelecer uma plataforma de artefatos para deploy incluindo artefatos de build, scripts de testes, arquivos de configuração e manifestos de deploy;
- Remover servidores canário do balanceador de carga;
- Atualizar a aplicação canário (drenagem e implantação);
- Realizar testes automatizados da aplicação;
- Recuperar servidores canário de volta ao balanceador de carga (conectividade e testes de sanidade);
- Atualizar o restante dos servidores, caso os testes da versão canário forem bem sucedidos (ou executar rollback caso contrário).
A Nolio incluiu na sua apresentação uma visão geral do uso de seu produto, para uma orquestração de nível mais alto referente os deploys "canário". A empresa utiliza um modelo de aplicação que pode ser reutilizado em diversos processos, guiando o uso destes através de seus dados. A administração, assim como a emissão de relatórios pode ser realizada de forma paralela ao "deploy canário".