O que é DevOps? [+ melhores ferramentas]

Tags:    

Receba atualizações semanais no e-mail

Criado em meados de 2009, hoje, 11 anos depois, DevOps ganha a força e o destaque merecido no mercado. O conceito propõe novos pensamentos sobre o trabalho que visam a valorização da diversidade de atividades e profissionais envolvidos.

Enquanto o setor de desenvolvimento evoluiu seus processos ao criar uma filosofia de entrega contínua devidos as metodologias ágeis, as operações se mantiveram paradas no tempo. Isso criou um grande problema, pois do que adiantava ter softwares sendo entregues em tempo recordes se eles demoravam a serem colocados em produção.

Você verá:

O que significa DevOps?

DevOps vem da junção de software development (Dev) e information-technology operations (Ops).

Além disso, DevOps é uma combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade, bem como a otimização da infraestrutura.

“DevOps não é o trabalho de uma só pessoa. É, o trabalho de todo mundo”

Christophe Capel
Product Manage, Jira Service Desk

O DevOps é o produto do desenvolvimento ágil de software — nascido da necessidade de acompanhar o aumento da velocidade de produção que os métodos ágeis alcançaram. Esses  avanços na cultura e nos métodos ágeis na última década tornou preciso uma abordagem mais holística do ciclo de vida de entrega ponta a ponta dos softwares.

Um cenário comum pré-DevOps

Imagine esse cenário: uma equipe de desenvolvimento precisa enviar o maior número possível de recursos e lançar um novo release para o controle de qualidade. 

O objetivo da qualidade é encontrar o maior número possível de erros. Quando eles mostram suas descobertas para o Dev, os desenvolvedores ficam na defensiva e culpam a qualidade por estarem testando o ambiente pelos bugs. Os testers respondem que não é o ambiente de teste, mas o código do desenvolvedor que é o problema.

Eventualmente, os problemas são resolvidos e o controle de qualidade lança a nova versão depurada para o Ops. O objetivo da equipe de operações é limitar as alterações em seu sistema, mas eles liberam apreensivamente o código e o sistema trava. 

O dedo apontando é retomado: ops diz que o Dev forneceu artefatos defeituosos. Dev diz que tudo funcionou bem no ambiente de teste. Então o ops começa a depurar o sistema e mantêm a produção estável. Como o ambiente de produção não é de responsabilidade do desenvolvedor e do controle de qualidade, ambos os setores ficam longe enquanto o Ops passa a noite toda corrigindo os problemas de produção.

Como DevOps pode lhe ajudar?

Melhorando a colaboração entre todas as partes envolvidas, desde planejamento à entrega e automação. Além disso, alguns outros benefícios do DevOps são:

1 – Melhoria de Deployments

A metodologia DevOps auxilia no aumento da quantidade e frequência do deploys. Isto significa, na prática, ter um sistema atualizado com uma baixíssima taxa de falhas e downtimes.

Com um maior volume de entregas, o produto final tem mais chances de estar de acordo as diretrizes traçadas pelo cliente, tornando a empresa mais competitiva.

2 – Segurança

DevOps provê uma grande oportunidade para melhorar a segurança. Grande parte das práticas que acompanham uma cultura DevOps como automação, ênfase em testes, feedbacks mais rápidos, colaboração, etc., são como um solo fértil para cultivar a segurança digital e a capacidade de realizar auditorias integrados ao seu processo DevOps.  

3 – Faster mean time to recovery (MTTR)

MTTR (tempo médio para reparo) é a média do tempo que um dispositivo leva para se recuperar de um erro. A metodologia DevOps agiliza sua própria manutenção. Isso se dá por conter monitoramentos e testes nos softwares desenvolvidos. Logo, um MTTR muito longo significa ineficiência da aplicação, o que não acontece ao implementar DevOps.

5 ferramentas para ajudar a implementar a cultura DevOps

Reunimos esta lista para ajudá-lo a tomar uma decisão informada sobre quais ferramentas devem fazer parte do seu dia a dia. Então, vamos dar uma olhada em algumas das melhores ferramentas de DevOps.

1 – GIT

O Git é uma das ferramentas mais populares do DevOps, amplamente usada na indústria de desenvolvimento de softwares. É uma ferramenta SCM (source code management, ou, em português, gerenciamento de código fonte), amada por equipes remotas e colaboradores de código aberto. 

A ferramenta permite que você acompanhe o progresso do seu trabalho de desenvolvimento. Você pode salvar versões diferentes do seu código-fonte e retornar para uma versão anterior, quando necessário. Também é ótimo para experimentar, pois você pode criar ramificações separadas e mesclar novos recursos apenas quando estiverem prontos.

Para integrar o Git ao seu fluxo de trabalho do DevOps, você também precisa hospedar repositórios nos quais os membros da sua equipe podem promover o trabalho deles. Atualmente, os dois melhores serviços de hospedagem de repositório Git online são GitHub e Bitbucket

