O ar que empresas ágeis respiram para produzirem softwares de qualidade com velocidade e em escala

https://medium.com/@diego_moura/devops-big-picture-23d7357323b1

Overview

Na etimologia da palavra, o termo DevOps é composto pela junção de Development + Operations, mas o que isso significa na prática?

Depois de pesquisar algumas horas, encontrei a definição que mais me satisfez no site da Microsoft Azure

“DevOps is the union of people, process, and technology to continually provide value to customers.”

Entenda DevOps como uma metodologia, ou simplesmente um conjunto de práticas e processos derivados do manifesto ágil, que irão conduzir a empresa a uma nova cultura de desenvolvimento de software, onde as equipes de desenvolvimento, operações (Infraestrutura & SysAdmin), segurança e qualidade, trabalham colaborativamente e de forma coordenada, para a obtenção de produtos e serviços de base tecnológica, com alto grau de agilidade, automatização, escalabilidade, confiabilidade, testabilidade, monitoramento e principalmente que irá responder melhor às mudanças de escopo e necessidades do cliente.

DevOps até o momento

Sempre que me deparo com um novo conteúdo/aprendizado, gosto de fazer um apanhado em relação ao contexto histórico ao entorno deste assunto. Nada melhor que uma timeline para entendermos a evolução de DevOps até os dias de hoje.

É sabido que desde o Manifesto Ágil criado em 2001, muitos termos comuns do universo DevOps já eram disseminados nos ambientes corporativos por empresas de tecnologias, concepções como “entrega contínua, desenvolvimento ágil, deploy contínuo, etc…”. Mas apenas em:

2007 => Os primeiros indícios de DevOps apareceram onde um cara chamado Patrick Dubois, propôs a criação de um time formado por desenvolvedores e operações, para a migração de um data center o qual possuía gargalos na esteira de implantação.

2008 => No ano de 2008 surge a semente do DevOps, onde Patrick Debois no evento Agile Conference em Toronto no Canadá, propôs numa palestra uma discussão sobre novos métodos para solucionar conflitos entre equipes de desenvolvimento e operações.

2009 => No ano de 2009, Allspaw e Paul Hammond (na época, funcionários da Flickr), apresentaram no evento da O’Reilly, Velocity Conference um seminário chamado “10 deploys per day: Dev and Ops Cooperation at Flickr”O impacto causado pelo seminário foi tao positivo, que resultou no primeiro DevOpsDay, realizado em Ghent, na Bélgica.

2011- 2012 => Em março de 2011, a Gartner Hype Cycle publicou um relatório afirmando que até o final de 2015, DevOps se tornaria a principal estratégia a ser adotada por pelo menos 20% das organizações mundiais. A partir desta publicação, dada a grande credibilidade e autoridade da Gartner no que diz respeito a tecnologias e tendencias exponenciais, diversas empresas gigantes (IBM, Amazon, Wallmart, etc) começaram a investir pesado em recursos de tecnologia para a adoção de DevOps como um modelo estratégico.

2013 => O livro “The Phoenix Project: A Novel about IT, DevOps and Helping Your Business Win” de Gene Kim, Kevin Behr e George Spafford, traz conceitos de DevOps que são fundamentais para a consolidação das práticas até hoje, por exemplo CI/CD (Continuous Integration and Continuous Delivery)

2014 => A adoção de DevOps já estava sendo obtida por algumas empresas, e um impacto bastante positivo passou a ser percebido.

2015 => DevOps ganha espaço na Gartner Hype Cycle.

2016 — … => DevOps entra em fase de popularização, e passa a estar cada vez mais enraizada na cultura de empresas modernas, que se preocupam com o time-to-market.

As bases do DevOps

A respeito das práticas e padrões adotados como estratégia para conduzir o ciclo de vida de criação de produtos por empresas ágeis baseadas em DevOps, existem 4 pilares que irão nortear a implementação da metodologia. São eles:

1 — COMUNICAÇÃO
Equipes e processos precisam conversar de forma ágil, sem burocracias e segregações, utilizando ferramentas que irão dar suporte ao novo modelo produção de softwares. Ferramentas como Slack, Discord, Teams, entre outras, devem ser utilizadas para melhorar a comunicação, transparência e colaboração entre as equipes de desenvolvimento e operações, para a obtenção de mais performance e resultados. As responsabilidades devem ser definidas de modo que haja alinhamentos constantes entre as equipes envolvidas no processo desde o início.

2 — COLABORAÇÃO
A colaboração é parte fundamental para a criação de uma cultura baseada em DevOps. A sinergia e cooperação entre as equipes de tecnologia e infraestrutura devem ser constantes. O entendimento de processos internos que comuniquem áreas e procedimentos entre os departamentos devem ser abstraídos por todos os colaboradores envolvidos. Existe um arsenal de tecnologias e ferramentas que podem ser utilizadas para aumentar a colaboração entre os times, serviços em nuvem/plataformas SaaS (Software As A Service) são os principais pivôs tecnológicos para dar amplitude à colaboração entre times, ferramentas como github, jira, trello, microsoft team foundation service, draw io, lucidchart, etc.

3 — AUTOMAÇÃO
A automação de tarefas é o coração do DevOps. É através da automação de processos e tarefas que toda esteira de implantação e entrega contínua (CI/CD) é definida e implementada. A aproximação entre TI e Ops é o grande segredo e diferencial no que diz respeito à DevOps, principalmente quando o assunto é automação, pois aqui o desenvolvedor tem a oportunidade de aprender com o time de operações sobre infraestrutura, e os analistas de infra, podem aprender conceitos de programação com os desenvolvedores. Muitas tecnologias IaaS (Infrastructure As A Service) são utilizadas para auxiliar as equipes DevOps a executarem seus respectivos casos de uso.

4 — MONITORAMENTO
Sem métricas não há gestão. O monitoramento é crucial no DevOps para que seja possível a obtenção de um diagnóstico claro e um entendimento profundo das métricas associadas ao tempo de desenvolvimento de novos casos de uso, bug fixes, questões relacionadas a performance, aumento ou retração das cargas de trabalho, validação contínua de processos, gestão de incidentes, provisionamento dinâmico de recursos de infraestrutura, e etc. É através de ferramentas de monitoramento que equipes DevOps conseguem tomar decisões com agilidade, reagindo melhor as mudanças e necessidades dos clientes.

Conclusão

Obviamente os benefícios em utilizar DevOps no dia-dia são muitos, principalmente por trazer consigo toda bagagem e benefícios de se trabalhar com estratégias e práticas do modelo Agile, entendendo DevOps como sendo uma evolução das metodologias ágeis convencionais. No meu ponto de vista, o grande diferencial alcançado por equipes que implementam uma cultura baseada em DevOps é acima de qualquer coisa, a agilidade em criar produtos de qualidade com alto grau de confiabilidade e testabilidade, no melhor time-to-market. THIS IS DEVOPS!

Referencias

https://agilemanifesto.org/

https://www.gartner.com/en/research/methodologies/gartner-hype-cycle

http://www.jedi.be/blog/2008/10/10/agile-2008-toronto-my-recordings/

http://www.jedi.be/blog/

https://itrevolution.com/faculty/patrick-debois/

https://mundodevops.com/blog/como-o-devops-surgiu/

https://www.dotnetcurry.com/devops/1529/devops-timeline

https://blog.cedrotech.com/pilares-de-devops-saiba-como-essa-cultura-e-estruturada