Nosso blog

DevOps: Você realmente conhece o conceito?

Um assunto que vem despertando mais e mais interesse é o conceito de DevOps. Fácil de comprovar. Basta ir ao Google Trends, colocar DevOps como keyword e ver o gráfico mostrando que o nível de interesse cresce rapidamente. E em 2011, era um tema praticamente inexistente como palavra chave de buscas.


o acordo entre as áreas de desenvolvimento e ti

Pesquisando aqui e ali achei um relatório muito interessante, chamado "2013 State of DevOps Report", publicado pela Puppet Labs.

O relatório foi feito a partir de uma pesquisa com 4.000 profissionais de TI, tanto de operações como desenvolvedores. Mostra que a adoção desta prática está se acelerando. Os números mostram que 63% dos pesquisados disseram que suas empresas já adotam o conceito e entre os benefícios reportam que conseguem entregar código 30 vezes mais rápido e com 50% menos falhas. Ora, simplesmente por esses números, creio que todo executivo responsável pelo que chamamos TI nas empresas devem, no mínimo, estudar o assunto. Ignorá-lo pode significar perder excelente oportunidade de virar o jogo, ou seja, desenvolver e entregar sistemas muito mais rapidamente que hoje. Esta é uma demanda insaciável. Tempo é cada vez mais reduzido e a competição no cenário de negócios vem de todos os lados. As áreas de TI que não conseguem acompanhar o ritmo das demandas do negócio tendem a se tornar secundárias. Perdem a oportunidade de ser contributivas para novos negócios e acabam apenas responsáveis pela "casa das máquinas", ou seja, necessário, mas simplesmente operacional. Como sugestão de leitura para entender melhor o conceito recomendo este paper: "What exactly is DevOps?".

DevOps é uma mudança das práticas convencionais de desenvolvimento e entrega de sistemas. Provoca, claro, reações contrárias, como o famoso "não é novidade, sempre fizemos isso", mas, por outro lado gera benefícios de mudanças comportamentais, como uma maior colaboração entre desenvolvimento e operações. Estes setores sempre atuaram de forma compartimentalizada, com objetivos diferentes. É absolutamente necessário para as empresas criarem coisas novas e rapidamente, para explorar as janelas de oportunidade que cada vez mais se encurtam. O setor de desenvolvimento busca criar estas coisas novas e rápidas (os métodos ágeis são um exemplo). Por outro lado, operações precisa garantir a estabilidade do ambiente operacional de TI. Esta é sua missão e qualquer novidade que perturba seu ambiente não é bem visto. O desafio é como conciliar estes objetivos divergentes.

Tem até uma piada que mostra esta divergência de forma bem humorada: " Confuse of Dev or Ops? Simple rule: if you are praise for web site success, you are Dev; if you are blame when web site down, you are Ops".

A questão da integração entre desenvolvimento e operações é fundamental. Apenas olhar um lado da equação não é suficiente. Por exemplo, nos últimos anos vimos uma verdadeira explosão dos métodos ágeis, com encurtamento significativo dos prazos de desenvolvimento. Mas o deployment dos sistemas não avançou na mesma velocidade. A causa é direta: falta de colaboração entre os setores de desenvolvimento e operações. Implementar métodos ágeis sem mudança nas práticas que envolvam o deployment (operações) apenas piora as coisas. O mesmo acontece quando operações busca criar processos mais padronizados, como adoção de práticas como ITIL e deixa em segundo plano a velocidade que o desenvolvimento demanda. O resultado de tentarmos otimizar os dois lados da equação, desenvolvimento e operações, de forma estanque, é a criação de mais barreiras e burocracias, gerando menos eficiência. Tiro n´água.

O conceito de DevOps começou a despertar atenção quando se descobriu que as principais empresas do mundo da Internet como Google, Amazon, Facebook, Twitter e outras o adotam como prática básica. As grandes empresas da Internet apresentam números impressionantes. Por exemplo, a Amazon faz uma mudança em seus sistemas, em média, uma vez a cada 11,6 segundos! Outros benefícios que estas empresas conseguiram foi se recuperarem de paradas muito rapidamente e os números da pesquisa mostram uma taxa de falhas bem baixa. Voltando ao exemplo da Amazon, apenas 0,001% dos deployments causaram uma pane (outage) no sistema. A média de falhas geradas pelas empresas que adotaram DevOps é cerca de 50 vezes menor em comparação das que não usam esta prática. Imaginem, o que é reduzir em 50 vezes o numero de falhas.Muito menos esforço e recursos dispendidos em refazer coisas que já deveriam estar prontas e muito mais confiabilidade nos deployments. Cada vez mais fundamental em um ambiente de negócios hiperconectado, com usuários acessando seus sistemas baseados em nuvem, via smartphones e tablets.

DevOps é uma evolução nas práticas que chamamos de gestão do ciclo de vida dos sistemas ou Application Development Life cycle Management (ADLM). Demanda tecnologia sim, mas principalmente mudanças culturais, funcionais e organizacionais em TI. Em termos de tecnologia o quadrante magico do Gartner coloca duas empresas IBM e Microsoft como lideres, ao lado de empresas menores como Rally e CollabNet. Instrumentação tecnológica para automação do ciclo de vida, como controle de versões e deployment automático de código é essencial, mas é necessário ir além. As principais barreiras são o desconhecimento do conceito (e muito frequentemente a confusão que apenas implementar método ágeis resolve.vimos que não, pois apenas endereça um lado da equação), cultural (ambiente que não incentiva colaboração), e falta de capacitação, tanto gerencial como dos profissionais técnicos, no desenvolvimento e em operações. O diálogo entre desenvolvimento e operações é fundamental. Importante frisar que DevOps não implica que os desenvolvedores vão operar seus sistemas. Não, esta é a função do grupo de operações. O que DevOps incentiva é um processo colaborativo entre estes dois setores estanques, de modo que eles atuem em harmonia, criando uma prática de entrega contínua de software. Não existe mais a barreira do desenvolvimento parar o processo, criar um protocolo de solicitação ao grupo de operações e aguardar que este setor responda. Os dois setores atuando em conjunto fazem com que o processo seja continuo ou seja, sai-se do código para a nuvem de produção, sem interrupções. Em resumo, vale a pena ler a pesquisa e refletir. E aí, indagar, porque ainda não adotamos DevOps?


Por Cezar Taurion - tiespecialistas

comentários via Disqus