Continuous Operation – a evolução do Continuous Delivery…

O Continuous Delivery ou entrega contínua é algo desejável para qualquer negócio. Ter entregas de novas funcionalidades a todo momento acompanhando as constantes mudanças do  mercado é algo que gera valor para o software disponibilizado, tornando-o mais competitivo. Do outro lado, ter um ambiente disponível e sem erros a todo momento é tão importante quanto as entregas de novas funcionalidades.

Cenários:

CASO 1: Um ambiente cheio de falhas porém sempre atualizado (continuous delivery) com as novas “funcionalidades”.

CASO 2: Um ambiente extremamente estável porém com um processo extremamente rígido para lançar uma nova versão .

 

Vejo que temos problemas nos dois cenários, certo? Nenhum deles atenderia as necessidades de uma empresa e nem dos usuários finais. Para ilustrar, vou aplicar os cenários acima em um E-commerce:

No primeiro caso, você perderia vários clientes. Quando ocorre um erro, ainda mais em sistemas de compras, muitas pessoas desistiriam da aquisição e iriam para o fornecedor vizinho.

Já no segundo caso você deixaria de ser competitivo, pois sem versões atualizadas e novas funcionalidades, você perderia o time-to-market. Ou seja, sem novas funcionalidades teríamos algo mais atrativo no vizinho.

Mas, os dois cenários acima podem representar uma falsa dicotomia: podemos sim, ter um ambiente atualizável e com indisponibilidade zero ou perto disso. Existem várias implicações para que isso ocorra. Seguem algumas:

 

1. Infraestrutura Cara

Teríamos que ter uma estrutura de chaveamento muito rápido para termos um ambiente com indisponibilidade perto de zero para lançamento de novas versões. Cloud Computing torna-se uma ótima alternativa para atingir a agilidade para realizar os chaveamentos sem a necessidade de ter um alto custo com infraestrutura.

2. Automação de Testes Efetivo

Manter trilhas de testes atualizadas e condizentes as novas funcionalidades do sistema, garantindo a qualidade da versão que entrará em produção

 

3. Gestão de Equipe DevOps

Alta integração entre equipes de Desenvolvimento e Operações para criação e gestão dos ambientes, visando respostas rápidas ao negócio

4. Automação Total

É caro fazer as coisas na “mão” tira o foco das equipes envolvidas, por isso automação de processos rotineiros é de extrema importância. Utilizar ferramentas como Chef, Puppet, Jenkins, Git, entre outros, torna-se vital para atingir a agilidade necessária para o ambiente de entrega contínua.

 

A entrega contínua é só uma parte do processo a ser realizado. O maior desafio está na evolução do processo, através do chamado Continuous Operations.

O Gartner define Continuous Operation como “um sistema em operação que tem como característica a redução ou eliminação de tempo de inatividade planejada, como, por exemplo, uma manutenção programada. Um sistema “no ar” 24 horas por dia, sete dias por semana”.

Conseguimos alcançar o que chamamos de Operações Contínuas quando há alterações no software e os usuários finais não são prejudicados. Um software ou servidor é tirado do ar durante uma manutenção e são aplicadas técnicas de operações para que os clientes continuem sendo atendidos por versões anteriores ou são transferidas para a versão mais recente do software, sem que a operação pare ou que que eles se sintam impactados.

Ou seja, com a aplicação do conceito de operação contínua, as empresas conseguem gerar de fato valor para o negócio. Conseguem ter um ambiente estável, atualizável rapidamente, com qualidade e disponibilidade a todo momento para seus usuários finais.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s