Introdução ao DevOps para iniciantes

DevOps se tornou uma palavra da moda, o que significa muitas coisas diferentes para muitas pessoas.

É um desafio entender e definir exatamente o que é DevOps. E é por isso que, se você conhece os conceitos fundamentais do DevOps aos quais a maioria das pessoas associa e a história de como ele evoluiu, obtenha uma visão holística dele.

A origem do DevOps

DevOps é um exemplo perfeito de desenvolvimento ágil de software. A ideia do DevOps surgiu da necessidade de acompanhar o aumento da velocidade do software e alcançá-lo por meio de métodos ágeis. Na última década, os grandes avanços na cultura e nas práticas ágeis expuseram a necessidade de uma abordagem mais holística do ciclo de vida de entrega de software de ponta a ponta.

Você pode estar se perguntando o que é desenvolvimento ágil de software –

Desenvolvimento ágil é um termo amplo para definir várias metodologias de desenvolvimento de software iterativas e incrementais. As metodologias ágeis populares são Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development e Extreme Programming (XP).

Os valores centrais e a visão de todas essas metodologias ágeis são os mesmos, mas cada uma delas tem uma abordagem única. Todas essas metodologias incorporam iterações e feedback contínuo para refinar e fornecer software escalável com sucesso. Todas essas metodologias envolvem planejamento contínuo, testes contínuos, integração contínua e outras formas infinitas tanto para o projeto quanto para o software.

Ao contrário dos processos convencionais em cascata, essas metodologias ágeis são leves e vêm com uma natureza inerentemente adaptável. Uma das melhores coisas sobre essas metodologias ágeis é que todas elas se concentram em capacitar as pessoas quando se trata de colaborar e tomar decisões rápidas em conjunto.

Imagem por Segue

Os ideais do DevOps executam a prática estendida de desenvolvimento ágil para refinar o movimento de mudança de software por meio da construção, validação, implantação e diferentes estágios de entrega. Ele permite que a equipe multifuncional tenha total propriedade do produto de software, desde o projeto até a produção.

  ASTC 3.0 explicou: a transmissão da TV está chegando ao seu telefone

Desafios resolvidos pelo DevOps

Processo de implantação – Os aplicativos distribuídos geralmente exigem a implantação dos arquivos binários e de configuração em vários servidores. Torna-se mais desafiador quando se tem um farm de servidores. Torna-se um desafio descobrir o que, como e onde implantar. O resultado óbvio é?

A longa espera para colocar os artefatos no próximo ambiente da rota de ativação causa atrasos em tudo, como testes, tempo de vida, etc.

O DevOps permite que os desenvolvedores de software ou da Web e as operações de TI implantem processos em uma sessão de colaboração totalmente isenta de culpa. Isso nos permitirá verificar o que funciona e, em seguida, levá-lo ao próximo nível com automação para implementar o desenvolvimento contínuo. Também cria avenidas para um desenvolvimento mais frequente.

Objetivos de DevOps

Melhora a colaboração entre as partes interessadas desde o planejamento até a entrega e implementa a automação do processo de entrega para:

  • Melhore a frequência da implantação
  • Alcançar um tempo mais rápido para comercializar o produto final
  • Diminui a taxa de falha de novas versões
  • Reduz o tempo de espera entre as correções
  • Melhora o intervalo para fins de recuperação

Cenário comum de DevOps

Todo o software chega ao ponto de encontro antes de iniciar um novo projeto de software. A equipe é formada por desenvolvedores, testadores, operações e profissionais de suporte. A equipe faz o plano para criar um software totalmente funcional que esteja pronto para implantação.

A cada dia, um novo código é implantado assim que os desenvolvedores o concluem. O procedimento de teste automatizado garante que o código esteja pronto para ser implementado. Depois que o código recebe o sinal verde do processo de teste de automação, ele é implantado para um pequeno número de usuários. O código é monitorado por um curto período para garantir que não haja problemas imprevistos e que seja estável. O novo código é então implantado para o restante dos usuários assim que o monitoramento final mostrar que o código está estável. Uma parte significativa das etapas após o planejamento e desenvolvimento é feita sem intervenção humana.

Diferentes fases da maturidade do DevOps

Existem muitas fases diferentes de maturidade do DevOps. Aqui estão as frases-chave que você deve saber.

  Como fazer upload de GIFs com som no Imgur

Desenvolvimento de Cachoeira

