DevOps
O DevOps alinha o desenvolvimento e as operações para otimizar a qualidade e a entrega.
O que é DevOps?
DevOps é um conjunto de práticas, ferramentas e uma filosofia cultural que automatizam e integram os processos entre o desenvolvimento de software e as equipes de TI. Ele enfatiza o empoderamento da equipe, a comunicação e a colaboração entre equipes e a automação da tecnologia.
O movimento DevOps começou por volta de 2007, quando comunidades de desenvolvimento de software e operações de TI manifestaram preocupações relacionadas ao modelo de desenvolvimento de software tradicional, em que os desenvolvedores que escreviam os códigos trabalhavam separados das operações que implementavam e prestavam suporte a esses códigos. O termo DevOps, uma combinação das palavras desenvolvimento e operações, reflete a integração dessas disciplinas em um processo contínuo.
Como o DevOps funciona?
Em uma equipe de DevOps, desenvolvedores e operações de TI trabalham em colaboração durante todo o ciclo de vida do produto, a fim de aumentar a velocidade e a qualidade da implementação do software. É uma nova forma de trabalhar, uma mudança cultural que tem grandes implicações para as equipes e as empresas em que elas trabalham.
Com o modelo de DevOps, as equipes de desenvolvimento e operações não ficam mais fragmentadas. Às vezes, essas duas equipes se unem em uma só, com os engenheiros trabalhando em todo o ciclo de vida do aplicativo — desde desenvolvimento e testes até implementação e operações — e adquirindo uma série de habilidades multidisciplinares.
As equipes de DevOps usam ferramentas para automatizar e acelerar processos, o que ajuda a aumentar a confiabilidade. Uma cadeia de ferramentas de DevOps ajuda as equipes a abordar importantes fundamentos do DevOps, incluindo integração contínua, entrega contínua, automação e colaboração.
Às vezes, os valores do DevOps são aplicados a outras equipes além do desenvolvimento. Quando as equipes de segurança adotam uma abordagem de DevOps, a segurança passa a ser uma parte ativa e integrada do processo de desenvolvimento. O nome disso é DevSecOps.
O ciclo de vida de DevOps
Devido à natureza contínua de DevOps, os profissionais usam o ciclo infinito para mostrar como as fases do ciclo de vida de DevOps se relacionam entre si. Apesar de parecer fluir em sequência, o ciclo simboliza a necessidade de colaboração constante e melhoria iterativa ao longo de todo o ciclo de vida.
O ciclo de vida de DevOps consiste em seis fases, que representam os processos, recursos e ferramentas necessários para o desenvolvimento (no lado esquerdo do ciclo) e para as operações (no lado direito do ciclo). Ao longo de cada fase, as equipes colaboram e se comunicam para manter o alinhamento, a velocidade e a qualidade.
Saiba mais
Criar software é um esporte coletivo. Em preparação para o próximo sprint, as equipes devem fazer workshops para explorar, organizar e priorizar ideias. As ideias devem se alinhar às metas estratégicas e gerar impacto no cliente. A agilidade pode ajudar a orientar as equipes de DevOps.
Planeje
As equipes de DevOps devem adotar práticas ágeis para melhorar a velocidade e a qualidade. O método ágil é uma abordagem iterativa para gestão de projetos e desenvolvimento de software que ajuda as equipes a dividir o trabalho em partes menores para gerar valor adicional.
Compilação
O Git é um sistema de controle de versões gratuito e de código aberto. O Git oferece excelente suporte para ramificar, mesclar e reescrever o histórico do repositório, resultando em muitas ferramentas e muitos fluxos de trabalho inovadores e eficientes para o processo de build de desenvolvimento.
Teste
A integração contínua (IC) permite que vários desenvolvedores contribuam com um único repositório compartilhado. Quando as alterações de código são mescladas, testes automatizados são executados para garantir a exatidão antes da integração. A fusão e o teste de código, em geral, ajudam as equipes de desenvolvimento a garantir a qualidade e a previsibilidade do código depois de implantado.
Implementação
A implementação contínua (CD) permite que as equipes lancem funções com frequência na produção automatizada. As equipes também têm a opção de implantar com sinalizadores de funções, entregando novos códigos aos usuários com constância e sistematicidade, em vez de tudo de uma só vez. Essa abordagem melhora a velocidade, a produtividade e a sustentabilidade das equipes de desenvolvimento de software.
Operação
Gerencie a entrega de serviços de TI aos clientes de ponta a ponta. Essa abordagem inclui as práticas envolvidas no projeto, implementação, configuração, implantação e manutenção de toda a infraestrutura de TI que sustenta os serviços de uma empresa.
Observações
Identifique e resolva com rapidez problemas que afetam o tempo de atividade, a velocidade e a funcionalidade do produto. Notifique automaticamente a equipe sobre alterações, ações de alto risco ou falhas, para que você consiga manter os serviços ativos.
Feedback contínuo
As equipes de DevOps precisam avaliar cada versão e gerar relatórios para melhorar versões futuras. Ao reunir feedback contínuo, as equipes conseguem melhorar processos e incorporar o feedback do cliente para aperfeiçoar a próxima versão.
Ferramentas do DevOps
As ferramentas DevOps abordam as principais fases do ciclo de vida do DevOps. As ferramentas de DevOps ajudam as equipes a melhorar a colaboração, reduzir a troca de contexto, introduzir automação e aproveitar a observabilidade e o monitoramento.
Em geral, as cadeias de ferramentas de DevOps seguem duas abordagens: multifuncional ou aberta. Uma cadeia de ferramentas multifuncional oferece uma solução completa que em geral não se integra a outras ferramentas de terceiros, enquanto o modelo aberto permite a personalização com diferentes ferramentas. As duas abordagens têm prós e contras.
Um exemplo de cadeia de ferramentas de DevOps aberta é a solução Open DevOps da Atlassian, que inclui o Jira como base e tem integração com os principais fornecedores e aplicativos do mercado.
Quais são os benefícios do DevOps?
Na pesquisa de tendências de DevOps de 2020 da Atlassian, 99% dos entrevistados disseram que o DevOps teve impacto positivo em sua empresa. Os benefícios do DevOps incluem lançamentos mais rápidos e fáceis, eficiência da equipe, maior segurança, produtos de maior qualidade e, como consequência, equipes e clientes mais satisfeitos.
Velocidade
Equipes que praticam DevOps lançam versões com mais frequência e com qualidade e estabilidade maiores. Na verdade, o relatório “2019 State of DevOps” da DORA descobriu que equipes de elite implementaram com uma frequência 208 vezes maior e 106 vezes mais rápido do que equipes de baixo desempenho. A entrega contínua permite que as equipes criem, testem e entreguem software com ferramentas automatizadas.
Melhor colaboração
A base do DevOps é uma cultura de colaboração entre desenvolvedores e equipes de operações, que compartilham responsabilidades e trabalham juntas. Assim as equipes ficam mais eficientes e economizam tempo relacionado à transferência de trabalho e à criação de códigos projetados para o ambiente em que são executados.
Implementação rápida
Ao aumentar a frequência e a velocidade dos lançamentos, as equipes de DevOps melhoram os produtos com rapidez. Ao liberar novas características e reparar bugs com agilidade, é possível obter vantagem competitiva.
Qualidade e confiabilidade
Práticas como integração contínua e entrega contínua garantem que as mudanças sejam funcionais e seguras, melhorando a qualidade dos produtos de software. O monitoramento ajuda as equipes a se manterem informadas sobre o desempenho em tempo real.
Segurança
Ao incorporar a segurança em um pipeline de integração contínua, entrega contínua e implementação contínua, o DevSecOps passa a ser uma parte ativa e integrada do processo de desenvolvimento. A segurança é integrada ao produto, com auditorias de segurança ativas e testes de segurança fazendo parte de fluxos de trabalho de desenvolvimento ágil e de DevOps.
Quais são os desafios da adoção do DevOps?
É difícil mudar um hábito. As equipes acostumadas com formas de trabalho fragmentadas podem ter dificuldade ou até resistir à reformulação das estruturas da equipe para a adoção de práticas de DevOps. Algumas equipes podem acreditar na ideia equivocada de que novas ferramentas são suficientes para a adoção do DevOps. No entanto, o DevOps é uma combinação de pessoas, ferramentas e cultura. Todos os membros de uma equipe de DevOps precisam entender o fluxo de valor como um todo, da concepção ao desenvolvimento e à experiência do usuário final. É necessário acabar com a fragmentação para colaborar durante todo o ciclo de vida do produto.
O DevOps não é o trabalho de uma pessoa individual. É o trabalho de todos.
Robert Krohn
Chefe de engenharia, DevOps da Atlassian
A mudança de uma infraestrutura legada para o uso de Infraestrutura como Código (IaC) e microsserviços pode acelerar o desenvolvimento e a inovação, mas o aumento da carga de trabalho operacional talvez seja um desafio. É melhor criar uma base sólida de automação, gerenciamento de configuração e práticas de entrega contínua para ajudar a facilitar a carga.
A dependência excessiva de ferramentas pode afastar as equipes dos fundamentos do DevOps necessários: a estrutura da equipe e da empresa. Após o estabelecimento da estrutura, os processos e a equipe devem ser a próxima etapa, seguidos pelas ferramentas.
Como adotar o DevOps
Em primeiro lugar, a adoção do DevOps exige o compromisso de avaliar e, possivelmente, alterar ou remover equipes, ferramentas ou processos que a empresa usa no momento. Ou seja: construir a infraestrutura necessária para dar às equipes a autonomia para criar, implementar e gerenciar produtos sem depender muito de equipes externas.
Cultura de DevOps
Uma cultura de DevOps é aquela em que as equipes adotam novas formas de trabalhar com maior colaboração e comunicação. É o alinhamento de pessoas, processos e ferramentas para um foco mais unificado no cliente. As equipes multidisciplinares assumem a responsabilidade por todo o ciclo de vida do produto.
Aprendizado contínuo
As empresas que praticam o DevOps bem são lugares que incentivam a experimentação e uma certa quantidade de riscos. Nesses locais, pensar fora da caixa é a norma, e o fracasso é entendido como parte natural do aprendizado e das melhorias.
Tutorial
As metodologias ágeis são muito populares na indústria de software, pois capacitam as equipes para que tenham flexibilidade, boa organização e capacidade de responder às mudanças como características inerentes. O DevOps é uma mudança cultural que promove a colaboração entre as pessoas que criam e fazem a manutenção de software. Quando usados em conjunto, as metodologias ágeis e o DevOps resultam em alta eficiência e confiabilidade.
Práticas de DevOps
Integração contínua
Integração contínua é a prática de automatizar a integração de alterações de código em projetos de software. Com ela, os desenvolvedores podem mesclar alterações de código com frequência em um repositório central onde builds e testes são executados. Assim as equipes de DevOps podem resolver bugs mais rápido, melhorar a qualidade do software e reduzir o tempo necessário para validar e lançar novas atualizações de software.
Serviço constante
A entrega contínua expande a integração contínua ao implementar automaticamente as alterações de código em um ambiente de teste/produção. Ela segue um pipeline de entrega contínua, em que builds, testes e implementações automatizados são orquestrados como um fluxo de trabalho de lançamento.
Consciência situacional
É fundamental que todos os membros da empresa tenham acesso aos dados de que precisam para fazer seu trabalho da maneira mais eficaz e rápida possível. Os membros da equipe precisam ser alertados sobre falhas no pipeline de implementação, sejam elas sistêmicas ou devido a erros nos testes, e receber atualizações em tempo hábil sobre a integridade e o desempenho dos aplicativos em execução na produção. Métricas, registros, rastreamentos, monitoramento e alertas são fontes essenciais de feedback de que as equipes precisam para fundamentar o trabalho.
Automação
A automação é uma das práticas de DevOps mais importantes porque permite que as equipes se movam muito mais rápido pelo processo de desenvolvimento e implementação de software de alta qualidade. Com a automação, o simples ato de enviar alterações de código para um repositório de código-fonte pode acionar um processo de build, teste e implementação, com redução significativa na duração dessas etapas.
Infraestrutura como código
Para empresas com data centers locais ou totalmente na nuvem, ter a capacidade de provisionar, configurar e gerenciar a infraestrutura com rapidez e consistência é a chave para a adoção bem-sucedida do DevOps. A infraestrutura como código (IaC) vai além da simples configuração da infraestrutura de script para tratar as definições de infraestrutura como código: usando controle de origem, revisões de código, testes etc.
Microsserviços
Com a técnica arquitetônica de microsserviços, um aplicativo é construído como uma coleção de serviços menores que podem ser implementados e operados de modo independente uns dos outros. Cada serviço tem seus próprios processos e se comunica com os outros por uma interface. Essa separação de problemas e função independente dissociada possibilita práticas de DevOps, como entrega contínua e integração contínua.
Monitoramento
As equipes de DevOps monitoram todo ciclo de vida de desenvolvimento, desde planejamento, desenvolvimento, integração e teste até implementação e operações. Assim, as equipes conseguem responder a qualquer degradação na experiência do cliente, de maneira rápida e automática. E, o mais importante, ele permite que as equipes façam o “shift left” para estágios anteriores do desenvolvimento e minimizem mudanças de produção interrompidas.
Introdução ao DevOps
A maneira mais fácil de começar a usar o DevOps é identificar um pequeno fluxo de valor (por exemplo, um pequeno aplicativo ou serviço de suporte) e começar a experimentar algumas práticas de DevOps. Assim como no desenvolvimento de software, é muito mais fácil transformar um único fluxo com um pequeno grupo de interessados do que tentar fazer uma transição organizacional completa para uma nova forma de trabalhar.
A Atlassian oferece a solução Open DevOps, que garante processos completos de DevOps com a Atlassian e outras ferramentas de terceiros. Com o Jira como base, as equipes podem usar produtos Atlassian ou trazer seus produtos favoritos para a cadeia de ferramentas aberta. O ecossistema Atlassian oferece um conjunto robusto de integrações e complementos, permitindo que as equipes personalizem seu conjunto de ferramentas para atender às suas necessidades.
Não deixe de conferir os tutoriais de DevOps sobre automação, testes, segurança, observabilidade, sinalização de características e entrega contínua.
Inscreva-se para receber a newsletter de DevOps
Thank you for signing up