Introdução
Você que tem um aplicativo web com alto potencial de crescimento, ou já tem muitos usuários, você provavelmente já deve ter optado por algum método de desenvolvimento ágil (veja mais aqui). O Continuous Deployment depende muito mais da sua cultura empresarial ou de seus clientes do que de tecnologia ou metodologia.
Uma vez tendo essa cultura, você deve modelar ou adaptar seu produto para tal. E como fazemos isso? Como podemos acelerar o processo de implementação e entregas? Neste artigo tentarei fazer uma breve introdução ao método Continuous Deployment sem me apegar muito às tecnologias. Assim você fica livre para pesquisar mais sobre a melhor tecnologia para o seu produto.
Controle de Versão
Antes de mais nada, você precisa estar equipado com um bom controle de versão. Especificamente para programadores, o GIT (http://git-scm.com/) é o que mais recomendo, que juntamente com o GitHub (https://github.com/), torna-se um controlador poderoso.
Processo
O Continuous Deployment é uma metodologia que promete rápidas entregas e melhorias constantes do seu produto. Ela é dividida em 5 principais etapas.
Tirando a codificação, todas as demais etapas podem ser automatizadas. Após o deploy você ainda tem uma sexta etapa que seria a de medição e análise dos resultados, que servirá de input para as próximas tarefas da codificação.
Entenda as etapas:
1. Codificação
Tenha uma boa IDE e um bom ambiente de desenvolvimento. Muita coisa repetitiva pode ser automatizada. Além disso, com um controlador de versão você consegue compartilhar o que você está fazendo com os demais desenvolvedores.
2. Teste Unitário
Quebre cada funcionalidade em unidades menores e testáveis. Com uma boa suíte de testes e muita disciplina em TDD (test driven development) você criará uma fábrica de testes impecável.
3. Integração
Com um bom controle de versão, esta etapa fica completamente automatizada e rápida.
4. Aceitação
Apesar de nesta etapa muita coisa pode ser automatizada (testes E2E, por exemplo), geralmente é necessário uma homologação por um humano. Portanto, tenha um processo de testes bem definido.
5. Deploy
É aqui que fica o coração do Continuous Deployment. Quanto mais você automatizar esta etapa, mais rápidas e frequentes serão suas entregas.
Para isso, suas principais preocupações devem ser:
- Atualização do Código – as atualizações devem ser imperceptíveis para o usuário. Se toda hora que ele entrar no seu sistema ele vê uma mensagem de “estamos atualizando”, está tudo errado.
- Atualização dos Dados – muito provavelmente sua estrutura de dados vive sendo atualizada. A melhor coisa é usar alguma arquitetura ou banco de dados voláteis que você consiga manipular sem ter que ficar fazendo migração.
- Reversão – Às vezes deixamos escapar algum bug grave que acaba indo pro ar e identificado tardiamente. Seu sistema deve ser capaz de reverter para uma versão estável sem comprometer o usuário.
- Sistema de Análise – Seja o Google Analytics, ou Mixpanel, ou qualquer outro, será importante pra detectar qualquer forma de anomalida no sistema, além de insights de melhorias.
- Sistema de Feedback – Tenha sempre em mãos pois será muito útil para identificar problemas que só os usuários conseguiriam.
Exatamente por causa disso que um servidor escalável e sem complicações de configuração pode ser um grande diferencial. O Jelastic Cloud oferece exatamente isso – além de ter um gerenciamento muito simples.
Para ver mais detalhes sobre ele, clique aqui.
Conclusão
Produto bom é aquele que sempre está melhorando. Não existe produto perfeito nem livre de bugs. A maior parte do seu tempo de desenvolvimento será voltado para melhorias e correção de falhas.
Não é porque uma funcionalidade sua não está bem que você deva começar tudo novamente do zero. Isso será custoso e demorado. As melhorias devem ser contínuas e incrementais. Você deve sempre adicionar valor ao que você já tem.
Tendo a cultura de entrega contínua, você não garantirá um sistema a prova de falhas, mas garantirá resoluções rápidas.
Abraços,
Mauro Ribeiro (subindo continuamente)
The post Introdução ao Continuous Deployment appeared first on Saia do Lugar.