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

Conheça um pouco do Ansible Galaxy

Durante minhas aventuras como SysAdmin, eu me deparei com a fantástica ferramenta chamada Ansible. Eu me empolguei tanto com a ferramenta que acabei criando um projeto chamado warudo, agora já não

DevOps

DevOps – Utilizando Jenkinsfile para construir seu Pipeline

O Jenkinsfile é a maneira mais recomendada para criar Pipelines no Jenkins. Utilizando as melhores práticas, podemos colocar o arquivo na raiz de um repositório Git. Essa técnica nos permite

DevOps

Minishift — Openshift Origin como ambiente de desenvolvimento

O Minishift compõe uma versão simplificada do Openshift Origin. Pode ser instalado no VirtualBox e utilizado como ambiente de desenvolvimento. O objetivo deste artigo, é mostrar a instalação e uso dessa plataforma, até