O GitHub é mais conhecido, mas o Bitbucket vem com repositórios privados ilimitados e gratuitos para equipes pequenas (até cinco membros da equipe). Com o GitHub, você obtém acesso apenas a repositórios públicos que são de graça — o que ainda é uma ótima solução para muitos projetos.

O GitHub e o Bitbucket têm integrações fantásticas. Por exemplo, você pode integrá-los ao Slack, para que todos na sua equipe sejam notificados sempre que alguém fizer uma nova confirmação.

2 – Kubernetes

A fim de encontrar uma solução para gerenciar contêineres em grande escala que o Kubernetes foi criado por dois engenheiros do Google. Com o Kubernetes, você pode agrupar seus contêineres em unidades lógicas. Funciona bem com o Docker (falaremos mais abaixo) ou qualquer uma de suas alternativas. Vale ressaltar que o Kubernetes é relativamente novo: foi lançado em 2015. 

Você pode não precisar de uma plataforma de orquestração de contêiner, se tiver apenas alguns. No entanto, este é o próximo passo lógico quando você atinge um certo nível de complexidade e precisa escalar seus recursos. O Kubernetes permite automatizar o processo de gerenciamento de centenas de contêineres.

Com o Kubernetes você não precisa vincular seus aplicativos em contêiner a uma única máquina. Em vez disso, você pode implantá-lo em um cluster de computadores. A ferramenta automatiza a distribuição e o agendamento de contêineres em todo o cluster.

3 – Docker

O Docker é a plataforma número um de contêineres desde o seu lançamento em 2013, e continua a melhorar. Também é considerada uma das ferramentas mais importantes do DevOps existentes. 

Ele isola os aplicativos em contêineres separados para que eles se tornem portáteis e mais seguros. Os aplicativos Docker também são independentes do sistema operacional e da plataforma. Além disso, você pode usar contêineres do Docker em vez de máquinas virtuais como o VirtualBox.

Ele também se integra ao Jenkins e ao Bamboo (também falarei deles abaixo). Se você usá-lo junto com um desses servidores de automação, poderá melhorar ainda mais seu fluxo de trabalho de entrega. Além disso, o Docker também é ótimo para computação em nuvem. 

Nos últimos anos, todos os principais provedores de nuvem, como AWS e Google Cloud, adicionaram suporte ao Docker. Portanto, se você estiver planejando uma migração para a nuvem, o Docker poderá facilitar o processo para você.

4 – Jenkins

Jenkins é a ferramenta para automação do desenvolvimento de software. É um servidor de CI/CD de código aberto que permite automatizar os diferentes estágios do seu pipeline de entrega. O motivo principal da popularidade do Jenkins é seu enorme ecossistema de plugins. Atualmente, oferece mais de 1.000 plugins, por isso se integra a quase todas as ferramentas do DevOps, do Docker ao Puppet.

É fácil começar a usar o Jenkins, já que é pode ser executado no Windows, Mac OS X e Linux. Você também pode instalá-lo facilmente com o Docker. Também é possível instalar e configurar seu servidor Jenkins através de uma interface web.

Com o Jenkins, você pode iterar e implantar um novo código o mais rápido possível. Ele também permite mensurar o sucesso de cada etapa da sua pipeline.

5 – BamBoo

Bamboo é a solução de servidor de CI/CD da Atlassian que possui muitos recursos semelhantes aos de Jenkins. Ambas são ferramentas populares do DevOps que permitem automatizar seu pipeline de entrega, desde a criação até a implantação. 

No entanto, enquanto Jenkins é open source, o Bamboo não. Então, aqui está a eterna pergunta: vale a pena escolher um software pago, se há uma alternativa gratuita? 

Resposta rápida: depende do seu orçamento e objetivos.

O Bamboo possui muitas funcionalidades pré-criadas que você precisaria configurar manualmente no Jenkins. Essa também é a razão pela qual o Bamboo tem menos plug-ins (cerca de 100 em comparação aos mais de 1000 do Jenkins). Na verdade, você não precisa de tantos plug-ins com o Bamboo, pois ele já possui muitos recursos prontos para uso.

O Bamboo se integra perfeitamente a outros produtos da Atlassian, como Jira e Bitbucket. Você também tem acesso aos fluxos de trabalho e ambientes de teste integrados do Git e Mercurial. Em suma, o Bamboo pode economizar muito tempo de configuração. Ele também vem com uma interface do usuário mais intuitiva, com dicas de ferramentas, preenchimento automático e outros recursos úteis.

DevOps hoje, DevOps amanhã, DevOps sempre

Sem dúvida automatizar e integrar operações e desenvolvimento é a melhor solução para uma cultura ágil. Falando em cultura ágil, que tal você conferir alguns de nosso conteúdos sobre o assunto?

Tópicos

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts relacionados

Estamos contratando, venha conferir nossas vagas