Taverna /dev/All

Afinal de contas, o que é DevOps?

Com tanta gente falando a respeito, no frigir dos ovos, qual a melhor definição de DevOps?
Seria legal se não fosse uma daquelas definições de consultor, tipo, “a comunicação entre diversas equipes distintas dentro da empresa visando algo em comum”.

É algo que sempre existiu e nunca soubemos nomear? O que é de fato?

1 Curtida

Olá @kicolobo ,

Não acredito que tenha a resposta definitiva para isso, mas até onde sei DevOps é uma mentalidade e não um cargo, função ou processo. Acredito que o termo seja genérico o suficiente para que cada profissional e/ou empresa adeque a realidade em que se encontra.

Algumas pessoas erroneamente assumem que é um desenvolvedor que também cuida da infra (fazendo a parte de operações). Até pode ser o caso, já que em muitas empresas menores e startups a equipe é pequena e os próprios desenvolvedores cuidam da infra, processo de deploy, etc. Mas também tem empresas grandes que tem equipes separadas por especialidade (frontend, mobile, backend, operações, banco de dados, etc), que aplicam DevOps.

Em minha humilde opinião, DevOps no final é o conjunto de processos, práticas e técnicas adotadas em um projeto de software que cuida de diminuir a fricção entre as equipes e as várias etapas do projeto.

Mas só dizer isso é ainda muito vago, um exemplo mais concreto para dar uma ideia melhor seria, a nível de implementação/código:

  • deploy contínuo, para ajudar com prova de conceitos e diminuir o tempo de novas funcionalidades em produção;
  • ferramentas de análise para entender como a infra se comporta e tomar decisões baseadas em dados concretos;
  • aplicar chaos engineering, para saber se a sua infra tem ou não problemas;

E muitos outros.

Mas, e para a empresa onde a equipe de TI é uma pessoa só?

Bom, DevOps nesse caso pode ser só um processo para melhorar a comunicação entre as áreas da empresa, afim de tornar claro para todos os envolvidos (gerentes, dono da empresa, o cara da TI, clientes) o que está acontecendo e como reagir da melhor maneira possível para evitar confusões evitando assim gargalos.

Lembra muito metodologia ágil aplicada em sua forma mais pura. Diminuir atritos entre equipes, melhorar comunicação, entregar mais rápido, detectar problemas mais rápido, etc.

Enfim, ainda não temos uma definição de mercado concreta (e o mercado se apropria do termo para vender outras ideias e produtos, assim como hoje em dia tem um bocado de treinamentos Agile sem pé nem cabeça). E talvez eu tenha gerado mais confusão do que clarificar o tópico.

De qualquer forma, estão aí meus 2 centavos.

3 Curtidas

Nossa Hércules, não foram 2 centavos, mas no mínimo cem reais!

Mas havendo tantas dúvidas a respeito do significado, será que o que temos de fato não seria um devops, mas sim uma revalorização da antiga gestão de configuração e mudança e este nome - devops - na prática ser apenas uma estratégia de marketing?

2 Curtidas

Penso que o devops é uma ampla refatoração do sysadmin, com um problema: o pessoal de segurança foi meio que posto de lado, tanto que a nova palavrinha da moda agorá é DevSecOps.

Há, efetivamente, uma gama de procedimentos e ferramentas que representam muito bem essa nova forma de agir, muito íntima (mas não acredito que uma consequência) do fenômeno da nuvem e de novas práticas de desenvolvimento, especialmente as metodologias ágeis.

Justamente isso ser um movimento de evolução, é que traz essa dificuldade em definir, como por exemplo, ‘devops é uma cultura, não é uma pessoa’. Penso que devops é evolução, e quando se fala ser necessário um profissional de devops, o que se quer dizer é ‘alguém que esteja bem a par das novidades’.

será que a gente poderia pensar no Devops como uma estratégia de redução de custos a partir da remoção de um participante da equipe ao fundir os papéis de desenvolvedor e sysadmin, também?

Poxa, minha segunda ficou travada pq estou lendo e relendo sua intervenção, e pensando um monte de coisas!

Essa remoção já existia. Tanto do sysadmin, quando se tem um desenvolvedor interno, como do desenvolvedor, quando se usa um sistema desenvolvido externamente.

O faz tudo que não programa tenta manter o sistema externo funcionando, e o faz tudo que não é sysadmin tenta manter o próprio sistema funcionando. Mas esses são casos de uma cultura empresarial muito louca e suicida, de lugares certamente tóxicos para se trabalhar.

O “outro modo de agir”, acredito que tenha mais a ver com essa evolução. Hoje sou programador num ambiente em que praticamos devops, já fui sysadmin, já fui programador, já fui um sysadmin que programava, já fui um programador que administrava infra. Eu vivi essa briga e esse desentrosamento, e vi e vivi também o surgimento desse novo modo de agir.

Fui um cara que trabalhou escrevendo ferramentas internas que possibilitassem autonomia dos desenvolvedores, não porque havia um plano para livrar-se de mim (acho eu), mas porque era visível a dificuldade em criar um ambiente de desenvolvimento pros novos desenvolvedores (e viver preso ao “na minha máquina funciona”), a dificuldade em apresentar um ambiente de homologação de forma imediata, e especialmente fazer o deploy.

