Posts com o tag ‘Merb’

6mai2009

RailsConf'09: Gerenciamento de configuração usando Chef

(0) comentários

A RailsConf’09 começou ontem e o Hisamoto e eu estivemos bastante ocupados desde então. Ontem foi o dia dos tutoriais e nós assistimos um sobre gerenciamento de configuração, utilizando uma ferramenta nova chamada Chef.

Edd Dumbill, foi o palestrante e ele também é um dos membros da equipe de desenvolvimento do Chef. Segundo ele, os programadores estão cada vez mais adquirindo funções operacionais em decorrência da rotina de desenvolvimento. Isso se deve ao fato de precisarem configurar e manter ambientes de suporte ao desenvolvimento e de produção, com controle de versão, rotinas de deploy, integração contínua e os demais serviços de rede, de forma que se o processo não for automático, a manutenção desses ambientes acarreta em uma sobrecarga operacional.

Chef foi desenvolvido em Ruby utilizando o framework Merb e em parte agrega as mesmas funcionalidades que o Puppet e o Cfengine possuem, como o gerenciamento de configuração propriamente dito, mas existem diferenças importantes de natureza objetiva e também subjetiva entre essas ferramentas e o Chef. Gerenciamento de configuração é apenas uma parte do que é possível realizar com o Chef. Trata-se de um sistema bastante rico em funcionalidades para administração de infra-estrutura, na verdade é parte de um framework de administração de sistemas.

O Chef utiliza uma arquitetura cliente/servidor, onde o servidor, chamado de Chef Server, controla os clientes, chamados de Chef Clients. Tudo pode ser administrado via interface web, com suporte de uma API REST e autenticação OpenID.

Cada Chef Client é responsável pela configuração de um ou mais Nodes, que são os sistemas (computadores e roteadores, por exemplo), onde as Recipes são aplicadas.

Recipe é a unidade reutilizável do Chef. Nela estão definidos os Resources que configuram um determinado aspecto do sistema.

Para exemplificar o conteúdo de uma Recipe, temos o trecho abaixo que serve para gerenciar o arquivo sudoers de ambientes Linux:

package "sudo" do
  action :upgrade
end

template "/etc/sudoers" do
  source "sudoers.erb"
  mode 0440
  owner "root"
  group "root"
  variables(
    :sudoers_groups => node[:authorization][:sudo][:groups],
    :sudoers_users => node[:authorization][:sudo][:users]
  )
end

Para mais detalhes sobre a criação de Recipes, veja a página sobre Recipes no Wiki do Chef.

As Recipes ficam armazenadas em Cookbooks, que são as unidades de distribuição do Chef. É através delas que os Nodes aprendem o que devem fazer para se configurar.

Existem Recipes para configurar um servidor de Apache, MySQL, OpenLDAP, entre outros, tornando o provisionamento e o gerenciamento desses serviços automático e mais seguro.

A criação de Recipes é realizada através de um script rake e elas são escritas em Ruby. Isso é uma grande vantagem pois a configuração dos Nodes torna-se um script executável. Ao invés de ter um manual descrevendo o que um servidor deve fazer e como configurá-lo, pode-se deixar isso registrado em Recipes. Além disso, segundo os autores, o Chef teve a chance de aprender com a experiência do Puppet para aprimorar a implementação.

No final da palestra, eles apresentaram um sistema que utiliza o Chef como base para a administração de ambientes de cloud, chamado PoolParty, com suporte a Amazon EC2 e VMWare.

31dez2008

Novos Artigos de Wiki para Linux/Ruby/Python

(0) comentários

Hoje acrescentamos diversas páginas de Wiki que devem ajudá-lo a tirar maior proveito da sua hospedagem Linux compartilhada.

Primeiro, cumprindo uma dívida, leia este artigo sobre como ativar um repositório Subversion na sua hospedagem.

Segundo, leia este outro artigo sobre como usar repositórios Git via SSH diretamente na sua hospedagem.

Acesse esta categoria para aprender como instalar suas aplicações Ruby on Rails corretamente na sua hospedagem.

Esta outra categoria para saber como instalar aplicações Merb na sua hospedagem.

Finalmente, acesse esta categoria para saber como ativar e instalar aplicações web feita em Python e que suportam WSGI (como o famoso Django).

Não deixem de visitar e consultar sempre nosso novo Wiki. É sua melhor fonte de informações para tirar melhor proveito da sua hospedagem.

11nov2008

Suporte a Merb 1.0 na Hospedagem Compartilhada Linux

(1) comentário

A Locaweb suporta todos os principais frameworks open source, em especial os de Ruby. Além do Ruby on Rails agora temos também o suporte a Merb.

Na plataforma Ruby existem diversos frameworks web além do Ruby on Rails. Um deles é o Merb, um framework mais simples e mais flexível. Por exemplo, você pode substituir o ActiveRecord – que é parte obrigatória do Rails – por DataMapper, que implementa uma maneira diferente de lidar com mapeamento objeto-tabela. Ela tenta ser um pouco mais leve e rápida colocando menos módulos padrão no framework, deixando que você mesmo escolha os módulos que quer e conectando-os no seu aplicativo. 

A versão 1.0 acabou de sair, agora no dia 8 de novembro. Se você quiser aprender mais sobre Merb, leia este artigo, que lista 44 links para outros sites com tutoriais e mais explicações.

ler mais