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.029 ]

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

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

Como gerenciar cotas de disco

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

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

Leitura recomendada

Instalação do GLPI no GNU/Linux CentOS 7.0

Load balance e alta disponibilidade com Bonding

Configurando o xorgconfig e o inittab para iniciar o Slackware em modo gráfico

Instalando e configurando um Webserver

Vamos configurar a Nividia no Kurumim

  
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