Trace Id is missing
Pular para o conteúdo principal

O que é o DevOps?

Descubra como o DevOps unifica pessoas, processos e tecnologias para oferecer aos clientes produtos de qualidade superior com rapidez.

Definição do DevOps

Um composto de Dev (desenvolvimento) e Ops (operações), o DevOps é a união de pessoas, processos e tecnologias para fornecer continuamente valor aos clientes.

O que o DevOps significa para as equipes? O DevOps permite que funções anteriormente isoladas – desenvolvimento, operações de TI, engenharia da qualidade e segurança – atuem de forma coordenada e colaborativa para gerar produtos melhores e mais confiáveis. Ao adotar uma cultura de DevOps em conjunto com as práticas e ferramentas de DevOps, as equipes ganham a capacidade de responder melhor às necessidades dos clientes, aumentar a confiança nos aplicativos que constroem e cumprir as metas empresariais mais rapidamente.

Benefícios do DevOps

Equipes que adotam a cultura, as práticas e as ferramentas de DevOps apresentam alto desempenho, criando produtos melhores, com mais rapidez, para maior satisfação do cliente. Esse aumento na colaboração e na produtividade também é essencial para cumprir metas empresariais como as seguintes:

Acelerar a colocação no mercado

Adaptar ao mercado e à concorrência

Manter a estabilidade e a confiabilidade do sistema

Melhorar o tempo médio de recuperação

DevOps e o ciclo de vida do aplicativo

O DevOps influencia o ciclo de vida do aplicativo em todas as fases do planejamento, do desenvolvimento, da entrega e da operação. Cada fase depende das demais e elas não são específicas da função. Em uma verdadeira cultura de DevOps, cada função está envolvida de alguma forma em cada fase.

Planejamento

Na fase de planejamento, as equipes de DevOps idealizam, definem e descrevem os recursos e as funcionalidades dos aplicativos e sistemas que estão construindo. Elas acompanham o progresso em níveis altos e baixos de granularidade, desde tarefas de produto único até tarefas que abrangem portfólios de vários produtos. Criar listas de pendências, acompanhar bugs, gerenciar o desenvolvimento de software Agile com o Scrum, usar quadros Kanban e visualizar o progresso com painéis são algumas das maneiras pelas quais as equipes de DevOps planejam com agilidade e visibilidade.

Desenvolvimento

A fase de desenvolvimento inclui todos os aspectos da codificação – gravação, teste, revisão e integração do código pelos membros da equipe – bem como a compilação do código em artefatos de compilação, que podem ser implementados em vários ambientes. As equipes de DevOps buscam inovar rapidamente sem sacrificar a qualidade, a estabilidade e a produtividade. Para fazer isso, elas usam ferramentas extremamente produtivas, automatizam etapas elementares e manuais e iteram em pequenos incrementos por meio de testes automatizados e integração contínua.

Entrega

A entrega é o processo de implantação de aplicativos nos ambientes de produção de maneira consistente e confiável. A fase de entrega também inclui a implantação e a configuração da infraestrutura fundamental totalmente governada que compõe esses ambientes.

Na fase de entrega, as equipes definem um processo de gerenciamento de versão com estágios claros de aprovação manual. Elas também definem portões automatizados que movem os aplicativos entre os estágios, até que sejam disponibilizados aos clientes. A automação desses processos os torna escalonáveis, repetíveis e controlados. Dessa forma, as equipes que praticam o DevOps podem frequentemente atuar e entregar com facilidade, confiança e tranquilidade.

Operação

A fase de operação envolve manter, monitorar e solucionar problemas de aplicativos em ambientes de produção. Ao adotar as práticas de DevOps, as equipes trabalham para garantir a confiabilidade do sistema, a alta disponibilidade e o objetivo de tempo de inatividade igual a zero, reforçando a segurança e a governança. As equipes de DevOps buscam identificar os problemas antes que eles afetem a experiência do cliente e mitigar os problemas rapidamente quando ocorrem. Manter esse nível de vigilância requer telemetria avançada, alertas acionáveis e visibilidade total sobre os aplicativos e o sistema subjacente.

