DevOps: Será mais uma moda ou questão de SOBREVIVÊNCIA.

A abordagem DevOps veio para atender às demandas ágeis, mas tem sido encarada de forma bem superficial (arrisco dizer amadora).

“Mas como responder rapidamente às mudanças?!”

A cultura DevOps precisa ser levada mais a sério, não somente na minha opinião, mas observando a direção em que os negócios vem tomando. Lendo o artigo do Taurion “DevOps será o alicerce da próxima revolução tecnológica”, ele cita claramente a diferença entre as empresas cujo modelo de negócio é “analógico” e as empresas que utilizam um modelo de negócio digital.

“O que é pensar digital em TI? Simples: criar uma TI bimodal e adotar os princípios de DevOps e entrega contínua! Sair de entregas complexas a cada 4- 6 meses para múltiplas entregas por semana, ou por dia. Como fazer? Primeiro simplificando e desburocratizando os processos. Adotar modelo de programação modular e baseado em APIs.”

Fonte: Computer World.

Neste post quero enfatizar que nem sempre a visão da importância de DevOps é clara para os envolvidos. Cada um está preocupado com o seu lado. Como se o resultado final dependesse deste pensamento: minha parte está funcionando.

Ok, mas o que é DevOps mesmo?

How-does-DevOps-help-your-business-to-grow-336x336[1]

O termo DevOps veio da fusão do termo “development” (dev, devel) e o termo “operations” (infra, infraestrutura).
Seu surgimento foi em meados do 2008 durante uma conferência Ágil, onde surgiu a necessidade de uma “infraestrutura ágil” para atender as demandas do manifesto Ágil. Porém somente em 2009 o termo DevOps foi apresentado por Paul Hammond e John Allspaw com o trabalho “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr“.

A abordagem gira em torno da sinergia entre a equipe de desenvolvimento e a infraestrutura. Ambos focando no resultado, que é a melhoria continua e sustentável do produto, e conhecendo sua participação no todo através de uma visão sistêmica.

O negócio da empresa depende disso, depende de atender as mudanças rápidas no software. O produto vai evoluir, ele precisa evoluir, ele deve atender às demandas, as mudanças virão no código, na infraestrutura, na topologia.

Papo Dev: “Não é o meu código, é o ambiente!”

worksonmymachine[1]

Você pode ter pensado ou dito isso algumas vezes nesta semana, pode ter escapado… Claro que você pode ter pensado nisso se defendendo. Pare pra pensar por um segundo.

As coisas mudaram, seu código precisa ser construído se preocupando com a instalação, o ambiente, as configurações, as mudanças. As estratégias de failback, testes unitários, testes automatizados precisam sair dos livros, dos artigos, ou seja, a teoria precisa virar prática. Seu ambiente de desenvolvimento precisa ser cada vez mais parecido, ou até igual, ao ambiente que o seu código irá encontrar em produção, não acha?

Por mais que você se orgulhe do seu código e que ele vai funcionar desde que tudo seja instalado corretamente você precisa se reciclar!

Papo Op: “Não é meu computador, é o seu código!”

Keep-Calm-1[1]

“Está tudo certo com os servidores, as bases de dados estão no ar, serviços estão ativos, as regras para o uso do ambiente são claras, estamos focados em segurança, UPTIME e estabilidade. Se o pessoal do desenvolvimento parasse de inventar coisas, tudo seria mais fácil.”

A equipe de infra precisa se atentar as mudanças e prover uma infraestrutura leve, customizável e flexível para que a equipe de desenvolvimento produza as modificações no produto sem que a diferença entre o ambiente de desenvolvimento e o ambiente de produção seja “o problema”.

O papel da infra é e sempre foi manter o ambiente de forma que o produto fique estável, e isso está certo. Mas agora temos um desafio a agregar, esse produto vai crescer, e é essencial que a evolução deste produto seja estável, precisamos evitar e diminuir as quebras.

E o cliente?

2000px-Devops.svg[1]

Ambas equipes sempre terão mil razões para justificar o erro do outro. Mas agora precisamos exercitar a empatia… e o Cliente? Aquele que usa o software e muitas vezes paga seu salário, ele aceitará essas razões?

Na maioria das vezes as equipe de desenvolvimento e infra são da mesma empresa e é muito feio (é horrível) ficar com o “jogo de empurra”, um jogando a culpa para o outro. Muitas vezes, para quem vê de fora, a impressão é que as pessoas não se conversam.

O ponto é comunicação.

O cliente precisa desta segurança, ele precisa confiar que com a mesma seriedade e qualidade com que o produto é contratado, ele será construído, mantido, evoluído e entregue.

Visão macro da abordagem DevOps

circulo_devops_culture_full[1]

