Deploy & Rollback: 5 minutos é o limite!

Blog Mosaico
5 min readSep 19, 2022
Pessoa desenvolvedora trabalhando em códigos no notebook.

Atenção, organização, cuidado e habilidades técnicas fazem parte das skills importantes para todo desenvolvedor. Mesmo que você tenha prazos curtos e ritmo acelerado, o erro causado pelo engano pode gerar um retrabalho que custa ainda mais.

No entanto, como em toda e qualquer profissão, erros acontecem. A habilidade de encontrá-los de maneira rápida e conseguir, dentro do squad, resolvê-los rapidamente é um diferencial-chave para o mercado.

Na Mosaico, temos nosso método de ação. 5 minutos é o tempo que a gente leva para entender qual o impacto/erro em um deploy para voltarmos à versão anterior.

E é sobre isso que vamos falar hoje. As melhores práticas de correção de códigos e por que o rollback pode ser bastante necessário.

A hora da verdade

Desenvolvedora em atuação com três telas e uma mesa de trabalho com vários objetos

Todo o trabalho de um código, do seu desenvolvimento até a sua implantação, é uma etapa do todo. O grande momento é quando ele começa a rodar. Isto porque a obra de todo artista só faz sentido no momento em que chega ao público.

A gente pode estar amando escrever este texto, mas ele só faz sentido se você estiver curtindo e chegar até o final com um insight ou desejo bacana que vem da leitura. Em termos de programação, a coisa não é muito diferente.

É quando o site ou aplicação prontos chegam no cliente que temos a hora da verdade. Chamamos de deploy o momento do “friozinho na barriga”. Na nossa máquina pode estar tudo lindo, entretanto, é na mão de outras pessoas, de diferentes acessos, que tudo precisa funcionar perfeitamente.

Deploy é a aplicação no ar, seja em ambiente de desenvolvimento, de teste ou em produção. Já o rollback é a operação que chega para apagar incêndios.

Podemos traduzir para “reversão”, já que se trata de retomar a integridade do projeto, código ou banco de dados, restaurando uma cópia limpa, mesmo após alguma ação incorreta.

Só que o ideal sempre é que essa reversão não gere interrupções para os clientes. Ter fases de deploy bem definidas e segurança nos rollbacks elimina a necessidade da confiança exagerada na análise manual.

Boas práticas de deploy: use todos os minutos que precisar!

Se você gosta de jogos de videogame, já passou por aquela atualização que deixa o seu amado joguinho cheio de “bugs” que antes não existiam? Ninguém merece acabar o expediente e ainda ter que passar por esses estresses na hora de lazer.

Agora, se o videogame não é algo tão sério assim, imagina esse tipo de coisa inconveniente em um marketplace, gerando problemas para o consumidor que quer um produto para ontem.

Sendo assim, existem boas práticas que chegam para evitar o tal dos 5 minutinhos. São cuidados na hora do deploy que vão fazer toda a diferença para um código limpo e seguro. Por isso, use todos os minutos que tiver à sua disposição.

Usar o Git

Ter um controle de versão como o GIT junto com o Github pode ser importante para criar um processo de deploy mais seguro. Caso tenha qualquer problema no deploy, com o Git é mais fácil voltar para a versão anterior ou até mesmo testar uma versão específica para encontrar erros.

Ambiente local como ambiente de desenvolvimento

Usar sua máquina para desenvolver, testar e errar deixa o desenvolvimento mais ágil, e a flexibilidade também é maior. O único problema é ter que baixar todas as dependências para rodar o deploy. Isso também mantém os outros ambientes seguros de problemas.

O famoso “double check”

Por mais que seu código já tenha passado por testes e sido aprovado, sempre dá para dar uma olhadinha final, não é mesmo? Faça uma verificação das diferenças entre os códigos antes do deploy.

Muita calma, jovem gafanhoto

Fez o deploy e começou a “quebração”? Calma lá, isso acontece com todo desenvolvedor. É importante não fazer nada no impulso. Respire, pense nas possibilidades de resolução:

Você sabe resolver o problema?
Quanto tempo iria levar?
Se você não tem ideia, quem do seu squad você pode acionar?

Os cinco minutinhos de ouro

Aqui na Mosaico, o código quebrou? A gente já sabe o que fazer. Temos, em média, é claro, cinco minutos para tomar a decisão e fazer um rollback (voltar para a versão anterior que estava funcionando, e retomar a investigação do problema).

Como utilizamos Golang em várias de nossas aplicações, os erros não são ocultos e os consideramos parte do operacional. A revisão/debug do código é sempre muito importante do código.

Chama ele: o profissional DevOps

O que fazer quando temos um problema e o rollback tem que aparecer o quanto antes? Seja para um processo automatizado, ou manual, nunca é hora ruim para chamar ele: o herói DevOps.

Esse é o profissional responsável por introduzir metodologias para garantir a qualidade dos processos ao longo de todo o ciclo de vida de um software. Da criação até as etapas de manutenção.

Conclusão e dicas finais:

Aprender a lidar com os erros é uma lição para a vida. Problemas no deploy vão acontecer por mais que sejamos bons e cuidadosos profissionais. Ainda assim, é tudo o que a gente não quer que aconteça, certo? Por isso, abra suas notas aí no computador (ou se você ainda for daqueles que gosta do papel e caneta) e RECEBA as dicas finais:

  • Não faça um deploy na sexta: a não ser que você esteja super a fim de não tomar aquela gelada no sábado para resolver problema de código
  • Faça escalas com o time. Quem fica de sobreaviso caso aconteça algum problema em horários e dias complicados?
  • Tenha sistema de alertas caso aconteça algo grave para rodar um rollback simples o quanto antes
  • Faça deploys quando o número de usuários ativos for menor. Por exemplo, em um sábado, dia 1, com todo mundo com o salário na mão, talvez não seja a melhor hora para rolar um deploy em um site de e-commerce.

Se identificou e até ficou nervoso com alguns cenários? Calma, o importante é ter uma equipe qualificada e legal para lidar até com os perrengues.

Você curtiu essa publicação? Que tal acompanhar mais conteúdos da Mosaico no seu dia a dia? Siga nossas redes sociais e fique ligado. Esperamos você!

--

--