Cultura do DevOps

Embora a adoção de práticas de DevOps automatize e otimize processos por meio da tecnologia, tudo começa com a cultura dentro da organização e com as pessoas que fazem parte dela. O desafio de cultivar uma cultura de DevOps exige mudanças profundas na maneira como as pessoas trabalham e colaboram. No entanto, quando se comprometem com esse desafio, as organizações podem criar o ambiente ideal para o desenvolvimento de equipes de alto desempenho.

Colaboração, visibilidade e alinhamento

Um indicador de uma cultura íntegra de DevOps é a colaboração entre equipes, que começa com a visibilidade. Equipes diferentes, como as de desenvolvimento e de operações de TI, precisam compartilhar os processos, as prioridades e as preocupações de DevOps. Essas equipes também devem planejar o trabalho em conjunto, bem como alinhar as metas e as medidas do sucesso conforme se relacionam aos negócios.

Mudanças de escopo e de responsabilidade

À medida que as equipes se alinham, elas assumem a responsabilidade e se envolvem em outras fases do ciclo de vida, não apenas naquelas que são essenciais para suas funções. Por exemplo, os desenvolvedores tornam-se responsáveis não apenas pela inovação e a qualidade estabelecidas na fase de desenvolvimento, mas também pelo desempenho e estabilidade que as alterações trazem para a fase de operação. Ao mesmo tempo, os operadores de TI certamente incluirão governança, segurança e conformidade na fase de planejamento e desenvolvimento.

Ciclos de versão mais curtos

As equipes de DevOps se mantêm ágeis lançando versões de software em ciclos curtos. Ciclos de versão mais curtos facilitam o planejamento e o gerenciamento de riscos, pois o progresso é incremental, reduzindo também o impacto sobre a estabilidade do sistema. A redução do ciclo de versão também permite que as organizações se adaptem melhor e reajam de maneira mais ágil à evolução das necessidades dos clientes e à pressão da concorrência.

Aprendizado contínuo

As equipes de alto desempenho de DevOps estabelecem uma mentalidade de crescimento. Elas falham rapidamente e incorporam aprendizados aos seus processos, melhorando continuamente, aumentando a satisfação do cliente e acelerando a inovação e a capacidade de adaptação ao mercado. O DevOps é uma jornada, portanto, há sempre espaço para crescer.

Confira como as equipes em toda a Microsoft adotaram uma cultura de DevOps
Saiba mais

Práticas do DevOps

Além de estabelecer uma cultura de DevOps, as equipes dão vida ao DevOps implementando certas práticas ao longo do ciclo de vida do aplicativo. Algumas dessas práticas ajudam a acelerar, automatizar e melhorar uma fase específica. Outras abrangem várias fases, ajudando as equipes a criar processos contínuos que melhoram a produtividade.

CI/CD (Integração Contínua e Entrega Contínua)

O gerenciamento de configuração refere-se ao gerenciamento do estado dos recursos em um sistema, incluindo servidores, máquinas virtuais e bancos de dados. Usando ferramentas de gerenciamento de configuração, as equipes podem implementar alterações de maneira controlada e sistemática, reduzindo os riscos de modificar a configuração do sistema. As equipes usam ferramentas de gerenciamento de configuração para acompanhar o estado do sistema e ajudar a evitar desvios de configuração, já que é assim que a configuração de um recurso de sistema se desvia do estado desejado ao longo do tempo.

Praticadas em conjunto com a infraestrutura como código, a definição e a configuração do sistema são fáceis de padronizar e automatizar, o que ajuda as equipes a operar ambientes complexos em escala.

Controle de versão

O controle de versão é a prática de gerenciar código por meio de versões, acompanhando as revisões e o histórico de alterações para facilitar a revisão e a recuperação do código. Essa prática geralmente é implementada usando sistemas de controle de versão, como o Git, que permitem que vários desenvolvedores colaborem na criação do código. Esses sistemas fornecem um processo claro para mesclar alterações de código ocorridas no mesmo arquivo, gerenciar conflitos e reverter alterações para estados anteriores.

