segunda-feira, 4 de julho de 2011

#FISL 12: Ensemble, o maestro dos teus servidores

Esta palestra foi uma das mais interessantes que vi no FISL deste ano. O ensemble promete ser o APT do futuro, lidando não com pacotes, mas com serviços. O Gustavo Niemier, da Canonical, é o desenvolvedor do projeto e foi o palestrante.

Ele começou falando sobre a evolução dos "pacotes":

  • No início, havia apenas o tarball;
  • Depois surgiu o conceito de dependência, que viabilizou os gerenciadores de pacotes deb e rpm, entre outros;
  • Mas a solução de dependências era manual, então vieram o apt, yum e outros para resolver as dependências automagicamente;

Depois ele mostrou uma pirâmide, onde havia, da base para o topo:

  • Edição manual de arquivos de configuração;
  • Execução remota distribuída - softwares como o fabric permitem realizar operações de configuração remotamente;
  • Gerenciadores de configuração - software como cfengine e puppet permitem gerenciar a configuração de diversos equipamentos de forma centralizada;
  • Plataformas - aqui se encontra o ensemble, que de acordo com o Gustavo, é algo novo, diferente de tudo que existe atualmente, podendo representar uma verdadeira revolução na forma como gerenciamos serviços.

Definição

O Gustavo definiu o Ensemble como uma "plataforma para controle de serviços com flexibilidade", que permitiria fazer deployment e gerência através da criação, configuração e acompanhamento do ciclo de vida do serviço (incluindo VMs necessárias).

Mudança de paradigma

Para o Gustavo, máquinas são efêmeras, serviços é que importam, e portanto devemos migrar das relações entre pacotes para relações entre serviços.

Funcionamento do ensemble

O ensemble vai estar disponível na próxima versão do Ubuntu nativamente (hoje podemos instalar via PPA), e espera-se uma versão "completa" para a próxima versão LTS. Ainda assim, as capacidades atuais do software já impressionam.

O funcionamento do software é baseado na definição de fórmulas, que contém metadados descrevendo os serviços, regras baseadas em eventos (hooks), e flexibilidade que permite que seja usada qualquer linguagem para especificar as operações para a instalação e operação do serviço e suas dependências. Estas fórmulas determinam as regras para instalação de serviços, bem como suas dependências.

A idéia é que, no futuro breve, as fórmulas estejam disponíveis em repositório (atualmente são locais), de forma que fique facilitada a utilização da ferramenta a a disponibilização de novas fórmulas pela comunidade.

Atualmente, o ensemble é compatível com ambientes baseados no padrão Amazon EC2. Isto significa que o software é capaz de interagir com a API da Amazon e criar VMs com os serviços necessários para disponibilizar o ambiente que se deseja. Segundo o Gustavo, isso vai funcionar também em ambientes Ubuntu não hospedados na Amazon, seja uma nuvem privada com Eucalyptus ou mesmo em ambientes "não-cloud". 

O Gustavo exibiu um vídeo que demonstra a capacidade da ferramenta, utilizando como exemplo a disponibilização de um blog wordpress. Para isso ele executou os seguintes passos:

  • ensemble bootstrap - cria uma instância (AMI/VM) de gerenciamento para controle do ensemble na nuvem da Amazon;
  • ensemble deploy wordpress - cria uma instância com o wordpress instalado;
  • ensemble deploy mysql - cria uma instância com o mysql instalado;
  • ensemble add-relation wordpress mysql - cria um relacionamento entre wordpress e mysql (o blog precisa de um banco);
  • É feito um acesso à instância do wordpress via web para demonstrar que o serviço está funcional.

A idéia é que, no futuro, não sejam necessários os passos do mysql, pois o ensemble identificaria automaticamente as dependências do wordpress e faria a instalação dos softwares adicionais necessários.

Estou ansioso para ver a próxima versão do Ubuntu, já que, como não tenho acesso à nuvem da Amazon, não tenho como testar a versão atual.

Siga-nos no Twitter! ou Buzz
Receba os textos via e-mail ou RSS!
Confira outros textos sobre o tema!

Nenhum comentário:

Postar um comentário