Introdução ao DevOps - Infraestrutura como código

Neste artigo, pretendo demonstrar o que é DevOps, o seu conceito e o que ele pode trazer de benefícios para profissionais e empresas.

[ Hits: 18.635 ]

Por: yros aguiar em 29/01/2014


Exemplo / Finalizando



Irei demonstrar um exemplo do dia a dia, para maior entendimento:
Linux: Introdução ao DevOps - Infraestrutura como código

O operador Ivan, necessita mudar a permissão de um diretório em três servidores que estão em locais distintos. Para esta operação, o Ivan precisará ter acesso aos três servidores, logar no servidor e executar o comando chmod 400 /diretorio e deslogar do servidor. Para executar a tarefa em um servidor, ele irá demorar cerca de 5 minutos, entre fazer o levantamento do IP/Hostname de cada servidor e executar o comando.

Sabendo que cada servidor demanda 5 minutos do Ivan, ele iria gastar 15 minutos para terminar o job, levando em consideração que todas as ações iriam ser executadas sem problemas.

Agora, imagine em um parque com mil servidores espalhados pelo mundo e uma janela de manutenção de 10 horas.

Se em um servidor gastamos 5 minutos logo, 1000 servidores x 5 minutos = 5 mil minutos, ou seja, cerca de 80 horas ou 2 semanas de trabalho, além da possibilidade de erros operacionais e a necessidade de um feedback de sucesso ou falha em cada servidor. Para que esta demanda seja atendida, no período de manutenção estipulado pela chefia, seriam necessários 40 operadores, tornando-se inviável para a empresa este tipo de manutenção, que exija agilidade.

Demonstro abaixo, o mesmo exemplo de job citado anteriormente, utilizando o Chef Server (DevOps):

O operador Ivan irá criar um cookbook ou módulo para a tarefa, chamada de permission, supondo que o servidor já esteja com o client do Chef instalado nos servidores, e estes servidores, estejam separados em um grupo, pois são servidores com o mesmo propósito de serviço.

O Ivan iria acessar a ferramenta do Chef, iria adicionar a receita criada a este ambiente em sua run list.

Ou, simplesmente, iria utilizar o comando knife da sua máquina para executar o job solicitado.

O chef Server iria rodar a receita em todos os servidores do ambiente, gastando cerca de 40 minutos para concluir toda a tarefa, ou seja, iria gastar 40 minutos para fazer esta alteração nos mil servidores, estando limitado ao poder de processamento e a disponibilidade dos mesmos.

Finalizando

Cito algumas vantagens de utilizar os conceitos de DevOps:
  • Padronização nos processos de configuração e servidores;
  • Documentação das configurações;
  • Menor esforço para execução de tarefas em ambientes massivos/complexos;
  • Diminuição de incidentes ocasionados por erro operacional;
  • Facilidade para atualização e deploy de aplicações;
  • Maior controle em ambientes de grande porte;
  • Menor downtime dos serviços;
  • Redução de custo;
  • Centralização de operações;
  • Automação de processos.

Existem inúmeras vantagens em utilizar DevOps, espero que vocês se interessem pelo assunto e estudem este conceito que está em plena evolução nos outros países, e que está tornando algo fundamental para os ambientes de TI atuais.

Que legal! Muito bom a teoria, mas agora, o que eu preciso saber para começar a mexer?

O profissional de DevOps necessita ter um conhecimento em S.O., conhecer algumas linguagens de programação e de scripts, alguma ferramenta de DevOps, etc. Segue abaixo, alguns conhecimentos necessários:

O profissional deve conhecer lógica de programação e alguns conceitos básicos de linguagem, dentre elas, é bom se ter algum contato com as seguintes tecnologias: Python, Ruby, Shell Script, PHP, Java, conhecer o básico de infra também se torna necessário: TCP/IP e seus protocolos (DNS, FTP, HTTP, SSH), S.O., etc.

Conhecer uma ferramenta de infraestrutura ágil (DevOps):

Existem algumas ferramentas de infraestrutura ágil disponíveis, algumas com versões gratuitas e outras com versões community e enterprise, as mais conhecidas são o Puppet, o Chef, AnsibleWorks e o SaltStack:

O Puppet e o Chef são as melhores ferramentas para Devops, segundo avaliação feita pela InfoWorld no final do ano passado:

No próximo artigo, irei falar sobre o Chef-Server.

Obrigado, pessoal.

Página anterior    

Páginas do artigo
   1. Necessidade / Infraestrutura
   2. Exemplo / Finalizando
Outros artigos deste autor

Controle de banda com Slackware 10 + CBQ + Iptables + DHCP

Elaborando uma política de segurança para a empresa

Squid com autenticação e ACLs apartir do grupos do Active Diretory

Como gerenciar cotas de disco

Leitura recomendada

VPN FreeSWan IPSec

Instale uma distro dentro de outra

Instalação automatizada de servidores com kickstart

Instalação da placa TRENDnet TEW-421PC Wireless com ndiswrapper Debian

FluxBox com sombras e transparência real (translucência)

  
Comentários
[1] Comentário enviado por junior em 29/01/2014 - 13:50h

Bom artigo, boa introdução.
Na minha opinião, pode deixar os leitores com vontade de saber mais sobre o Chef.
Tomara que este artigo não demore, se não o hiato entre um e outro pode ser ruim.

Parabéns pelo documento.

[2] Comentário enviado por yros em 29/01/2014 - 14:09h

Oi junior.rocha

O Artigo sobre o Chef irei publicar ainda esta semana.

Obrigado

[3] Comentário enviado por avena em 08/02/2014 - 03:14h

Parabéns pelo artigo...muito claro e objetivo.

Creio que ajudou muito o exemplo do Chef...eu mesmo quando fiquei sabendo dele a tempo atras, através de um pessoal de Ruby, gostei da sacada com o chef e as receitas.


[4] Comentário enviado por lestatwa em 11/02/2014 - 11:18h

Um pequeno ajuste...
1000servidores * 5minutos = 5000minutos / 60minutos = 83.333....horas / 24horas = 3,47 dias e não duas semanas....
Abraço!

[5] Comentário enviado por yros em 11/02/2014 - 12:26h

Boa sua percepcao, so que nas empresas trablhamos 8 horas por dia, por isso uma semana de trabalho, ninguem fica 3 dias trabalhando seguidos. 2 semanas de trabalho = 80 horas, ou seja 40 horas por semana, pois a escravidão já acabou faz um tempo já rssrrsrsrsrsrsr... A conta foi feita com carga horaria de trabalho.

Mesmo assim obrigado, pelo comentário, ficou mais claro agora a todos

[6] Comentário enviado por removido em 15/08/2016 - 22:17h

Quem quiser jogar pedra que fique a vontade !!!

Para mim estes softwares são muito bem empregados em datacenters com dezenas, centenas ou milhares de servidores, pois realmente é uma mão na roda executar tarefas automatizadas em vários servidores ao mesmo tempo, isso diminui bastante o tempo de execução.

Mas quanto ao profissional devops, pra mim é só mais uma forma que empresas encontram para ter baixo custo e alta produtividade.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts