Header Ads

Introdução aos princípios DevOps para iniciantes

Shutterstock / BoVLD

DevOps é uma palavra da moda comumente usada — na verdade, é um conjunto de princípios projetados para agilizar e governar todo o processo de desenvolvimento, desde o cérebro de seus programadores até seus servidores.

O básico

A maioria das equipes provavelmente pode dividir seus desenvolvedores em duas categorias principais:

  • Desenvolvedores, que cuidam da atualização da base de código, da correção de bugs e de toda a programação. Você também pode incluir outras funções, como designers da Web e de IU nesta categoria. Em geral, inclui qualquer pessoa que esteja realmente envolvida na construção de seu produto.
  • SysAdmins ou a “ Equipe de operações. ” Essas pessoas lidam com a atualização de servidores com novo código, gerenciando sua infraestrutura de servidor interna e voltada para o público e mantendo tudo em funcionamento.

Para simplificar, DevOps tem tudo a ver com a integração dessas duas equipes (daí o portmanteau de um nome). Não vai transformar seus desenvolvedores em administradores de sistemas, ou vice-versa, mas deve ajudá-los a trabalhar juntos.

Cada aspecto e fase é complementado com ferramentas que facilitam todo esse processo. DevOps é mais do que apenas ferramentas e automação, e implementação de um conjunto de “ ferramentas DevOps ” não fará com que sua equipe trabalhe duas vezes mais rápido automaticamente, mas essas ferramentas são uma parte importante do processo e seria difícil ser tão eficiente sem algumas delas.

Embora haja muitos outros buzzwords lançados sob a égide de “ DevOps, ” o conceito básico é bastante simples. Quando uma equipe está trabalhando corretamente, o DevOps geralmente flui assim:

Shutterstock / Ribkhan

Para explicar, começaremos com a fase de monitoramento. Isso envolve ficar de olho em seus servidores, observando análises, analisando logs e identificando problemas com sua base de código. Embora grande parte disso esteja relacionado ao código, grande parte também recai no lado comercial das coisas. Você está efetivamente alcançando seus objetivos? Seus clientes estão felizes? Esta fase consiste em descobrir o que há de errado para que você possa definir metas adequadas. Ferramentas de monitoramento populares incluem Nagios, AWS CloudWatch e software de análise como o Google Analytics.

Talvez você consiga um tíquete diretamente de um cliente e comece na fase de planejamento. É aqui que você se reunirá com seus desenvolvedores líderes e discutirá o que precisa ser feito para concluir um tíquete. Se você estiver usando um software como o Jira, provavelmente dividirá um grande tíquete em histórias e problemas individuais que podem ser rastreados mais facilmente e atribuídos a desenvolvedores individuais. Se você está planejando uma sprint de código para as próximas duas semanas, você vai querer ter seu plano claramente definido para reduzir o tempo gasto na reiteração do código.

Em vez de testar e construir apenas uma vez quando tudo estiver concluído, em um ambiente DevOps, cada desenvolvedor enviará idealmente as alterações ao controle de origem várias vezes por dia, sempre que os problemas forem concluídos ou um marco menor for atingido. Isso permite que as fases de construção e teste comecem cedo e certifique-se de que nenhum desenvolvedor se afaste muito do HEAD do controle de origem mestre. Este estágio é principalmente sobre o gerenciamento de controle de origem adequado, portanto, ter um serviço git eficaz como GitHub, Gitlab ou BitBucket é crucial para manter a integração contínua funcionando sem problemas.

Você não precisa implantar todos os commits para a produção imediatamente, mas as implantações automatizadas rápidas são uma parte importante da capacidade de enviar lançamentos rápidos. Além disso, tira um pouco do estresse da equipe de operações, permitindo que eles se concentrem em coisas mais importantes do que atualizar manualmente os servidores com o novo código.

Assim que novas mudanças são implementadas, o ciclo começa novamente. Talvez esse novo recurso adicionado esteja fazendo com que o servidor de banco de dados temporário trabalhe horas extras e precise ser marcado para revisão de desempenho e consertado antes da implantação na produção. Se tudo correr bem, o DevOps deixa de ser uma série fixa de etapas e simplesmente se torna uma cultura que todos seguem naturalmente.

Integração contínua / Pipelines de entrega contínua

Automação e ferramentas são uma parte importante de qualquer ambiente DevOps. Talvez a maior ferramenta para se ter é um pipeline de integração contínua / entrega contínua (CI / CD). Este é um processo automatizado que começa com o código-fonte e lida com o processo de construção, teste e implantação em servidores.

O CodePipeline da AWS é um bom exemplo disso. Sempre que uma mudança é detectada no controle de origem (seja GitHub, BitBucket ou AWS CodeCommit), ela é enviada ao AWS CodeBuild para construção e teste. Como alternativa, o Jenkins é usado com frequência para lidar com essa fase de construção.

Normalmente, quando uma compilação é concluída, você &’ vai querer enviá-la para um ambiente de teste antes de ir diretamente para a produção. Mesmo assim, a automação de implantações para servidores de teste e produção irá acelerar significativamente o tempo de iteração. No pipeline da AWS, isso é tratado pelo CodeDeploy. Jenkins também pode lidar com implantação, bem como software como Ansible.

Resumindo, um pipeline de CI / CD pode automatizar a maior parte do fluxo de DevOps, da criação à implantação, tornando-o uma peça crucial para qualquer equipe que esteja procurando trabalhar com eficiência.

Nenhum comentário