O uso do controle de versão é uma prática fundamental de DevOps que ajuda as equipes de desenvolvimento a trabalhar juntas, dividir as tarefas de codificação entre os membros da equipe e armazenar o código completo para fácil recuperação, se necessário.

O controle de versão também é um elemento necessário em outras práticas, como a integração contínua e a infraestrutura como código.

Desenvolvimento de software Agile

O Agile é uma abordagem de desenvolvimento de software que enfatiza a colaboração da equipe, os comentários do cliente e do usuário e a alta adaptabilidade às mudanças por meio de ciclos de versão curtos. As equipes que praticam o Agile fornecem mudanças e aprimoramentos contínuos aos clientes, coletam seus comentários, aprendem e se ajustam com base nos desejos e nas necessidades dos clientes. O Agile é substancialmente diferente de outras estruturas mais tradicionais, como a cascata, que inclui longos ciclos de versão definidos por fases sequenciais. O Kanban e o Scrum são duas estruturas populares associadas ao Agile.

Infraestrutura como código

A infraestrutura como código define os recursos e as topologias do sistema de uma maneira descritiva que permite às equipes gerenciar esses recursos da maneira como codificariam. Essas definições também podem ser armazenadas e versionadas em sistemas de controle de versão, nos quais podem ser revisadas e revertidas – novamente como código.

A prática de infraestrutura como código ajuda as equipes a implantar os recursos do sistema de maneira confiável, repetível e controlada. A infraestrutura como código também ajuda a automatizar a implantação e reduz o risco de erro humano, especialmente para ambientes grandes e complexos. Essa solução confiável e repetível para a implantação de ambientes permite que as equipes mantenham ambientes de desenvolvimento e teste idênticos ao ambiente de produção. Da mesma maneira, a duplicação de ambientes para diferentes data centers e plataformas em nuvem também se torna mais simples e eficiente.

Gerenciamento de configuração

O gerenciamento de configuração refere-se ao gerenciamento do estado dos recursos em um sistema, incluindo servidores, máquinas virtuais e bancos de dados. Usando ferramentas de gerenciamento de configuração, as equipes podem implementar alterações de maneira controlada e sistemática, reduzindo os riscos de modificar a configuração do sistema. As equipes usam ferramentas de gerenciamento de configuração para acompanhar o estado do sistema e ajudar a evitar desvios de configuração, já que é assim que a configuração de um recurso de sistema se desvia do estado desejado ao longo do tempo.

Praticadas em conjunto com a infraestrutura como código, a definição e a configuração do sistema são fáceis de padronizar e automatizar, o que ajuda as equipes a operar ambientes complexos em escala.

Monitoramento contínuo

O monitoramento contínuo significa ter visibilidade total e em tempo real sobre o desempenho e a integridade de toda a pilha de aplicativos, desde a infraestrutura subjacente que está executando o aplicativo até os componentes de software de nível superior. Essa visibilidade consiste na coleta de telemetria e metadados, bem como na definição de alertas para condições predefinidas que merecem a atenção de um operador. A telemetria compreende dados de eventos e logs coletados de várias partes do sistema e armazenados em um local onde possam ser analisados e consultados.

As equipes de alto desempenho de DevOps garantem a definição de alertas acionáveis e significativos e a coleta de uma telemetria abundante para que seja possível extrair insights de grandes quantidades de dados. Esses insights ajudam a equipe a mitigar problemas em tempo real e a descobrir como melhorar o aplicativo em ciclos de desenvolvimento futuros.

Voltar às guias

Ferramentas do DevOps

As equipes têm muitas ferramentas de DevOps para ajudá-las a implementar uma cultura de DevOps na organização. A maioria das equipes confia em várias ferramentas, criando cadeias de ferramentas personalizadas que atendem a necessidades específicas para cada fase do ciclo de vida do aplicativo. Embora adotar uma ferramenta ou tecnologia específica não seja o mesmo que adotar o DevOps, quando a cultura de DevOps está presente e os processos são definidos, as pessoas podem implementar e simplificar as práticas de DevOps se escolherem as ferramentas adequadas. Obtenha as ferramentas para colocar o DevOps em prática:

