Os termos descrevem conceitos e responsabilidades muito semelhantes e, em geral , são um tanto sinônimos. O termo "DevOps" é relativamente novo, popularizado pela conferência Devopsdays Ghent 2009 e pelos eventos subsequentes do Devopsdays . É melhor descrito neste diagrama :
Por outro lado, o Software Configuration Management é um termo muito mais estabelecido na profissão e deriva do termo não específico do software Configuration Management . O Gerenciamento de Configuração de Software é frequentemente referenciado em um contexto de engenharia de software, uma definição simples é dada por Roger Pressman em "Engenharia de Software: Uma Abordagem do Profissional" :
é um conjunto de atividades projetadas para controlar as mudanças, identificando os produtos de trabalho que provavelmente serão alterados, estabelecendo relacionamentos entre eles, definindo mecanismos para gerenciar diferentes versões desses produtos de trabalho, controlando as mudanças impostas e auditando e relatando as alterações feitas.
Embora todos os termos que você menciona sejam vagos, o DevOps parece ser apenas uma maneira menos formal de descrever mais ou menos o mesmo conjunto de princípios que o Gerenciamento de configuração, ou o Gerenciamento de configuração de software, se visto da perspectiva de um desenvolvedor de software, priorizando especialmente as equipes fortemente acopladas :
O DevOps é uma resposta à crescente conscientização de que há uma desconexão entre o que é tradicionalmente considerado atividade de desenvolvimento e o que é tradicionalmente considerado atividade de operações. Essa desconexão geralmente se manifesta como conflito e ineficiência.
No mesmo artigo, são observadas as semelhanças com o SCM:
Adicionar ao Muro da Confusão é a incompatibilidade muito comum nas ferramentas de desenvolvimento e operações. Dê uma olhada nas ferramentas populares que os desenvolvedores solicitam e usam diariamente. Em seguida, dê uma olhada nas ferramentas populares que os administradores de sistemas solicitam e usam diariamente. Com algumas exceções notáveis, como rastreadores de erros e talvez SCM , é duvidoso que você tenha muito interesse em usar as ferramentas uns dos outros ou uma integração significativa entre eles. Mesmo se houver alguma sobreposição nos tipos de ferramentas, geralmente as implementações serão diferentes em cada grupo.
Quanto ao uso dos termos, sua comparação realmente não faz sentido:
- SCM é um subconjunto de CM, não um termo competitivo,
- DevOps é um termo relativamente novo, não faz sentido comparar com termos estabelecidos,
- O DevOps deriva do Developer Operations (obviamente), mas raramente é expandido como tal.
Pessoalmente, como gerente sênior de configuração de software por muitos anos (10 anos ou mais), ouço os termos incompatíveis em várias situações da vida real. Não é incomum para o pessoal não técnico devido à natureza relativa dos cargos. Ambos têm funções, necessidades e requisitos específicos semelhantes, mas que podem ser claramente divididos na minha opinião.
Acredito que a melhor maneira de descrever a divisão desses papéis é focar em sua relatividade à interação. Isso significa que o Software Configuration Management se concentra nos sistemas e ambientes internos, juntamente com a integração, implantação, liberação e gerenciamento do código-fonte. Onde o Developer Operations (DevOps) se concentra mais no aspecto operacional da arquitetura de aplicativo enfrentada externamente, mantendo um entendimento claro do código conforme ele foi projetado para uso e a prática de seu ambiente. Se o desempenho de uma máquina estiver mostrando sinais de degradação, a comunicação entre vários aplicativos estiver com defeito, a comunicação business to business (BtB) e / ou as limitações da arquitetura em relação a um ambiente de produção, você deverá procurar nas Operações do Desenvolvedor seu diagnóstico e solução.
Normalmente, na minha experiência, o Software Configuration Manager também pode fazer isso, mas isso afasta o foco principal de rastreamento, gerenciamento e implantação de configurações de ambiente e revisões de software. Gerenciamento do software que permite a separação de tarefas, rastreamento de bugs e defeitos, rastreamento de projetos, ciclo de vida e fluxo de trabalho de desenvolvimento de software. Essas tarefas não são o foco principal das operações do desenvolvedor e, portanto, são menos imperativas, mas ainda podem ser realizadas.
Eu já vi muitos casos de confusão de cada um, e em cada um deles há um cruzamento limitado. No entanto, é mais importante pensar nas diferenças entre as responsabilidades de cada uma das posições independentes em relação ao seu foco principal. Principalmente ao lidar com sistemas e hardware utilizados internamente para gerenciar a configuração de ambientes e o lançamento do produto, você procuraria um Gerenciador de Configuração de Software. Por outro lado, ao lidar com o desempenho do sistema, o monitoramento, a pesquisa e o diagnóstico dos sistemas usados pelos seus clientes, você deve procurar o Developer Operations ou o DevOps.
Agora, isso não é um discurso pretensioso, nem uma resposta definitiva, mas uma identificação pessoal das diferenças de cada uma das posições. Gostaria de saber se estou bem fora da base ou se as coisas são esclarecidas com esta resposta.
fonte
Você seria pressionado a encontrar uma definição sólida para o DevOps. É mais uma ideia do que um trabalho a ser feito. E é uma idéia nova demais para que todos concordem exatamente com o que isso significa. No entanto, aqui está a minha opinião.
DevOps é realmente apenas um novo termo para gerenciamento de configuração, mas foi escolhido para mostrar que a função não é individual, é uma colaboração entre a equipe de desenvolvimento e a equipe de operações.
Historicamente, o gerenciamento da configuração seria feito exclusivamente pela equipe de desenvolvimento e depois entregue às operações que veriam tudo com profunda suspeita. O que é justo o suficiente, para ser honesto. Eles são responsáveis por isso. Eles são os primeiros a serem chamados às 4 da manhã quando dá errado. Eles realmente deveriam ter algum envolvimento em seu desenvolvimento.
fonte
Este é o simples esclarecimento da pergunta: DevOps é um termo usado para descrever a coordenação ou o relacionamento entre Desenvolvimento (desenvolvendo os códigos de programa no ambiente de desenvolvimento) e Operações (garantindo o máximo tempo de atividade do ambiente de produção).
O Gerenciamento de Configuração de Software é um meio de atingir essa coordenação. O SCM envolveu ferramentas e técnicas para gerenciar a automação do processo de transição do desenvolvimento para a produção (operações)
Para resumir, o SCM conecta Dev e Ops.
fonte
Vejo que os DEVOPs estão no final da execução operacional - scripts de automação de implantação, criação de ambientes, esse tipo de coisa. O SCM, por outro lado, trata da integridade dos produtos e do gerenciamento e rastreabilidade efetivos das alterações nos produtos. Sempre vi o ALM como parte do SCM - afinal, como diabos você pode gerenciar alterações em um produto se não tem idéia dos drivers para a alteração ou quem os fez? As estruturas de implantação podem se dividir em ambos os lados - e de que lado dependerá invariavelmente das necessidades regulatórias da organização para a qual você trabalha - afinal de contas - você deseja que um desenvolvedor seja capaz de fazer um hack rápido, o que significa que sua máquina de diálise só funciona corretamente 99,99% do momento, ou você precisa dessa situação para permitir a invasão do código do site porque seus desenvolvedores têm endereços IP codificados?
fonte