5 abstract objects connected to each other with orange lines

O que é DevOps?

O DevOps é uma prática comercial holística que combina pessoas, tecnologias, práticas culturais e processos para reunir equipes anteriormente isoladas e fornecer softwares melhores com mais rapidez. As implementações bem-sucedidas de DevOps são vistas como uma mudança organizacional quando se trata de desenvolvimento de software. Saiba mais sobre DevOps e como otimizar o fornecimento de software com DevOps em todo o ciclo de vida de desenvolvimento de software (SDLC).

Definição de DevOps

Ao reunir pessoas, processos e produtos, o DevOps permite que as equipes de desenvolvimento forneçam valor aos seus clientes constantemente.

O que queremos dizer quando falamos em DevOps?

Uma mudança de cultura? Uma maneira de trabalhar? Ferramentas específicas?

Quando se trata do significado de DevOps, é mais do que apenas automação. Na verdade, trata-se de organizações que seguem um processo viabilizado por software para ajudá-las a agregar valor. DevOps é uma prática de negócios em que as equipes de desenvolvimento, operações de TI e segurança se associam para criar, testar e fornecer feedback regular durante todo o SDLC.  

Para adotar com sucesso a metodologia DevOps, as pessoas mudam a maneira como trabalham e colaboram. Da mudança de cultura à automação com integração contínua e implantação contínua (CI/CD), vamos explorar como as equipes de DevOps desenvolvem contexto, conhecimento, ferramentas e funções compartilhados para enviar produtos melhores.

4 siloed pillars with text dev team, qa team, sec team, and ops team

Como o DevOps foi criado: de silos a fluxos de trabalho compartilhados

O DevOps define um novo padrão para a forma como criamos software. Antes de meados dos anos 2000, os desenvolvedores, as operações de TI e as equipes de segurança geralmente trabalhavam em silos e seguiam um processo linear:

  • Os desenvolvedores escreviam o código, empacotavam a aplicação com a documentação e a enviavam para o controle de qualidade. 

  • A equipe de controle de qualidade testou a aplicação e a entregou à equipe de operações de produção. 

  • A equipe de operações implementou o software na produção e gerenciou o tempo de atividade e a estabilidade do software, com pouca ou nenhuma interação direta com a equipe de desenvolvimento. 

  • A equipe de segurança só verificou o código em busca de vulnerabilidades após a implantação.  

  • Se alguém relatasse um problema, todo o processo começava novamente.  

Essa abordagem linear do desenvolvimento de software era lenta e frustrante para todos os envolvidos. Então, em 2008, o administrador de sistemas Patrick Debois e o desenvolvedor de software Andrew Shafer criaram um grupo de trabalho para ajudar a preencher a lacuna entre as equipes de operações e de desenvolvimento. Suas práticas recomendadas iniciaram a jornada rumo aos processos de DevOps que conhecemos hoje. 

Saiba mais sobre a história do DevOps 

Eliminação da lacuna entre operações e desenvolvimento 

Em uma cultura DevOps, as equipes trabalham juntas em um fluxo de trabalho compartilhado para melhorar continuamente os processos de entrega e gerenciamento de software. O engenheiro de DevOps desempenha uma função importante, gerenciando continuamente as comunicações da equipe e projetando e implementando estratégias. Além das tarefas relacionadas ao código, o engenheiro de DevOps é responsável por resolver problemas relacionados a testes, monitoramento, gerenciamento de versões e planejamento operacional. 

O que é um modelo de DevOps? 

Como cada implementação de DevOps é exclusiva para as necessidades comerciais da empresa, não existe realmente um modelo de DevOps único para todos.  No entanto, as principais filosofias do DevOps incluem a quebra de silos e a ideia de que todos devem assumir a responsabilidade por um produto e trabalhar juntos como uma equipe em todas as partes do SDLC.

Benefícios do DevOps

As implantações tradicionais são difíceis, manuais e, muitas vezes, não funcionam, levando ao esgotamento dos funcionários e a ciclos de lançamento insustentáveis. Em comparação, uma pesquisa recente mostra que o uso de metodologias e princípios de DevOps, como a automação, aumenta a produtividade e melhora a experiência do desenvolvedor.  

