O que é DevOps ?

Apesar de já haverem muitos artigos na Internet explicando o que é DevOps, de onde veio e, principalmente, o que não é, parece que as pessoas precisam de mais. Lá vai então mais um desses artigos agora com minha opinião.

O que não é ?

Sysadmin que scripta tudo não é devops.

Desenvolvedor que cria instância na nuvem não é devops.

A não ser que uma mesma pessoa consiga instalar o storage+fabric, configurar o roteador de borda anunciando os blocos do seu próprio AS no BGP e ser core comiter do software de ERP da própria da empresa que é vendido como serviço online cujo front-end é todo feito por ele também (e usando no mínimo 4 linguagens diferentes), DevOps não é um cargo. Na verdade, esse job description estaria mais pra “super sysadmin fullstack developer”.

Considerando que DevOps fosse as duas funções em uma pessoa só como no exemplo acima, o que temos de DevOps então se assemelha à clássica analogia com o Pato.

Exemplo: o cara que acha que saca de infra porque sobe EC2 na AWS e o sysadmin que fez um bot pro Telegram se acha programador.

E aí, amigo, não importa se o Pato é DevOps Pleno ou Sênior, não vai voar igual a uma Águia Júnior.

Como surgiu ?

Resumindo muito, na Agile Conf de 2008 Patrick Debois e Andrew Shafer já vinham pensando no assunto e fizeram uma apresentação chamada “Agile Sysadmin”, mas ninguém foi.

Em 2009, na Velocity Conference, uma palestra com o título “10+ deploys per day: devs and ops cooperation at Flikr” atingiu grande público e ganhou grande repercussão.

Inspirado nesse título, Patrick Debois organizou na Bélgica uma conferência chamada DevOpsDays, com intuito de apresentar conteúdo tanto para devs quanto para sysadmins mas, diz a lenda que, como o twitter tem um limite baixo de caracteres, ele abreviou para #devops. Pronto.

Quando se fala que DevOps é Devs+Ops significa ambos trabalhando e cooperando com o objetivo de ter o trabalho feito, da melhor forma possível e com agilidade.

Comunicação

Cooperação e alinhamento entre as áreas são as coisas mais importantes. Comunicação não.

A comunicação é importante mas não por si só. Quanto menos comunicação, melhor.

Hein ?? Como ?

Eu explico.

Você não quer que o dev tenha que comunicar ao sysadmin que uma nova versão do software deve ser instalada.

Você não quer depender de que o sysadmin comunique ao dev que o software dele está com comportamento anormal para que o dev saiba.

Mas é bom que se falem ? Claro, para que estejam alinhados.

Em um cenário ideal, quanto menos dependência um tiver do outro, quanto menos interação for necessária, melhor.

Acho que consigo explicar melhor com um exemplo…

Imagine uma dessas empresas que não possuem sysadmins. Apenas devs e que eles mesmos administram as próprias instâncias na nuvem. Existem sysadmin ?

Claro que existem… só que em vez de estarem em outro setor estão em outra empresa.

E eu aposto que dificilmente esses devs falam com os sysadmins da nuvem… ou seja, cada um está fazendo o seu trabalho sem precisarem se comunicar.

Se você tem uma área de infraestrutura interna, tente fornecer aos devs a mesma experiência.. quando cada um faz bem o seu, nem é preciso haver comunicação para que cada um faça bem seu trabalho.

”Metodologia DevOps”

Muitas empresas hoje se espelham em modelos que foram bem sucedidos em outras empresas. Netflix, Spotify e Amazon são muito citadas.

Em um primeiro momento tende-se a acabar com o silo de infraestrutura e colocar gente de infra em cada time de dev.

Isso até parece funcionar em um primeiro momento, mas em empresas cuja infraestrutura é compartilhada isso não faz o menor sentido, as pessoas param de olhar para a infraestrutura geral e ficam focadas nas necessidades dos times que elas estão apenas.

O erro aqui é que, nas empresas onde esse modelo deu certo, não havia uma infraestrutura compartilhada ou simplesmente se manteve um time dedicado à infraestrutura. Este modelo funciona quando cada time de dev tem sua pequena e exclusiva infraestrutura.

Referências

Não necessariamente de onde eu embalei minha opinião, mas sim links úteis com mais informações e pontos de vista.

Guto Carvalho – O que é um DevOps afinal ?

Guto Carvalho – Por onde iniciar os estudos sobre DevOps

Wikipedia sobre DevOps

Tiago Soares – DevOps, o que é, de onde veio, é de comer ?

 

3 comentários em “O que é DevOps ?

  1. Fala André, Beleza!?

    Em tempos de DevOps em alta, confesso que não vejo (este) muito como um Perfil profissional e também não vejo muito bem como uma cultura. Minha forma de entender isso, é meio que como um MOVIMENTO (Não literário, mas quase como.. rs.), pois, é meio que uma nova fase de EVOLUÇÃO em TI com características bem próprias. Contudo outras novas fases (movimentos) virão com suas próprias características, então lembraremos de cada movimento e seus momentos que ficaram marcados por seus nomes (DevOps). Se entendemos como cultura, num futuro não tão longínquo, poderemos não desenvolver ou dispor de recursos na forma como temos hoje, então a “CULTURA” DevOps terá acabado? Mas cultura não é algo que nos acompanha se fizermos questão? Nesse caso, como tudo em TI Evolui, essa cultura estará fadada a acabar (rs). Entretando se entendermos como um movimento, então, perceberemos que chegou o momento de novos movimentos e esse teve sua utilidade no modelo de TI de sua época.

    Como você colocou o artigo como sendo um ponto de vista seu, me senti na liberdade de compartilhar contigo o meu…. rs. Sei que não me expresso muito bem, então, caso algo tenha ficado confuso, me diz. rsrsrs.

    Forte abraço, amigo!

    Curtir

Os comentários estão encerrados.