Close

DevOps: rompendo a barreira entre desenvolvimento e operações

O DevOps alinha o desenvolvimento e as operações para otimizar a qualidade e a entrega.

wac/devops

Logotipo da equipe de 2022

Confira o que rolou! Assista às palestras principais, às sessões mais populares e às demonstrações aprofundadas de produtos que aconteceram na conferência anual para usuários da Atlassian.

Começa em
-6
Hora
-5
minutos
-7
segundos

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.

Símbolo do infinito do DevOps

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.

Ícone de caneta no papel

Plano

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.

Entrega e integração contínuas

A CI/CD permite que as equipes lancem produtos de qualidade com frequência e previsibilidade, do repositório de código-fonte à produção, com fluxos de trabalho automatizados. As equipes podem mesclar alterações de código com frequência, implementar sinalizadores de funcionalidades e incorporar testes de ponta a ponta.

Ícone de olho

Monitore e alerte

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.

Operar

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.

Feedback de DevOps

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


Símbolo do infinito 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.

Velocímetro

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.

Chamada de vídeo

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.

Foguete de lançamento de código

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 novos recursos e reparar bugs com agilidade, é possível obter vantagem competitiva.

Pipeline de código

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.

Escudo de segurança

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.

Aspas

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.

Olho

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 recursos e entrega contínua.

Ilustração do workshop de DevOps