Diferença entre o DevOps e o Software Configuration Management

15

Qual é a diferença entre o Development Operations e o Software Configuration Management?

Para mim, parece ser o mesmo, desde que o DevOps e o Software Configuration Management estejam focados em:

  1. Estabelecendo infra-estrutura de desenvolvimento - sendo responsável pelo controle da versão , gerenciamento de criação, gerenciamento de implantação, gerenciamento de dependências, integração e entrega contínua etc.
  2. Uso de práticas recomendadas para organizar ambiente de desenvolvedores .
  3. Garantia da Qualidade dos processos de desenvolvimento - coleta de métricas de eficácia no desenvolvimento, trabalhando na eliminação de gargalos no processo de desenvolvimento (executando testes unitários, avaliando a cobertura dos testes unitários, executando inspeções, etc.)
  4. Gerenciamento de infraestrutura - plataformas de segmentação e suas especificidades.
  5. Gerenciamento de versões - garantir que o lançamento tenha sido entregue ao cliente / cliente a tempo.

Talvez eu esteja sentindo falta de algo? Este link mostra que o uso do termo 'Software Configuration Management' prevalece. Mas ainda assim, que combinação de palavras você preferiria usar para descrever a lista de atividades listadas: Operações de desenvolvimento ou Gerenciamento de configurações de software ?

    
por altern 19.01.2012 / 12:23
fonte

5 respostas

17

Os termos descrevem conceitos e responsabilidades muito similares, e em geral eles são um pouco sinônimos. O termo "DevOps" é relativamente novo, popularizado pela conferência Devopsdays Ghent 2009 e subsequente Eventos do Devopsdays . É melhor descrito em este diagrama :

Poroutrolado,oGerenciamentodeConfiguraçãodeSoftwareéumtermomuitomaisestabelecidodentrodaprofissãoederivadotermonãoespecíficodesoftware Configuração Gestão . 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: a Abordagem de um Profissional" ":

is a set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.

Embora todos os termos que você mencionou sejam vagos, o DevOps parece ser apenas uma maneira menos formal de descrever mais ou menos o mesmo conjunto de princípios que o Configuration Management ou o Software Configuration Management, se visto da perspectiva do desenvolvedor de software, especialmente priorizando equipes strongmente acopladas :

DevOps is a response to the growing awareness that there is a disconnect between what is traditionally considered development activity and what is traditionally considered operations activity. This disconnect often manifests itself as conflict and inefficiency.

No mesmo artigo, as semelhanças com o SCM são notadas:

Adding to the Wall of Confusion is the all too common mismatch in development and operations tooling. Take a look at the popular tools that developers request and use on a daily basis. Then take a look at the popular tools that systems administrators request and use on a daily basis. With a few notable exceptions, like bug trackers and maybe SCM, it's doubtful you'll see much interest in using each others tools or significant integration between them. Even if there is some overlap in types of tools, often the implementations will be different in each group.

Quanto ao uso dos termos, sua comparação não faz sentido:

  1. O SCM é um subconjunto do CM, não é um termo competitivo,
  2. DevOps é um termo relativamente novo, não vale a pena comparar com termos estabelecidos,
  3. O
  4. DevOps deriva do Developer Operations (obviamente), mas raramente é expandido como tal.
por 19.01.2012 / 12:56
fonte
6

Pessoalmente, sendo Gerente Sênior de Configuração de Software por muitos anos (10+), ouço os termos incompatíveis em uma variedade de situações da vida real. Não é incomum para pessoal não técnico devido à natureza relativa das posições. Ambos têm papéis específicos, necessidades e requisitos que são semelhantes, mas que podem ser claramente divididos em minha opinião.

Eu acredito que a melhor maneira de descrever a divisão desses papéis é focalizar sua relatividade na interação. Isso significa que o Gerenciamento de Configuração de Software se concentra nos sistemas e ambientes internos, juntamente com a integração, a implantação, a liberação e o gerenciamento do código-fonte. Onde como Developer Operations (DevOps) se concentra mais no aspecto operacional da arquitetura de aplicativos com face externa, enquanto mantém um entendimento claro do código como foi planejado 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 problemas, a comunicação entre empresas e / ou limitações de arquitetura em relação a um ambiente de produção, você deverá procurar as Operações do Desenvolvedor para seu diagnóstico e solução.

Normalmente, na minha experiência, o Gerenciador de Configuração de Software também pode fazer essas coisas, mas isso tira seu 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 defeitos e defeitos, acompanhamento de projetos e o ciclo de vida de desenvolvimento de software e worflow. Essas tarefas não são o foco principal das Operações do desenvolvedor e, portanto, são menos imperativas, mas ainda podem ser feitas.

Eu tenho visto muitos exemplos da confusão de cada um deles, e em cada um deles existe algum cruzamento limitado. No entanto, é muito 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 a liberação de produtos, você procuraria um Gerenciador de Configuração de Software. Por outro lado, ao lidar com o desempenho do sistema, monitoramento, pesquisa e diagnóstico de sistemas usados por seus clientes, você deve olhar para o Developer Operations ou DevOps.

Agora, isso não significa um discurso retórico, nem uma resposta definitiva, mas sim uma identificação pessoal das diferenças de cada uma das posições. Eu gostaria de saber se estou bem fora da base, ou se as coisas são esclarecidas por esta resposta.

    
por 03.03.2015 / 18:33
fonte
4

Seria difícil encontrar uma definição sólida para o DevOps. É mais uma ideia do que um trabalho a ser feito. E é uma ideia muito nova para todos concordarem com exatamente o que isso significa. No entanto, aqui está minha opinião.

O DevOps é apenas um novo termo para gerenciamento de configuração, mas foi escolhido para mostrar que a função não é de uma pessoa, é uma colaboração entre a equipe de desenvolvimento e a equipe de operações.

Historicamente, o gerenciamento de configuração seria feito exclusivamente pela equipe de desenvolvimento e depois entregue às operações que o visualizariam com profunda desconfiança. O que é justo, 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.

    
por 19.01.2012 / 12:41
fonte
1

Este é o simples esclarecimento da pergunta: DevOps é um termo usado para descrever a coordenação ou o relacionamento entre o Desenvolvimento (desenvolvendo os códigos do programa no ambiente de desenvolvimento) e as Operações (garantindo o máximo tempo de atividade do ambiente de produção).

O Gerenciamento de Configuração de Software é um meio de alcançar essa coordenação. O SCM envolveu ferramentas e técnicas para gerenciar a automação do processo de mudança do desenvolvimento para a produção (operações)

Para resumir, o SCM conecta Dev e Ops.

    
por 17.12.2018 / 02:45
fonte
-1

Eu vejo que o DEVOPs está nos scripts de automação de implementação final de execução operacional, construções de ambiente, esse tipo de coisa. O SCM, por outro lado, trata da integridade dos produtos e do gerenciamento e rastreabilidade efetivos das mudanças nos produtos. Sempre vi o ALM como parte do SCM - afinal, como você pode gerenciar as alterações em um produto se não tiver ideia dos drivers da alteração ou de quem os criou? As estruturas de implantação podem cair de qualquer lado - e de que lado dependerá invariavelmente das necessidades regulatórias da organização para a qual você trabalha - afinal de contas - você quer que um desenvolvedor faça um hack rápido, o que significa que sua máquina de diálise só funciona corretamente 99.99% da época, ou você precisa dessa situação para permitir que você hackeie o código do seu website porque seus desenvolvedores têm endereços IP codificados?

    
por 23.06.2014 / 08:20
fonte