Olá pessoal, tudo bem com vocês? Hoje, novamente venho trazer um tema muito importante quando falamos de desenvolvimento de software moderno. Uma palavra que às vezes não entendemos muito bem o que significa e até é confundida com um cargo, mas, na verdade, estamos falando de uma cultura. Vamos falar hoje sobre as etapas no DevOps.

Navegue pelo índice

    O que é DevOps?

    O DevOps é uma cultura em engenharia de software criada para integrar quem desenvolve software (desenvolvedores – dev) com quem mantém a infraestrutura do software (sysadmins – ops) de maneira que a comunicação entre as áreas seja fluida, com o foco na automação e monitoramento dos processos realizados durante o ciclo de vida de softwares.

    A ideia geral por trás da cultura é aumentar a maturidade do time envolvido na produção de software como um todo bem como aumentar a qualidade de toda cadeia de desenvolvimento, seja do código entregado, de testes realizados, da disponibilidade da aplicação, da configuração dos ambientes, etc.

    Ao optar pelo DevOps os times são capazes de controlar melhor todas as etapas do desenvolvimento, automatizar diversos processos importantes, padronizar configurações e se preocupar realmente com o que importa quando o assunto é o processo de desenvolvimento como um todo.

    E com essa ideia do DevOps em questão de automação. Vemos muito aplicado junto o conceito de Infrastructure as Code (Iac) que nada mais é utilizar linguagens de programação descritivas de alto nível (como yaml, json, etc) em arquivos de configuração padronizados, aliados a softwares de automação com o objetivo de automatizar o provisionamento da infraestrutura de TI.

    Quais são as Etapas DevOps?

    O DevOps é constituído de algumas etapas (cada literatura utiliza um contexto diferente), iremos usar 8 etapas:

    etapas devops
    Etapas DevOps

    1) Planejar (Plan)

    A etapa antes de colocar a mão no código em si. Nessa etapa pensamos nos requisitos do projeto, em como iremos desenvolver as regras de negócio, no que precisamos para o realizar o bom desenvolvimento, etc.

    2) Codificar (Code)

    Nessa etapa colocamos a mão na massa e transformamos as regras de negócio em código, gerenciamos o código-fonte através de ferramentas de controle de versão (SVN, git, mercurial, etc) também é nessa etapa que nos preocupamos com code review.

    3) Compilar (Build)

    Nessa etapa iremos verificar se a sintaxe do que desenvolvemos está correta, faremos a validação estática do código e prepararemos o pacote para poder realizar posteriormente o deploy.

    4) Testar (Test)

    Aqui iremos realizar os testes do nosso código, de preferência iremos automatizar todos os testes possíveis, seja de unidade ou até mesmo de UI, de modo que possamos através do resultado dos testes validar a confiabilidade do que foi desenvolvido e mitigar as possíveis falhas.

    5) Lançar (Release)

    Nessa etapa iremos direcionar o código ao local onde realizaremos o deploy, prepararemos todo o código para o deploy, ajustaremos a versão do software, etc. Essa é a etapa de pré-implantação.

    6) Liberação (Deploy)

    Aqui iremos realizar as ações necessárias para a nova versão do software estar liberada, seja apontamentos diversos, aprovações que devem ser executadas para a nova versão entrar no ar e o gerenciamento de mudança.

    7) Operar (Operate)

    Nessa etapa realizaremos as configurações e gerenciamento da infraestrutura de modo que o software se mantenha disponível durante a maior parte possível de tempo.

    8) Monitorar (Monitor)

    Nessa etapa iremos utilizar ferramentas de monitoramento e observabilidade para verificar o estado da infraestrutura e da aplicação como um todo, de modo a prever os gargalos e poder agir em caso de indisponibilidade.

    Ferramentas DevOps

    Como parte do processo de DevOps é dado através de automatização de processos, várias ferramentas compõem as etapas DevOps. Por exemplo, quando falamos da etapa de código, podemos citar o git que é um sistema de controle de versão, bem como uma IDE como por exemplo o IntelliJ.

    Na etapa de testes, podemos citar JUnit e o PHPUnit para realizar testes de unidade, Selenium e Cypress para realizar testes de UI. Na etapa de monitorar podemos citar New Relic, Datadog e Prometeus, por exemplo.

    Já como exemplos de ferramentas Iac temos: Chef, Puppet, Terraform, Docker, Kubernetes etc.

    Essas ferramentas facilitam e muito o trabalho do time, melhorando parte dos processos e automatizando outros e são indispensáveis para o bom andamento da cultura dentro do time.

    Um evento que fala bastante sobre o tema DevOps é o DevOps Days, que tem em vários lugares do mundo, incluindo o Brasil. Falando nisso, até palestrei esse ano de 2023 na edição de Goiânia. É um ótimo ambiente para conhecer mais sobre a cultura DevOps e entender a utilização das ferramentas e fornecedores de tecnologia, entendendo também do mercado DevOps.

    Mas, como disse no começo, algumas pessoas acabam confundindo a cultura DevOps com um cargo. Então, quando você ver um cargo descrito como DevOps, a ideia é ter uma pessoa que será responsável por gerenciar a infraestrutura de aplicações utilizando a cultura DevOps apoiado no conceito de Infraestrutura as Code. Ou seja, uma pessoa sysadmin 2.0

    Desejo que esse artigo tenha ajudado você a entender um pouco melhor o mundo DevOps. E, caso tenha alguma dúvida me mande DM no twitter.

    O Servidor VPS tem a flexibilidade e autonomia que você precisa

    CONHEÇA!

    O autor

    Rodrigo Cardoso (Pokemaobr)

    Conhecido como Poke, é Streamer (Live "Coder") na Twitch, Web Developer e apresentador do talk show "The Velopers". Com bacharelado em Matemática e MBA em SOA, Poke atua como desenvolvedor e organizador de eventos de TI. É evangelista PHPSP e criador do PokePHP, focando em disseminar conteúdos técnicos e humor para a comunidade de desenvolvedores. Nas horas vagas, ele adora se conectar com a comunidade e compartilhar seu conhecimento de maneira divertida e informativa.

    Veja outros conteúdos desse autor