Ao explicar o DevOps a alguém, ocorre uma pergunta como:
Como o Gerenciamento de Liberação usando a metodologia Agile difere do Waterfall?
Então, que tipo de critério você pode usar para explicar essas diferenças para esse público?
Ao explicar o DevOps a alguém, ocorre uma pergunta como:
Como o Gerenciamento de Liberação usando a metodologia Agile difere do Waterfall?
Então, que tipo de critério você pode usar para explicar essas diferenças para esse público?
Respostas:
O DevOps do IMO é uma cultura, bem como o Agile (sem escolher uma metodologia ágil.) Portanto, você não "faz" o DevOps.
Você "executa" uma metodologia de lançamento chamada Entrega contínua como parte de uma cultura do DevOps. (divulgação completa, acho que nunca me referi ao CD como uma metodologia de lançamento antes, mas, no meu estado de jetlagged, acho que funciona)
Se você comprar isso, aqui está a definição de Entrega Contínua de uma das pessoas que escreveu o livro com o mesmo título, Jez Humble .
Entrega Contínua é a capacidade de obter alterações de todos os tipos - incluindo novos recursos, alterações de configuração, correções de bugs e experimentos - na produção ou nas mãos dos usuários, com segurança e rapidez, de maneira sustentável.
Nosso objetivo é fazer implantações - seja de um sistema distribuído em larga escala, de um ambiente de produção complexo, de um sistema incorporado ou de um aplicativo - casos previsíveis e rotineiros que possam ser executados sob demanda.
Conseguimos tudo isso, garantindo que nosso código esteja sempre em um estado implementável, mesmo diante de equipes de milhares de desenvolvedores que fazem alterações diariamente. Assim, eliminamos completamente as fases de integração, teste e proteção que tradicionalmente seguiam o “dev complete”, bem como o congelamento de código.
Assim, você pode trabalhar em uma metodologia Agile, tendo um software que possa demonstrar para os negócios, certificando-se de fazer testes automatizados adequados, reagindo bem à mudança e a todas as coisas que a tornam melhor que a cascata. Com muita frequência, isso não significa que você possa implementá-lo na produção.
Portanto, o software (provavelmente) será melhor quando você terminar, se você não tiver algum tipo de abordagem iterativa, mas você realmente não sabe porque usuários reais nunca o viram.
O que você realmente deseja é algo mais parecido com isto:
A cada iteração, algo é implantado na produção. Portanto, o software é implantado . Se você decidir criar downloads, abra o servidor da Web ou, no entanto, coloca o software nas mãos dos usuários que o lançam .
Então, o que o DevOps tem a ver com isso?
É muito, muito difícil (quase impossível) realmente ter seu software em um estado em que você possa implantá-lo quando quiser, a menos que a equipe esteja trabalhando em uma cultura de DevOps. Uma cultura em que administradores de sistema, DBA, SREs, pessoal de segurança, desenvolvedores, QAs etc. fazem parte de uma única equipe e não fazem parte isolada de uma organização com transferências.
Nota :
Sobre parte de um comentário publicado nesta resposta, que era assim:
Sobre o seu "... software em um estado em que você pode implantá-lo quando quiser ...": isso me lembra o software "piloto automático" (em um avião) ... Minha pergunta favorita sobre isso: " Imagine uma atualização é aplicado a esse software ... Como você se sentiria em fazer isso a bordo ... Enquanto estiver a bordo? ".
Eu amo essa pergunta (em negrito, na citação acima)! A ideia de "está realmente pronta?" é algo que eu discuto o tempo todo - blog . Na IMO, é vital que você confie na segurança, no desempenho e em outros testes "secundários" para praticar CD. Os recursos são feitos quando são feitos, mas os hackers estão sempre lá.
Não tenho certeza se não há outros, mas estes são os critérios que eu uso:
+-------------------+-----------+-----------+
! Criteria ! Agile ! Waterfall !
+-------------------+-----------+-----------+
! Release Events ! Frequent ! Rare !
! Risk ! Less ! High !
! Required Effort ! Smoother ! Peaks !
! Volume of changes ! Small ! Huge !
+-------------------+-----------+-----------+
E se você realmente deseja experimentar a diferença como usuário de algum software, pense em usar algum software (como uma distribuição Linux), onde você pode escolher entre usar um desses lançamentos:
uma Rolling
versão " " (==> Ágil).
uma Long Term Support
versão " " (==> Cachoeira).