E toda essa nova forma de pensar e agir tomou um volume, uma massa de conhecimentos, que me perdi no meio disso tudo. Só muito recentemente é que pude começar a domar essas coisas.

Enfim, todo esse depoimento particular, não querendo tornar minha experiência universal, é pra evidenciar que os ambientes de TI foram sendo contaminados por essas ideias, de diferentes formas, em diferentes níveis de contaminação.

E vivemos, atualmente, universos paralelos os mais diversos possíveis :slight_smile:

Mas não consigo imaginar que tudo isso seja apenas resultado de uma maquinação de marketing e contenção de custos. Visualizo essa coisa toda de redução e marketing como oportunistas que não entenderam bem a coisa e tão tentando algo, tipo surfar na onda sem compromisso.

Então na realidade podemos dizer Paulo, que o que tínhamos era gente “sobrando”?

Pessoalmente sou um generalista, gosto de conhecer e atuar em todo o espectro do desenvolvimento, então quando ouvi falar sobre devops confesso que não consegui ver a novidade e também não consigo ver até hoje o que seria esta “coisa”. Explico.

Desconfio porque quando vejo a dificuldade em descrever o fenómeno em palavras temo o fato de sequer ser um fenómeno real, dado que o real é passível de ser descrito em palavras.

Então seria do caralho se neste post a gente chegar a uma definição disto. Bora tentar?

Agora é minha terça-feira que está travada, então “challenge accepted”, mas só pra dar um pitaco, pois daqui um pouco tenho daily e já tô com um PR pendurado pra resolver :slight_smile:, deixo aqui uma coisa que me ocorreu agora.

Nessa discussão, foi se fixando em mim a visão de que devops representa uma era histórica, mais ou menos como Eric Hobsbawn em suas “Eras” (dos Impérios, das Revoluções, do Capital, dos Extremos). Há um conjunto de características em cada uma dessas eras, mas isso não quer dizer que algumas dessas não ocorressem em outras, por exemplo: o capital teve que gestar-se antes de existir capitalismo.

Então, defendo que estamos vivendo uma era do devops ou da agilidade, enfim, outra discussão para quem concordar com isso, em que certas formas mais elaboradas de trabalho foram gestadas. Eu reconheço sim uma mudança, algo novo, mas não no sentido de ruptura, mas de evolução mesmo.

E o bom disso é justamente esse momento em que vários papéis vão sendo necessários em um só indivíduo: desenvolvimento, infra, segurança, negócios, pra ficar nos mais óbvios. Mas isso não invalida o especialista, que acredito, se torna mais um pesquisador, no sentido de ter um conhecimento mais específico, de buscar melhorar essas técnicas específicas, de saber o que está acontecendo.

Opa, hora da daily!

então será que o que temos hoje é a evidência do profissional que cuidava (e sempre cuidou) de todo o espectro do desenvolvimento, iniciando no projeto, passando por construção, evolução, implantação e manutenção dos ambientes?

Eu sou contratado aqui na empresa como DevOps.

Na definição, eu sou obrigado (além de desenvolver) montar toda a infra e escalabilidade das minhas aplicações.

Eu acredito que seja exatamente isso! :smiley:

1 Curtida

DevOps 2019 = Webmaster 1997.

1 Curtida

Olha só que artigo interessante. O encontrei logo após escrever o comentário anterior.

The Old Webmaster is New Again

1 Curtida

interessante é que o texto é de 2013, seis anos atrás, ainda nem existia direito a conversa de DevOps.

Na realidade, a questão nem seria que o DevOps é o novo webmaster, mas sim que o “full stack” é o novo webmaster.

E vou até além viu: pra mim todo mundo sempre foi o webmaster, muito raro a especialização real no dia a dia.

1 Curtida

Essa discussão me faz lembrar da década passada quando eu começara a escutar a palavra “nuvem”, especialmente “arquivos na nuvem”. Diante dos preços absurdos dos GBs na nuvem na época, eu ficava bolado, pensando comigo “qual a diferença disso pra jogar um arquivo via FTP no hosting linux de 5,90 por mês?” Só fui entender o X da questão anos depois…

Mas voltando ao tópico, escutei a palavra DevOps pela 1ª vez em 2013 no DevDay de BH, numa palestra sobre Chef e Puppet. Foi difícil cair a ficha e lembro de sair do evento ainda confuso. Mas me marcou muito o fato de poder “versionar configuração”, característica que simboliza bem a filosofia.

Acho que antes da cultura DevOps havia uma certa desonestidade em achar que o SysAdmin daria conta de cuidar do ambiente de Produção sem conhecer as aplicações, e da mesma forma achar que os desenvolvedores estariam cientes de todas as características do ambiente de Produção, replicando isso no ambiente de desenvolvimento para antever incompatibilidades e problemas. Quando a bomba estourava em Produção quase sempre o SysAdmin e o Desenvolvedor precisavam desesperadamente um do outro, ainda que até então eles vivessem em mundos separados. Com a cultura DevOps, as práticas não só passaram a prevenir esse tipo de problemática, mas ficou bem claro o papel ativo do time de desenvolvimento em entender e controlar a relação das configurações do ambiente com o sistema.

2 Curtidas

itexto