O que é DevOps?

O que é DevOps?

DevOps é um termo criado para descrever um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações (infraestrutura ou sysadmin) e de apoio envolvidas (como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços.

 

O conceito propõe novos pensamentos sobre o trabalho para a valorização da diversidade de atividades e profissionais envolvidos e atitudes colaborativas. É um processo que torna possível o desenvolvimento ágil de aplicações em um modelo de gestão de infraestrutura definido sob regras rígidas e burocráticas.

O Desafio

Tradicionalmente Desenvolvimento e Operações são setores diferentes nas empresas e com motivações distintas. O setor de Desenvolvimento já evoluiu com adoção de metodologias ágeis e estão mais alinhadas ao negócio. O setor já consegue entregas rápidas e constantes para atender a expectativa dos clientes por novos recursos e assim valorizar o produto da empresa. A área de Operações, por sua vez, deseja o mínimo de alterações possíveis no ambiente de produção, pois podem gerar um novo ponto de instabilidade o que desvalorizará o produto da empresa. Assim há interesses contraditórios. Um setor quer evoluir e o outro garantir.

 

A proposta DevOps

A cultura Devops procura atender esses dois interesses e sustenta-se nos pilares:

  • Integração Contínua: fácil transferência de conhecimento e experiências entre as áreas de Desenvolvimento, Operações e Apoio.
  • Implantação Contínua: liberação rápida e continua de novas versões de software ou serviços
  • Feedback contínuo: feedbacks frequentes das equipes envolvidas em todas as fases do ciclo de vida do software ou serviço.

Para alcançar esses objetivos a prática DevOps recomenda ações como:

  • Pessoas integradas: Apoiar e prover pensamentos que integrem as pessoas, que façam com que partilhem suas histórias e se desenvolva a empatia entre elas para um trabalho conjunto eficaz e duradouro.
  • Foco no projeto: Crie uma atmosfera livre de culpa, com o objetivo em comum: o projeto. Profissionais devem defender o projeto e não suas áreas de atuação. É preciso romper tradições e fazer com que as equipes tenha um comportamento colaborativo, construtivo e de respeito mútuo.
  • Reuniões conjuntas: em vez de promover discussões isoladas com a equipe de Desenvolvimento, Operações ou Apoio, sempre integre pelo menos um profissional de cada área nas discussões dos setores para que tenham entendimento dos objetivos a serem alcançados, recursos e demanda previstos, requisitos necessários, problemas já enfrentados e riscos envolvidos sob uma mesma ótica.

Resultado de imagem para devops 4linux

  • Negócio Just-in-Time: Fornecimento de aplicações e serviços que promovam um desenvolvimento do negócio com qualidade e otimização do uso de recursos humano, tempo, tecnológicos e/ou financeiros.
  • Infraestrutura para negócio: garantir continuamente a infraestrutura com foco no negócio. Implantar mecanismos que permitam a área de Operações atender as expectativas do negócio e ainda assim manter sua confiabilidade.
  • Desenvolvimento Ágil: o desenvolvimento do software deve seguir uma das metodologias ágeis para entregas rápidas e contínuas. ( SCRUM, XP, …)
  • Ambientes de Desenvolvimento, Homologação e Produção: que haja pelo menos esses três ambientes e que sejam idênticos para evitar que uma versão de software seja testada em um ambiente e executada em produção em outro e assim surjam problemas não previstos.
  • Padronização nas configurações: para garantia de que os ambientes sejam idênticos e contenham apenas mudanças homologadas, é preciso implementar um gerenciamento de configuração para que qualquer mudança inserida manualmente nos servidores e não através de uma gerência de configurações seja automaticamente desfeita.
  • Provisionamento dinâmico dos ambientes: os ambientes devem ser criados sempre que necessários em processos automatizados para garantia de que estejam sempre disponíveis. A equipe de desenvolvimento deve receber a infraestrutura necessária para seu trabalho sem necessidade de intervenção da equipe de Operações. Ferramentas de automação deverão criar servidores, instalar serviços, configurá-los e testá-los. Novos servidores poderão ser criados temporariamente para ações específicas ou para escalonamento da solução.
  • Infraestrutura como um código: as configurações e scripts de execução para instalação de serviços devem ser versionados no mesmo repositório e da mesma forma que o código da aplicação para que possam ser disponibilizados, auditados e evoluídos juntos.
  • Liberdade para Deploy: a equipe de Desenvolvimento deve ser autônoma para realização de deploy nos ambientes até Produção sem necessidade de processos burocráticos e interferência da área de operações.
  • Integração contínua: Ferramentas devem orquestrar todo o processo envolvido na entrega de nova versão da aplicação que inclui a criação dos ambientes, caso necessário, deploys dos códigos juntamente as configurações da infra, testes automatizados, possibilidade de reversão e auditoria.
  • Gestão de incidentes: Para que a infraestrutura seja ágil é determinante que hajam estratégias para gestão de incidentes bem definidas: políticas de roll back, backups e ferramentas de monitoração pró-ativas.

Infraestrutura Ágil é termo usado para descrever parte do processo determinante e recomendado pela cultura DevOps que envolve para criação e configuração automática de servidores. Treinamento e Projetos de Consultoria na 4linux.

Anterior Workshop Infraestrutura ágil com Docker Git Jenkins Puppet e Ansible -Parte1.2
Próxima Infraestrutura Ágil: TI versionada como um software!

About author

Rodrigo Rodrigues Dias
Rodrigo Rodrigues Dias 10 posts

Trabalha com Linux desde 2001, onde começou com o extinto Conectiva Linux. Atuou em empresas de Consultoria e Telefonia IP e é certificado LPIC-3 303/304 e Exin DevOps Master/Professional. Foi Redator das revistas Linux PC Master e as edições extras com os saudosos CDs com as principais distribuições Linux do mercado. Foi também responsável pelo conteúdo da revista .NET, publicação inglesa adaptada ao Brasil e especializada no desenvolvimento e design web. Também foi o principal redator da Revista do CD-ROM, que marcou época. Atua hoje como Líder de Pré-Vendas da 4Linux onde auxilia clientes na definição de seus projetos Open Source. Já ministrou curso de formação Linux e Alta Disponibilidade, foi responsável pela Infraestrutura e Gerência de Projetos na 4Linux.

View all posts by this author →

Você pode gostar também

DevOps

DevOps – o que é e quais são seus benefícios?

Provavelmente você conheça o termo DevOps e tenha dúvida sobre do que realmente se trata. Há quem defenda que se trata de uma cultura, outros apostam que seja uma metodologia, há quem

Treinamentos

4Linux lança curso de DevSecOps e solidifica liderança em cursos para carreira DevOps

Treinamento possui conteúdo único em relação a qualquer outro no mercado A 4Linux anuncia hoje o lançamento de mais um curso para enriquecer a sua oferta de treinamentos na carreira

Destaques

Ferramentas do mundo DevOps

Gitlab: um dos sistemas de controle de versão mais usados e baseado no GIT. Permite criar e gerenciar múltiplas versões de código, fazer comparações e aditar alterações. Puppet: normalmente usado