Publicação

O Papel do DevOps na Evolução da Cloud Computing

foto de
João José Silva CONTEÚDO EM DESTAQUE

“Que nuvem? Como é que uma coisa pode estar na nuvem? Aonde está a prova?” 

Muita gente ainda tem essa mesma dúvida quando o assunto é #Cloud Computing (Computação em Nuvem traduzindo para o português). Porém, esse conceito não é tão atual quanto se pensa.

Pois, com a chegada dos famosos Mainframes nos anos 60, uma grande revolução para a época, foi possível a realização de cálculos e processamentos nunca antes utilizados. Na década seguinte a IBM lança o sistema operacional V.M (Máquina Virtual), que permitia disponibilizar diversos sistemas virtuais em um único servidor físico (host), possibilitando que vários usuários trabalhassem em um único Mainframe ao mesmo tempo.

O acesso aos Mainframes era feito através de “Terminais burros” ficando o Mainframe com a responsabilidade de todo o processamento.

O sistema operacional V.M da IBM foi pioneiro e já utilizava conceitos que são os padrões hoje em Cloud Computing, permitindo que cada usuário usasse sua porção de memória, processamento e outros recursos.

A partir daí vários eventos marcantes foram acontecendo e contribuíram para o amadurecimento da nuvem, tais como: lançamento do primeiro PC (Personal Computer), adoção do TCP/IP pela ARPANET (a mãe da Internet), surgimento dos principais players do mercado (Apple, Microsoft, Oracle, Amazon, etc.).

Com a evolução tecnológica, os caminhos da prestação de serviço estão convergindo para a nuvem e as empresas naturalmente precisarão de mais servidores, links de internet de maior capacidade e por consequência, os clientes exigem mais agilidade nas entregas e maior disponibilidade dos serviços contratados.

Surge a principal barreira na evolução da Cloud

Na corrida para tornarem-se competitivas, as empresas precisam de mais profissionais em seu quadro para conseguir entregar e manter toda a infraestrutura necessária para comportar a demanda do mercado, mas as atividades cotidianas para suportar o ambiente começam a se acumular e elevam os custos operacionais. Atividades como: alocar servidores, gerenciar todas as máquinas virtuais hospedadas, manter o ambiente padronizado, gerir as mudanças, monitorar, provisionar novos recursos por demanda, dentre outras, começam a se tornar uma barreira na evolução deste conceito de prestação de serviços.

 

Figura 1 - Aumento do Interesse por Cloud Computing

Superando esta barreira!

É então que com foco em superar essa barreira, John Allspaw (Flickr/Yahoo!) e Paul Hammond (Flickr) realizam uma apresentação em 2009 na Web Performance and Operation Conference para mostrar como conseguiram juntar as equipes de Desenvolvimento e Operações e ganhar eficiência operacional e executar mais de 10 Deploys por dia no ambiente. Surge então o primeiro registro público do termo #DevOps.

O DevOps surge para unir estas duas áreas ao mesmo objetivo, trazer mais agilidade e automação para as atividades cotidianas e gerar maior eficiência financeira para as empresas que trabalham com serviços baseados em Cloud Computing.

Os 4 pilares do DevOps são:

Cultura

  • Colaboração
  • Fim das divisões
  • Relação saudável entre as áreas
  • Mudança de comportamento

Automação

  • Deploy
  • Controle
  • Monitoração
  • Gerência de configuração
  • Orquestração

Avaliação

  • Métricas
  • Medições
  • Performance
  • Logs e integração

Compartilhamento

  • O feedback é tudo
  • Boa comunicação entre a equipe

As empresas têm ao seu alcance ferramentas que apoiam a aplicação prática destes pilares na entrega de serviços.

 Uma caixa de ferramentas a serviço das empresas

Para alcançar o objetivo de agilizar (transformar em ágil) tanto a infraestrutura quanto os outros processos envolvidos na entrega de serviços, as empresas têm em suas mãos uma verdadeira caixa de ferramentas e cabe a ela decidir a que melhor se encaixa em seu negócio.

Algumas dessas ferramentas e seus objetivos:

Orquestradores: são ferramentas que permitem executar comandos e controlar nodes/instâncias do parque em tempo real. Alguns destes são Kubernetes, Fabric, Capistano, Func e Mcollective.

Ferramentas de gerência de configuração: controlam estados de seu sistema, ajudam a centralizar toda as configurações e facilitam a administração e criação de novos ambientes. Algumas delas são Puppet, Chef, Cfegine e Salt.

Ferramentas para bootstrapping e provisionamento: são aquelas que auxiliam a instalar um sistema operacional em uma máquina física ou em uma máquina virtual, dentre elas existem alguns provedores de CLOUD que já oferecem essa facilidade nativamente ou utilizar ferramentas como o Kickstart, Cobbler e ManageIQ que atuam neste segmento.

Automação: é a criação de scripts para realização autônoma de atividades que demandariam tempo se executadas em ambientes de grande porte. Dessa forma, utiliza-se linguagens de programação #Ruby ou #Python, por exemplo), para automatizar atividades como alocação de IPs, DNSs, aplicações de regras, dentre outras.

Medir e Monitorar: essa atividade é de extrema importância para o sucesso de todo o processo, pois para evidenciar todo o serviço executado é necessário a criação de dashboards que darão uma visão gerencial do ambiente. Utiliza-se ferramentas como Grafana, Graylog ou zabbix para exibir o estado do ambiente, tráfego dos pacotes, utilização das portas e responder perguntas como: será que a mudança realizada no ambiente trouxe melhorias?

O céu é o limite

Após o advento do DevOps, as empresas conseguem desenvolver um trabalho cooperativo entre duas áreas que anteriormente sentiam-se de lados opostos e agregar todo conhecimento destas áreas a favor do negócio, fazendo com que a computação em nuvem ganhe um folego extraordinário para alcançar patamares inimagináveis desde sua criação. 

Comentários