O objetivo da abordagem DevOps gira em torno de toda entrega do produto, incluíndo:

  • Melhorar o “time to market”;
  • Construção Contínua;
  • Entrega contínua:
    • Automação de um deploy;
    • Melhoria na frequência dos deploys;
    • Diminuição do ciclo de vida até um novo deploy;
  • Garantia de qualidade:
    • Ambiente pronto para TDD;
    • Diminuição da taxa de erros em cada release;
    • Diminuição do tempo entre a descoberta e a correção de um bug;
    • Diminuição do tempo entre a descoberta de um erro de produção e uma nova release correta, ou ainda;
    • Plano de rollback;
  • Gestão de configuração;
  • Automação do controle, monitoramento e orquestração;
  • Infraestrutura como código;
  • Gestâo dinâmica de ambiente;
  • Participação nas definições de evolução do produto junto com o desenvolvimento;
  • Pessoal capacitado para resposta rápida em caso de falhas no processo;
  • Estratégia de backup e restore “quente”;

Existe um especialista no assunto, Guto Carvalho, que definiu muito bem o assunto em seu post O que é DevOps afinal?, recomendo que você leia para se aprofundar.

Virando o jogo

Sua empresa não implantou nenhuma metodologia Àgil, muito menos alguma abordagem DevOps.

Lembre-se que a humanidade aprendeu a gostar dos dinossauros, adoramos suas histórias, filmes, pesquisas arqueológicas. Mas espere ai! ELES ESTÃO EXTÍNTOS. Existe um sério risco que você não atender as demandas ágeis e deixar de existir.

Sua empresa implantou a metodologia Àgil mas não focou em infraestrutura ou abordagem DevOps

Tenho uma palavra para você “sobrevivência”. O artigo “DevOps será o alicerce da próxima revolução tecnológica” deixa claro sobre as limitações da forma analógica (antiga) dos negócios. Dê a verdadeira importancia a abordagem DevOps logo!

Sua empresa implantou a metodologia Àgil, mas você ainda vê algumas “coisas erradas”.

Não deixe a peteca cair se atualize. Sendo da equipe de desenvolvimento ou de infra, ou ainda dos DevOps. Apoio para que o negócio simplesmente seja fluente. Encontre gargalos, soluções, ferramentas, erros. Sugira melhorias, idéias, converse, motive.

 

Livros sugeridos

  1. DevOps for Dummies. Sanjeev Sharma e Bernie Coyne;
  2. Agile for Dummies. Amy Silberbauer e Bernie Coyne;
  3. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Jez Humble & David Farley.
  4. Continuous Integration: Improving Software Quality and Reducing Risk. Paul M. Duvall.

Referências

  1. Wikipedia;
  2. ITRevolution.com: The Convergence of DevOps;
  3. Guto Carvalho: O que é DevOps afinal?
  4. Computer World: DevOps será o alicerce da próxima revolução tecnológica;
  5. 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr;

Imagens

  • http://www.cloudtp.com/wp-content/uploads/2015/01/Keep-Calm-1.jpg
  • http://www.monitis.com/blog/wp-content/uploads/2014/08/devops-pic-4.jpg
  • https://ilincahallberg.files.wordpress.com/2013/09/worksonmymachine.png
  • http://dev2ops.org/wp-content/uploads/2014/06/DevOpsEntOpsObjects-350×337.jpg
  • http://intland.com/wp-content/uploads/2015/06/How-does-DevOps-help-your-business-to-grow-336×336.png
  • http://briceno.mx/wp-content/uploads/2013/10/keep-calm-it-works-on-my-machine.png
  • https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Devops.svg/2000px-Devops.svg.png
  • http://flugel.it/wp-content/uploads/2015/01/circulo_devops_culture_full.png
The following two tabs change content below.

Fabiano de Freitas Silva

Software Engineer at Softplan
Mais de 15 anos de experiência em Engenharia de Software, Desenvolvimento de Aplicativos, Administrador de banco de dados e Gestão de Projetos em uma ampla variedade de aplicações. Na Softplan atua como Analiste de Suporte ao Desenvolvimento, Scrum Master em uma Time Ágil, apoiador na tomada de decisões de liderança técnica, apoiador e facilitador de equipes de desenvolvimento de sistemas, entre outras demandas. Programador em sistemas de multithreading de alta disponibilidade para proporcionar uma melhor performance.

Sobre Fabiano de Freitas Silva

Mais de 15 anos de experiência em Engenharia de Software, Desenvolvimento de Aplicativos, Administrador de banco de dados e Gestão de Projetos em uma ampla variedade de aplicações. Na Softplan atua como Analiste de Suporte ao Desenvolvimento, Scrum Master em uma Time Ágil, apoiador na tomada de decisões de liderança técnica, apoiador e facilitador de equipes de desenvolvimento de sistemas, entre outras demandas. Programador em sistemas de multithreading de alta disponibilidade para proporcionar uma melhor performance.

Deixe uma resposta