O DevOps torna o desenvolvimento de software mais rápido, mais amigável e mais colaborativo. Os engenheiros que trabalham em equipes de DevOps concentram-se em suas metas, priorizam o equilíbrio entre vida pessoal e profissional e têm mais tempo para os projetos que lhes interessam. Esse tipo de satisfação se baseia no que sabemos da psicologia organizacional: as equipes fazem seu melhor trabalho quando estão pessoalmente envolvidas no resultado.

Gray circle with chart trending upward

Melhora da produtividade

Reduza as tarefas manuais e ganhe consistência, confiabilidade e eficiência.

Gray circle with cube

Código pronto para a nuvem

Provisione facilmente ambientes na nuvem para ajudar as equipes a trabalhar mais rapidamente em escala e atender à demanda.

Gray circle with lock shield in the center

Segurança

Proteja clientes e códigos enquanto gerencia o acesso em locais e ambientes.

Gray circle with 2 people outlines

Colaboração

Crie e promova uma cultura colaborativa com comunicação aprimorada.

Passamos de mais de 30 grupos de engenharia de software em pontos de isolamento para uma equipe amplamente coesa. Com o uso de padrões e automação, a jornada do DevOps agora tem três etapas.
Denis Canty avatar
Denis CantyMcKesson Labs // Vice-presidente de serviços para desenvolvedores e laboratórios de tecnologia

Como o DevOps funciona

O ciclo de vida do DevOps

O ciclo de vida do DevOps abrange todos os aspectos do desenvolvimento de software. As equipes de DevOps colaboram continuamente e compartilham ferramentas e responsabilidades em todas as fases do ciclo de vida para criar e enviar software com eficiência.

Infinity symbol with text Idea, Build, Ship, Learn

Quatro fases do ciclo de vida do DevOps

Gray circle with pencil

Idea

As equipes reúnem requisitos e feedback e começam a esboçar os recursos de que precisarão. As equipes de DevOps se concentram no planejamento contínuo: planos que podem ser atualizados com frequência, até mesmo diariamente. Para criar roteiros e acompanhar o progresso em direção às suas metas, as equipes utilizam ferramentas de gerenciamento de projetos que todos podem acessar e usar.

Stack de idealização

GitHub Issues e quadros de projetos

Saiba mais sobre o planejamento e o monitoramento

Gray circle with open and close brackets

Compilar

À medida que os gerentes de projeto atribuem tarefas, os desenvolvedores começam a trabalhar. É aqui que o DevOps ganha vida. Com o controle de versão e os ambientes de desenvolvimento baseados em nuvem, os desenvolvedores podem fazer alterações contínuas e revisar o código juntos em tempo real. Para os desenvolvedores, ferramentas como o GitHub Codespaces facilitam a realização de alterações de forma rápida, segura e fácil, sem a necessidade de criar ou manter um ambiente de desenvolvimento de desktop. A integração contínua (CI) também entra em ação, quando ferramentas automatizadas transformam as alterações de código em compilações, executam testes em relação às verificações necessárias e mesclam e preparam o código para implantação.

Stack de integração contínua

GitHub Codespaces, GitHub Actions

Saiba mais sobre a integração contínua

Gray circle with rocket ship blasting off

Envio

Depois de passar pelas verificações iniciais, os desenvolvedores usam ferramentas de entrega contínua (CD) para enviar automaticamente as alterações de código para um ambiente de teste ou preparação que não seja de produção. As equipes de operações podem implementar imediatamente as alterações na produção, sem surpresas.

Stack de implantação contínua

Pipelines de CD com GitHub Actions, GitHub Packages, Microsoft Azure 

Saiba mais sobre a implantação

Gray circle with two arrows where the pointing to the start of each other in a circle shape

Aprender

O software pode estar disponível para o mundo, mas o trabalho ainda não terminou. As equipes de operações ficam de olho nas versões com ferramentas de monitoramento que medem o desempenho e acompanham o impacto das alterações de código. Elas garantem a estabilidade e o tempo de atividade, reúnem o feedback dos clientes e mantêm contato próximo com os desenvolvedores para enviar as correções necessárias e resolver os incidentes mais rapidamente. 

Stack de observabilidade

Netdata, Lightstep, New Relic, App Dynamics, Sentry, Raygun, Honeycomb, Splunk

Automação em todas as etapas

O DevOps enfatiza a automação e a colaboração para liberações mais rápidas. A automação de tarefas por meio de CI/CD em um pipeline de DevOps acelera o desenvolvimento e a implantação de software e ajuda a garantir resultados de alta qualidade com testes, relatórios e monitoramento.
Saiba mais sobre automação

Pull request showing all tests passing

Adoção de um modelo e cultura de DevOps

O sucesso do DevOps depende de uma mudança cultural - adotar uma abordagem de colaboração em primeiro lugar para o software originalmente desenvolvido por equipes de código aberto. No código aberto, os desenvolvedores incentivam a transparência, as cargas de trabalho compartilhadas, o feedback e as revisões contínuas e a documentação robusta. Relatórios do setor, como o DORA's State of DevOps, dos pesquisadores Nicole Forsgren, Jez Humble e Gene Kim, e estruturas populares de DevOps, como o CALMS, costumam usar essas práticas recomendadas como referência para uma cultura de DevOps bem-sucedida.

Gray circle with 2 speech bubbles

Colaboração

A colaboração é a essência do DevOps. As equipes de desenvolvedores e de operações se comunicam regularmente sobre cronogramas e metas, e todos são responsáveis pelo sucesso do projeto.

Gray circle with robot

Automação

À medida que as equipes trabalham juntas e compartilham ferramentas, a automação oferece suporte à consistência, à confiabilidade e à eficiência em toda a organização, facilitando a descoberta e a solução de problemas.

Gray circle with diamond

Transparência

O feedback contínuo e o acesso aberto aos repositórios incentivam a colaboração dentro e fora das equipes individuais. Ele também promove o InnerSource, o processo de usar as práticas recomendadas de código aberto para criar códigos internos.

Operações de DevOps evoluídas

Com o DevOps, as equipes de operações agora estão integradas ao desenvolvimento e têm interesse em capacitar os desenvolvedores. Isso geralmente significa trabalhar mais de perto com os desenvolvedores para fornecer acesso sob demanda a ambientes e ferramentas seguros e em conformidade. Isso também significa recorrer à automação para mais tarefas repetitivas, como atualização de sistemas e resolução de incidentes.

Gerenciamento eficaz de DevOps

Os gerentes de DevOps são responsáveis pela implementação da estrutura de DevOps em todo o processo de desenvolvimento e implantação. Isso inclui assumir a responsabilidade pela entrega bem-sucedida de software, monitorar fluxos de trabalho e supervisionar o gerenciamento de lançamento de software. Os gerentes de DevOps eficazes são líderes com excelentes habilidades interpessoais e de resolução de problemas, além de uma sólida formação técnica.

Práticas recomendadas de DevOps para implementação

O DevOps é implementado seguindo as práticas de DevOps em todo o ciclo de vida da aplicação. Algumas práticas ajudam a acelerar, melhorar e automatizar uma fase específica do DevOps, e outras ajudam a melhorar a produtividade em várias fases.

Observamos economias significativas na organização e agora nossos engenheiros têm ainda mais tempo para dedicar ao que é mais importante, a lógica de negócios.
Stuart Davidson
Stuart DavidsonSkyscanner // Gerente de engenharia

Integração contínua

Os desenvolvedores usam a CI para automatizar, mesclar e testar o código. A CI ajuda a detectar bugs no início do ciclo de desenvolvimento, quando a correção é menos dispendiosa. A CI também executa testes automatizados para ajudar a garantir a qualidade. Para promover implementações frequentes, as equipes usam a CI para produzir artefatos implementáveis, incluindo infraestrutura e aplicações, que alimentam os processos de lançamento.

Implantação contínua

Nesse processo, o código é criado, testado e implantado para ser testado em ambientes de produção. Para aumentar a qualidade, as equipes implementam e testam em vários ambientes. Os sistemas de CD também são usados para processos automatizados de lançamento e correções no software existente.

Controle de versão

O uso do controle de versão é uma prática fundamental de DevOps que permite que vários desenvolvedores colaborem na criação de códigos. Um sistema de controle de versão oferece um processo claro para mesclar alterações de código, resolver conflitos e reverter alterações para versões anteriores quando necessário.

Desenvolvimento ágil de software

Por meio de ciclos curtos de lançamento, a abordagem de desenvolvimento ágil de software permite alta adaptabilidade a mudanças. As equipes ágeis oferecem melhorias contínuas aos seus clientes, coletam feedback e fazem ajustes com base nas necessidades e desejos dos clientes.

Infraestrutura como código

Ao definir as topologias e os recursos do sistema de forma descritiva, a infraestrutura como código permite que as equipes gerenciem os recursos da mesma forma que gerenciam o código. Isso os ajuda a implementar recursos do sistema de forma repetível, confiável e controlada, além de manter ambientes de teste e desenvolvimento idênticos aos de produção.

Gerenciamento de configuração

Gerenciamento de configuração significa gerenciar o estado dos recursos em um sistema, incluindo bancos de dados, máquinas virtuais e servidores. As ferramentas de gerenciamento de configuração ajudam as equipes a reduzir os riscos, implementando as mudanças de forma sistemática e controlada. As equipes também usam essas ferramentas para rastrear o estado do sistema e operar ambientes complexos em escala.

Monitoramento contínuo

Por meio do monitoramento contínuo, as equipes obtêm visibilidade total e em tempo real da integridade e do desempenho de toda a stack de aplicações. As equipes de DevOps de alto desempenho garantem a definição de alertas significativos e acionáveis e a coleta de dados de log e eventos de telemetria. Os insights derivados desses dados ajudam a equipe a atenuar os problemas em tempo real e a melhorar a aplicação em versões futuras.

O que você pode fazer com o DevOps?

Veja como as equipes de alto desempenho colocam a colaboração e a automação para trabalhar.

Mckesson Labs logo

Mckesson Labs

Criação de uma stack de tecnologia coesa de DevOps.

Conheça a Mckesson >

Dell Technologies logo

Dell Technologies

Padronização para dar suporte ao innersource e à escalabilidade.

Conheça a Dell Technologies >

The Home Depot

Modernização da infraestrutura e das ferramentas de desenvolvimento.

Conheça a The Home Depot >

Dow Jones logo

Dow Jones

Trazer a segurança automatizada para os pipelines de CI/CD.

Conheça a Dow Jones >

Autodesk logo with gray background

Autodesk

Aperfeiçoamento da colaboração e da confiabilidade na nuvem.

Conheça a Autodesk >

American Airlines logo

American Airlines

Promoção da inovação usando o GitHub como uma incubadora de ideias. 

Conheça a American Airlines >

O acesso, o compartilhamento e a colaboração que acontecem quando somos todos uma única organização são fantásticos.
Cynthia Payne
Cynthia PayneNationwide // Vice-presidente de serviços de aplicações de TI

DevOps e DevSecOps

O que é DevSecOps?

Assim como o desenvolvimento e as operações, o DevSecOps integra testes automatizados de segurança em todas as partes da cultura, das ferramentas e dos processos do DevOps.
Saiba mais sobre DevSecOps

Four cogs, dev, qa, ops, prod, and an arrow pointing left

Para muitos profissionais, a segurança sempre foi pensada para fazer parte do DevOps. Em vez de acontecer no final do SDLC, a segurança do DevOps começa na fonte: o código. Essa abordagem é comumente conhecida como DevSecOps ou "shift left". O GitHub sempre considerou que DevOps bom significa DevSecOps, e as ferramentas do GitHub facilitam para as equipes de DevOps a inclusão da segurança em cada etapa do SDLC. 

Usando ferramentas de segurança automatizadas, os desenvolvedores encontram e solucionam as vulnerabilidades de segurança à medida que codificam, em vez de esperar que as equipes de segurança as solucionem após a implementação. Ao capacitar os desenvolvedores a assumir a responsabilidade pela segurança em todo o ciclo de vida do DevOps, o DevSecOps permite que as equipes de desenvolvimento, operações e segurança encontrem e corrijam os problemas de segurança com mais rapidez.

Você conserta o problema e segue em frente, porque, adivinhe só? Você leva um minuto para resolver esse problema de segurança no desenvolvimento, quando isso poderia levar dias na produção.
Shamal Siwan
Shamal SiwanDepartamento de Tecnologia da Califórnia // Engenheiro líder de DevOps/Arquiteto de soluções

Produtos de DevOps

Cada fase do ciclo de vida do DevOps tem considerações exclusivas que um ou mais produtos podem ajudar a resolver. As organizações podem investir na criação de uma coleção de ferramentas para usar em sua prática de DevOps, chamada de "toolchain de DevOps", para abordar cada fase do ciclo de vida. As organizações de DevOps mais bem-sucedidas terão esses tipos de ferramentas para ajudá-las a fornecer software de alta qualidade com mais rapidez.

Confira como o GitHub se compara a outras plataformas de DevOps

CI/CD

Ao longo deste artigo, discutimos como a CI/CD é fundamental para qualquer prática de DevOps. O GitHub Actions, uma solução completa de software de DevOps CI/CD, permite que as equipes de DevOps criem códigos mais seguros desde o início e implantem software com confiança, sem sacrificar a velocidade.

Automação de workflow

A automação é outro componente fundamental do DevOps e o GitHub Actions facilita a automação dos fluxos de trabalho do software DevOps, com CI/CD de classe mundial. Isso inclui revisões de código, gerenciamento de ramificações e triagem de problemas.

Controle de versão e do código-fonte

As melhores plataformas de controle de versão e código-fonte, como o GitHub, integram-se à toolchain de DevOps da organização e capacitam as equipes de produtos a colaborar em todo o ciclo de vida do DevOps. Elas incluem recursos de produtividade, como solicitações pull, que ajudam os desenvolvedores a obter revisões das alterações de código propostas antes de serem integradas à ramificação principal do código.

Segurança

As empresas que investem em DevOps geralmente investem em várias ferramentas para modelar ameaças e aplicar testes automatizados de segurança. Soluções integradas como o GitHub Advanced Security ajudam a garantir a segurança de software por meio de cada fase do SDLC. Por exemplo, o GitHub Advanced Security verifica o código conforme ele é criado para ajudar os desenvolvedores a protegerem o código em minutos, observa seus repositórios e os notifica sobre segredos emitidos por mais de 45 provedores de segredos líderes, além de ajudar a transformar melhores práticas em melhores processos de desenvolvimento.

Comece a construir seu fluxo de trabalho de DevOps

Quer você esteja pronto para mergulhar ou ainda tenha dúvidas, nós o ajudaremos.

Explore as práticas recomendadasObtenha uma demonstração do GitHub

Perguntas frequentes

O que é automação DevOps?

A automação DevOps permite que equipes de desenvolvimento reduzam a possibilidade de erro humano e acelerem o lançamento de software ao substituírem tarefas manuais por processos automatizados. Por exemplo, a integração e a entrega contínuas automatizam as fases de desenvolvimento, teste e implementação do ciclo de vida de DevOps.

Qual é a diferença entre DevOps e SRE?

Tanto o DevOps como a engenharia de confiabilidade de sites (SRE) aprimoram o ciclo de vida de desenvolvimento de software por meio da melhoria da automação, da colaboração e do monitoramento. A principal diferença é que as equipes de DevOps criam e atualizam software, enquanto as equipes de SRE trabalham com software que já está em produção para garantir que ele funcione corretamente e atenda aos acordos de nível de serviço.

O que é o modelo de DevOps?

Como cada implementação de DevOps é exclusiva para as necessidades comerciais da empresa, não existe realmente um modelo de DevOps único para todos.  No entanto, as principais filosofias do DevOps incluem a quebra de silos e a ideia de que todos devem assumir a responsabilidade por um produto e trabalhar juntos como uma equipe em todas as partes do SDLC.

Qual é a diferença entre DevOps e DevSecOps?

O DevSecOps baseia-se no DevOps ao integrar testes automatizados de segurança em todas os aspectos da cultura, das ferramentas e dos processos do DevOps. Com isso, os desenvolvedores encontram e solucionam as vulnerabilidades de segurança à medida que codificam, em vez de esperar que as equipes de segurança as solucionem após a implementação. Ao capacitar os desenvolvedores a assumir a responsabilidade pela segurança em todo o ciclo de vida do DevOps, o DevSecOps permite que as equipes de desenvolvimento, operações e segurança encontrem e corrijam os problemas de segurança com mais rapidez.

O que é considerado um DevOps de qualidade?

Um processo de DevOps de qualidade combina o “desenvolvimento” e as “operações” para aproximar as equipes e oferecer um software melhor e mais rápido. As melhores práticas para avaliar o sucesso do DevOps incluem colaboração, automação de tarefas repetitivas e transparência, como feedback constante e aceso livre a repositórios.

O que faz um engenheiro de DevOps?

Um engenheiro de DevOps desempenha uma função importante no ciclo de vida de DevOps, gerenciando continuamente as comunicações da equipe e projetando e implementando estratégias. Além das tarefas relacionadas ao código, o engenheiro de DevOps é responsável por resolver problemas relacionados a testes, monitoramento, gerenciamento de versões e planejamento operacional.