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