Existem várias razões para várias organizações mudarem para o DevOps.
Vou tentar listar os que aparecem com frequência.
Reduzir o tempo para mudar o ciclo
Muitas vezes há muito tempo entre fazer uma solicitação de mudança e realmente ser implantada e usada na organização. Primeiro, ele é planejado em um dos ciclos de desenvolvimento pelos desenvolvedores e, após a entrega, é planejado em um dos ciclos de liberação das operações. Ambos os ciclos incluem teste e, em caso de problemas encontrados, os dois ciclos são redefinidos. Ao integrar os departamentos de desenvolvimento e operações, podemos otimizar os dois processos.
Problemas de software x hardware
Lembre-se do desenho animado Bugs Bunny, onde Bugs e Daffy estão discutindo se é época de pato ou coelho? Agora imagine que fizemos isso com desenvolvedores e operações, onde os desenvolvedores argumentam que é um problema de hardware e as operações argumentam que é um problema de software. Para o usuário final, essa é uma distinção sem diferença. Eles só querem que seja consertado.
Ao reunir desenvolvedores e operações, eles terão que corrigir os problemas. E pode acontecer que tenha sido um problema de software e hardware.
Nós vs. eles
Em muitas empresas, a distância entre testadores e desenvolvedores estava aumentando porque eram departamentos separados e o ciclo de desenvolvimento estava ficando cada vez mais formalizado e padronizado.
Com a chegada do Agile, desenvolvedores e testadores têm trabalhado mais juntos e começamos a ver o ponto de vista um do outro no ciclo de desenvolvimento e talvez até respeitá-lo.
Algo semelhante precisa acontecer entre desenvolvedores e operações, porque, à medida que os campos amadurecem e os processos formalizam e padronizam, a distância entre esses departamentos aumenta. Portanto, um dos problemas do modelo tradicional é que parece "nós" versus "eles" para desenvolvedores e operações. Ambos não compreendem completamente a dificuldade das responsabilidades do outro.
Expectativas / vantagens:
Com o DevOps, as duas especialidades aprenderão algumas das habilidades tradicionalmente desempenhadas pela outra. Ninguém espera que um administrador de sistemas se torne um engenheiro de software ou um desenvolvedor se torne um engenheiro de rede, mas espera-se que ambos assumam algumas das responsabilidades do outro. Isso significa que quando você realmente precisa de algumas mãos extras, elas estão lá.
E existem algumas vantagens definitivas para os desenvolvedores: agora você tem mais controle sobre seus ambientes de teste, acha mais fácil implantar software para os usuários e tem mais pessoas em sua organização para compartilhar seu amor pelo ofício.