Antes da integração contínua, as equipes de desenvolvimento costumavam escrever uma enorme quantidade de código e, em seguida, as de diferentes equipes eram mescladas para o lançamento. As versões do código eram tão diferentes que costumavam exigir um grande número de alterações.

Fazer esse número de alterações usadas leva mais do que alguns meses. Este processo não foi produtivo.

Integração contínua

É uma prática de integrar rapidamente um código recém-desenvolvido com o código principal a ser lançado. Quando se trata de liberar o código, o desenvolvimento contínuo ajuda a economizar muito tempo.

DevOps não introduziu este termo. A integração contínua é uma prática de engenharia ágil oriunda da metodologia Extreme Programming. O DevOps adotou essa prática porque a automação é necessária quando se trata de executar a integração contínua com sucesso. A integração contínua geralmente é a primeira no caminho para a maturidade do DevOps.

A integração contínua da perspectiva do DevOps inclui etapas como verificar o código, compilá-lo em código utilizável e executar alguns dos testes de validação necessários. ‘

Entrega Contínua

É uma extensão da integração contínua e o segundo estágio de DevOps.

A Entrega Contínua permite adicionar automação e testes adicionais para que você não apenas mescle rapidamente o código com a linha de código principal, mas também deixe o código quase pronto para implantação sem intervenção humana.

É uma prática manter sua base de código em um estado quase pronto para implantação.

Implantação Contínua

A implantação contínua é a evolução avançada da entrega contínua. Essa prática nos permite implantar todas as formas de produção sem qualquer intervenção humana.

A equipe que trabalha em desenvolvimento contínuo nunca implanta nenhum código sem testar. Todo o código recém-criado passa por testes automatizados antes de entrar na fase de produção. O código é implantado para um pequeno número de usuários e há um ciclo de feedback automatizado que monitora a qualidade e o uso antes que o código chegue ao próximo nível.

Um pequeno número de empresas como Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google, etc., fazem desenvolvimento contínuo.

O valor que

O DevOps se concentra altamente no desenvolvimento de uma cultura colaborativa e na melhoria da eficiência por meio da automação com diferentes ferramentas de DevOps. Para implementar o DevOps para sua solução de software, você precisa usar uma combinação de cultura e ferramentas.

  Controle a reprodução de vídeo em seu fone de ouvido VR com gestos de mão

Cultura DevOps

DevOps é uma cultura específica que ajuda a melhorar a colaboração, diminuir o caos, lidar melhor com responsabilidades compartilhadas, implementar automação, melhoria de qualidade, avaliação de feedback e aumentar a automação.

Os métodos ágeis sempre foram a melhor maneira holística de entregar software. Quando se trata de medir o progresso, a equipe de desenvolvimento ágil faz isso em termos de software em funcionamento. O método ágil da cultura DevOps permite que proprietários de produtos, desenvolvedores, testadores e pessoas de UX trabalhem em conjunto com o mesmo objetivo em mente.

Ferramentas de DevOps

Inclui as ferramentas para gerenciamento de configuração, teste e construção de sistemas, desenvolvimento de aplicativos, controle de versões e monitoramento. Quando se trata de implementar Integração Contínua, Entrega Contínua e Implantação Contínua, eles exigem ferramentas diferentes e, ao mesmo tempo, também usam as mesmas ferramentas. Você precisará usar mais ferramentas à medida que avança na cadeia de entrega.

Vamos conhecer algumas das ferramentas e práticas populares.

Repositório de código-fonte – este é um local onde os desenvolvedores podem fazer check-in e alterar o código. O repositório de código-fonte gerencia várias versões do código de check-in para garantir que os desenvolvedores estejam escrevendo sobre o código uns dos outros.

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse, etc., são algumas das ferramentas populares de repositório de código.

Servidor de compilação: – o servidor de compilação é a ferramenta de automação que é utilizada para compilar o código no código-fonte respiratório na base de código executável. Algumas das ferramentas de servidor de compilação mais usadas são Jenkins, SonarQube e Artifactory.

Gerenciamento de configuração – Puppet, Chef, Ansible, SaltStack, Run Deck, etc., ajudam a gerenciar a configuração de aplicativos e infraestrutura para manter a consistência entre os ambientes.

Infraestrutura virtual – AWS, GCP e Azure são os três principais provedores de nuvem pública que oferecem quase todos os serviços de infraestrutura. Eles oferecem API, que permite provisionar a infraestrutura e gerenciá-la como um código.

Conclusão

Espero que isso lhe dê uma ideia sobre DevOps e, se isso o excitar, você pode experimentar este curso de masterclass online.

Artigo de Payal Goyal