Desenvolver um projeto é uma coisa, colocar em produção é outra completamente diferente. Você sabe cuidar de um projeto em produção?
Se você entendeu bem o nosso último texto e está se preparando para ser um bom desenvolvedor, sabe que a entrega é a parte mais importante do seu trabalho, e uma entrega, de fato, é seu projeto estar em produção. E é aqui que de fato o seu projeto começa.
Uma coisa é desenvolver o seu projeto localmente, ou até em um ambiente controlado de teste. Outra coisa é quando usuários começam a usar. Agora, problemas inesperados podem surgir, soluções rápidas precisarão acontecer, e melhorias precisarão serem feitas.
Ter um projeto em produção significa ter responsabilidade constante sobre o produto. É ter uma infraestrutura potente o suficiente para aguentar a demanda de seus usuários; estar atento a bugs e resolver o que for preciso o mais rápido possível e da melhor forma possível; trabalhar em melhorias, e principalmente saber como trabalhar com essas melhorias para o seu projeto.
Confira a infraestrutura de seu projeto
Quando milhares de pessoas acessam seu projeto, tudo pode acontecer: a aplicação ficar lenta, apresentar algum comportamento não esperado e até mesmo ficar completamente fora do ar. Pouco importa se você tem um código bem feito, limpo de bugs e problemas se a infraestrutura não suportar a demanda.
Sua aplicação está disponível na nuvem? Os serviços desenvolvidos são escaláveis? Existem políticas de balanceamento de carga? Existe uma solução para cache? A estrutura é elástica o suficiente para suportar a demanda? Foram feitos testes de sobrecarga para entender até onde a aplicação suporta tudo isso? São essas as perguntas que sempre devemos fazer quando um projeto está entrando em produção.
Não basta até que seu projeto esteja “funcionando”. Em produção o seu projeto funcionar “sempre”.
Monitore o que acontece na aplicação
Acabo de dizer que é importante que seu projeto funcione “sempre”. Mas como saber que está, realmente, sempre funcionando?
Você precisa ter ferramentas de monitoramento e métricas para ser possível identificar possíveis gargalos e problemas com o seu projeto. É importante que você veja se sua aplicação realmente está no ar, se há algum log de erro desconhecido e não tratado acontecendo, se está lento demais e até mesmo se o comportamento do cliente, como vendas, buscas por um produto e taxa de conversão estão de acordo com a proposta de negócio da sua aplicação.
Serviços como Sentry, New Relic, ou até dashboards do Grafana, ou Prometheus podem te ajudar com isso. Com eles é possível monitorar em tempo real, conferir logs, e até ter alertas, relacionados a certas métricas para te chamar atenção a cada possível problema.
Tenha protocolos de deployment
Quem nunca teve medo de subir um código em produção? Errado é quem não tem.
Subir um código em produção significa ter uma mudança imediata no seu produto que pode afetar milhares de clientes ao mesmo tempo. Pode ser uma ótima melhoria para seu projeto, mas também pode ser um comportamento não esperado, um bug, um erro no código que irá acabar com o seu produto.
Versionamento da aplicação, um bom fluxo no Git, testes bem feitos e até automatizados, e até um monitoramento mais preciso pós uma nova versão em produção irão te ajudar. Combine com o seu time estes protocolos, valide bem qualquer alteração no código e principalmente esteja atento.
É agora que o trabalho começa
É somente em produção que entendemos melhor o nosso produto.
É agora que começamos a ver como realmente é o nosso produto, se os usuários se comportam como o esperado, se os usuários sentem falta de algum recurso importante e até se o produto foi mesmo bem desenvolvido.
Uma aplicação nunca deixa de ser desenvolvida, sempre precisa de melhorias, de refinamento, de novos recursos. O produto sempre precisa evoluir. E é aí que o seu trabalho realmente começa.
Em produção, você terá um mundo de oportunidades para mostrar o seu trabalho.