O DevOps e a nuvem

A adoção da nuvem transformou totalmente a forma como as equipes criam, implantam e operam aplicativos. Isso somado à adoção do DevOps permitiu às equipes aprimorar as próprias práticas e o atendimento aos clientes.

Agilidade na nuvem

Com a capacidade de provisionar e configurar rapidamente ambientes de nuvem em várias regiões e com recursos ilimitados, as equipes ganham agilidade na implantação dos aplicativos. Agora, em vez de precisar comprar, configurar e manter servidores físicos, as equipes criam ambientes complexos de nuvem em questão de minutos e encerram esses ambientes quando eles deixam de ser necessários.

Kubernetes

Com o aumento dos aplicativos que usam a tecnologia de contêineres, o Kubernetes está se tornando a solução preferida do setor para orquestrar contêineres em escala. Automatizar os processos de criação e implantação de contêineres por meio de pipelines de CI/CD e monitorar esses contêineres na produção estão se tornando práticas essenciais na era do Kubernetes.

Computação sem servidor

Com a maior parte da sobrecarga de gerenciamento da infraestrutura transferida para o provedor de nuvem, as equipes podem se dedicar aos aplicativos, em vez de se preocupar com a infraestrutura subjacente. A computação sem servidor possibilita executar aplicativos sem precisar configurar e manter servidores. Algumas opções reduzem a complexidade e o risco da implantação e das operações.

Comece sua jornada de DevOps

Com todas as práticas e soluções disponíveis, o DevOps pode parecer complexo demais no começo. A chave é começar pequeno e aprender com os outros.

Perguntas frequentes

  • O DevOps é praticado em diferentes funções de uma organização e exige que várias delas colaborem estreitamente. Na maioria dos casos, as funções de DevOps incluem desenvolvimento, TI, operações, segurança e suporte.

    Aprenda a criar uma prática de DevOps

  • O DevOps não se limita a uma única função. Todos que participam de alguma das fases do ciclo de vida do aplicativo devem adotar a cultura de DevOps. No entanto, em determinadas organizações, existem algumas pessoas ou equipes cujo foco exclusivo é habilitar a automação, definir práticas e implementar os pipelines de CI/CD. Às vezes, o título oficial dessas funções é engenheiro de DevOps ou especialista em DevOps.

  • A adoção do DevOps em uma organização de grande porte pode ser extremamente desafiadora. Mudar a cultura e padronizar os processos e as ferramentas de uma organização de grande porte requer paciência e persistência. Na maioria das organizações de grande porte, existem usuários pioneiros das práticas de DevOps. À medida que essas práticas ganham maturidade e produzem resultados positivos, em geral, outras equipes seguem o exemplo e iniciam a jornada de DevOps.

    Saiba mais sobre como as equipes da Microsoft adotaram uma cultura de DevOps.

  • O verdadeiro significado do DevOps está centrado na entrega de valor contínuo aos clientes. Os resultados da adoção do DevOps devem ser medidos em relação aos objetivos de negócios. As equipes de DevOps se alinham em torno desses objetivos e os alcançam usando ciclos de versão curtos. Esses ciclos permitem uma resposta ágil ao mercado e aprendizado contínuo por meio dos comentários dos clientes.

  • Tanto o DevOps quanto o Agile são estruturas de desenvolvimento de software modernas para a geração de um produto, um lançamento ou uma versão. O DevOps é uma cultura que promove a colaboração entre todas as funções envolvidas no desenvolvimento e na manutenção do software. O Agile é uma metodologia projetada para manter a produtividade e promover versões com a realidade comum de necessidades em constante evolução. O DevOps e o Agile não são mutuamente exclusivos e geralmente são usados em conjunto.

    Aprenda a incorporar o DevOps e o Agile.

  • Juntamente com a integração contínua, a entrega contínua e a implantação contínua são práticas que automatizam as fases de entrega do software.