DevOps
DevOps refere-se a
- Uma coleção de métodos e ferramentas técnicas e
- Uma determinada cultura de colaboração entre as equipes de desenvolvimento de software e TI.
DevOps trata de tornar a colaboração entre desenvolvimento de software e operações de TI mais eficiente e alinhada através de processos compartilhados e ferramentas de software. Uma equipe DevOps é composta por desenvolvedores e profissionais de TI que trabalham juntos durante todo o ciclo de vida do produto.
Origens do DevOps
O termo DevOps surgiu em 2009 e é composto pelas partes Dev (= área de Software Development / Desenvolvimento de Software) e Ops (= área de IT Operations / Administração de Sistemas).
No entanto, o movimento que levou ao desenvolvimento do DevOps começou ainda antes: já por volta de 2007, as comunidades de IT Operations e desenvolvimento de software trocavam experiências entre si. Os membros consideravam problemática a separação entre as equipes responsáveis por escrever o código e as responsáveis por disponibilizar e dar suporte ao código. Essa troca marca o início da integração das duas áreas.
Objetivos do DevOps
DevOps é utilizado para alcançar os seguintes objetivos:
- Aumentar a qualidade do software
- Acelerar o desenvolvimento e a entrega do software
- Melhorar a colaboração entre as equipes envolvidas no desenvolvimento e disponibilização
- Garantir alta estabilidade operacional e evitar defeitos técnicos causados por alterações e inovações
Como esses objetivos são alcançados?
Esses objetivos são alcançados através da automatização e integração dos processos entre as equipes de Development e Operations na empresa. Os aspectos mais importantes são:
- Automatização da tecnologia
- Comunicação e colaboração entre equipes
- Capacitação das equipes
O ciclo de vida DevOps
O processo contínuo de DevOps pode ser imaginado como um loop infinito, que geralmente consiste nas seguintes 6 fases:
- Planejar
- Criar / Build
- Continuous Integration e Continuous Delivery
- Monitorar e Alertar / Monitor
- Operate
- Feedback contínuo
Essas 6 fases representam diferentes competências, processos e ferramentas das áreas de desenvolvimento e operações. O importante é que ambas as equipes trabalhem e se comuniquem como uma equipe única em cada uma das fases.
Quais métodos e ferramentas fazem parte do DevOps?
Métodos
DevOps engloba várias técnicas independentes entre si:
- Desenvolvimento ágil de software
- Continuous Integration (também: CI ou Integração Contínua) e Continuous Delivery (também: CD)
- Monitoramento contínuo de serviços
- Microservices
- Testes automatizados de software
- Software Configuration Management, controle de versão e "Infrastructure as Code"
- Key Performance Indicators (KPIs) interdepartamentais
Ferramentas
Os métodos mencionados são possibilitados ou apoiados, por exemplo, pelas seguintes ferramentas DevOps:
- GitHub e GitLab (para Continuous Integration e Continuous Delivery, testes automatizados de software e controle de versão)
- Jenkins (Continuous Integration)
- Puppet (para Infrastructure as Code)
- Ansible (para Configuration Management)
- Vagrant (como plataforma de virtualização)
- Azure DevOps (por exemplo, para Continuous Integration, Testing, Release Management e Systems Management)
- Microsoft Azure (para Monitoring e Hosting)
- Team Foundation Server
- Docker (para virtualização de containers)
- Kubernetes (orquestração de containers)
Que cultura de colaboração o DevOps busca?
DevOps deve melhorar a cooperação entre desenvolvimento e operações como uma equipe interdepartamental e eliminar a separação entre elas. Uma colaboração estreita surge através dos seguintes aspectos:
- As equipes de IT Operations e Software Development trabalham em estreita colaboração e frequentemente são unificadas em uma única equipe durante todo o ciclo de vida do produto.
- Toda a equipe foca nas necessidades e benefícios do cliente durante o ciclo de vida do software.
- Dentro da equipe, processos e planos são tornados consistentemente visíveis uns para os outros.
- Prioridades, responsabilidades e alterações são alinhadas entre todos.
- O gerenciamento de riscos é simplificado através de ciclos de release e planejamentos mais curtos.
- Todos os membros da equipe mantêm uma comunicação regular e aberta.
Desafios na implementação do DevOps
Como sempre quando novidades são introduzidas, há membros na equipe que têm dificuldade com a implementação ou constroem resistências concretas contra ela. Por isso, é importante que todos os membros da equipe realmente entendam os princípios, valores e benefícios do DevOps e que a empresa reserve tempo suficiente para informar e implementar.
Importante observar:
- Quanto mais cedo crescer o entendimento sobre a união das equipes de desenvolvimento e operações e os silos forem correspondentemente dissolvidos, mais fácil será a integração do DevOps.
- Não basta simplesmente aplicar as ferramentas mencionadas para aproveitar os benefícios do DevOps. O decisivo aqui é a combinação de cultura, métodos, processos e ferramentas.
Conclusão sobre DevOps
DevOps tem uma influência totalmente positiva na maioria das empresas. Pois a abordagem proporciona maior eficiência e segurança da equipe, releases de software mais rápidos e maior qualidade do produto para clientes mais satisfeitos.
Os benefícios dos princípios DevOps são tão grandes que a abordagem por trás deles, junto com seus valores, já está sendo aplicada em outras equipes. Por exemplo, DevSecOps designa a integração da segurança no processo de desenvolvimento.