Simplicidade e atenção aos detalhes são pontos importantes para evitar deploys complexos e reduzir a possibilidade de problemas em sistemas de função crítica
Atualizações de software costumam ser momentos tensos na estrutura de TI das empresas. Por mais que tudo tenha sido aprovado, testado várias vezes e esteja pronto para o go live, sempre existe um elemento de incerteza no deploy de uma solução. Com grande frequência, alguma interação não prevista do novo código com sistemas antigos causa uma reação diferente e gera bugs que podem trazer prejuízos, interrupção de funcionamento ou problemas de segurança.
Mudanças de plataforma e lançamento de novos features são importantes para que seu e-commerce se mantenha à frente da concorrência. Upgrades e atualizações são, porém, os momentos em que mais erros acontecem. Para evitar que o deploy se transforme em um problema e aumentar a possibilidade de que os processos continuem a funcionar com toda a eficiência, vale ficar atento a alguns pontos importantes:
Quanto mais testes forem feitos, menores as possibilidades de erro. Antecipe os problemas que podem acontecer, avise as áreas da empresa que serão impactadas e tenha uma estratégia de rollback para lidar com casos mais complexos. Uma estratégia bem desenvolvida permite rapidamente que sistemas sejam devolvidos à versão anterior caso seja identificado um problema sério, evitando downtime em funcionalidades críticas e mantendo a operação no ar. Pode ser possível, por exemplo, admitir um pequeno downtime na operação logística (desde que não impactem o prazo final de entrega), mas não no frontend.
Adote uma abordagem ágil para seu e-commerce (e, por que não, para toda sua operação de varejo) e capacite toda sua equipe a agir em um ambiente de negócios em que erros podem ocorrer, desde que sejam solucionados ou revertidos rapidamente.
Não faça o desenvolvimento no ambiente de produção. A dica pode parecer óbvia para alguns, mas em empresas com governança de TI menos sólida isso é mais frequente do que o desejado. Quando desenvolvimento e produção estão em ambientes diferentes, é possível testar todas as possibilidades existentes sem que as modificações impactem a operação da loja. Uma vez que todos os erros tenham sido identificados, aí sim ocorre o deploy.
No deploy dos sistemas de e-commerce, definitivamente menos é mais. Dividir um grande release de software em dezenas de pequenos upgrades é uma abordagem que traz uma série de vantagens:
Na prática, uma abordagem de múltiplos mini-deploys faz com que o código do software esteja sempre em atualização. Para que essa abordagem “líquida” funcione, é preciso dar uma atenção muito maior aos processos de checagem, à documentação e à governança de TI como um todo. Quando bem realizada, porém, essa abordagem acelera o desenvolvimento de soluções em toda a operação do varejo.
É uma boa prática congelar o deploy dos sistemas em períodos de grande movimento. Ninguém quer correr o risco de enfrentar algum problema durante a Black Friday ou o Natal, que já são épocas bastante tensas. Evite, sempre que possível, o deploy nesses períodos e, com isso, diminua a complexidade de seu negócio.
O uso de plataformas de desenvolvimento em nuvem acelera a integração com o ambiente de produção e permite que deploys e rollbacks sejam feitos mais rapidamente, com menor impacto ao ambiente de negócios. Esse conceito está na base, por exemplo, do VTEX IO, a plataforma de desenvolvimento da VTEX baseada em frameworks e workplaces sobre os quais blocos de aplicações são criados, testados e implementados. O uso de recursos em nuvem faz com que não haja conflitos de versões entre ambientes, especialmente quando o desenvolvimento é feito em vários locais.
A atividade de desenvolvimento de software é cada vez mais importante para uma boa operação de varejo. Simplificar o deploy é uma maneira de ganhar agilidade, evitar problemas e reduzir custos de implementação.