Serviços em nuvem para sua infraestrutura virtual, Parte 1: Infrastructure-as-a-Service (IaaS) e Eucalyptus

Esta série explora os principais tipos de serviços em nuvem e os softwares relacionados que podem ser usados para se criar sistemas em escala de Web. Aqui na Parte 1, saiba como as nuvens Infrastructure as a Service (IaaS) fornece serviços básicos que podem ser usados para implementar e executar os seus aplicativos. Este artigo também discute como o Eucalyptus pode ser usado como uma infraestrutura para criar nuvens públicas ou privadas.

Prabhakar Chaganti, CTO, Ylastic, LLC

Prabhakar Chaganti photoPrabhakar Chaganti é o diretor de tecnologia (CTO) da Ylastic, uma empresa que está criando uma interface unificada exclusiva para arquitetar, gerenciar e monitorar todo o ambiente de computação da nuvem AWS: EC2, S3, RDS, AutoScaling, ELB, Cloudwatch, SQS e SimpleDB. Ele é autor de Xen Virtualization e GWT Java AJAX Programming e também o ganhador do prêmio de escolha da comunidade para o dispositivo virtual mais inovador no VMware Global Virtual Appliance Challenge. Atualmente, ele está trabalhando em um livro Amazon SimpleDB e pode ser encontrado no Twitter como @pchaganti.



29/Abr/2010

Introdução

Nesta série "Serviços em nuvem para sua infraestrutura virtual", conheça os três principais tipos de serviços em nuvem: Software as a Service (SaaS), Platform as a Service (PaaS) e Infrastructure as a Service (IaaS).

Este primeiro artigo explora como IaaS fornece um conjunto de blocos de construção ou serviços, como servidores virtuais, armazenamento de dados e bancos de dados. Usando esses serviços, é possível criar uma plataforma para implementar e executar os seus aplicativos. Conheça também o Eucalyptus, uma infraestrutura de software livre para implementar computação em nuvem com clusters ou farms de estação de trabalho.


A promessa da computação em nuvem

Definindo rapidamente, a computação em nuvem é o uso de recursos de computação escaláveis fornecidos como um serviço de fora do seu ambiente no esquema de pagamento de acordo com o uso. Você paga apenas os recursos que utiliza e pode acessar qualquer recurso residente na nuvem a qualquer momento e de qualquer lugar na Internet. Não é mais preciso se preocupar com a administração do hardware físico e da infraestrutura; podem-se deixar essas responsabilidades para o provedor de serviços em nuvem. A computação em nuvem é uma forma completamente diferente de olhar para os serviços de tecnologia da informação e de computação. A promessa da computação em nuvem é proporcionar acesso fácil e escalável aos recursos de computação necessários.

Como mostrado na Figura 1, um serviço de computação em nuvem é distinguido dos serviços de hospedagem gerenciados tradicionais por três características principais:

  1. Pague pelo uso — Você consome e paga pelo serviço por minuto ou por hora. Não é necessário pagar antecipadamente pelos recursos que você pode de fato usar ou não.
  2. Elasticidade — É possível expandir ou diminuir o consumo de recursos com base na demanda.
  3. Infraestrutura gerenciada — A infraestrutura do serviço é de propriedade do provedor e gerenciada completamente por ele.
Figura 1. Características de um serviço em nuvem
Screenshot shows the characteristics of a cloud service

Classificando os serviços em nuvem

Os serviços em nuvem podem ser classificados em três tipos gerais.

Software as a Service (SaaS)
Esse é o tipo mais comum de serviço em nuvem e um que a maioria de nós já usou em algum momento. No modelo de nuvem SaaS, o provedor de serviço fornece toda a infraestrutura junto com o software. Os usuários interagem com o serviço usando um front-end baseado na Web. Uma ampla gama de serviços é coberta, desde e-mail baseado na Web como o Gmail até softwares financeiros como o Mint.
Platform as a Service (PaaS)
O serviço em nuvem fornece ferramentas de desenvolvimento de softwares e produtos hospedadas pelo provedor em sua infraestrutura de hardware. Os usuários podem criar aplicativos usando essa plataforma e as APIs fornecidas ou com uma GUI para desenvolvimento. Exemplos conhecidos desse tipo de serviço são Force.com de Salesforce.com e Google App Engine.
Infrastructure as a Service (IaaS)
Os serviços em nuvem que fornecem acesso aos blocos de construção básicos como serviços. É possível combinar e reunir em camadas esses blocos de construção para criar a infraestrutura necessária para a execução dos seus aplicativos. Os exemplos mais conhecidos de IaaS são Amazon Web Services (AWS) e Rackspace.

A Figura 2 mostra os três tipos gerais e os exemplos correspondentes de serviços em nuvem.

Figura 2. Tipos de serviços em nuvem
Types of cloud services

Nuvens públicas e privadas

Os serviços em nuvem podem ser categorizados em três tipos com base no acesso e no local;

  • Uma nuvem pública está disponível a todos na Internet. Qualquer usuário pode se inscrever para usar a nuvem pública. AWS e Rackspace são provavelmente os dois maiores provedores de nuvens públicas.
  • Uma nuvem privada é um ambiente de nuvem proprietário que fornece os serviços de nuvem apenas a um número limitado de usuários. As nuvens privadas estão geralmente dentro do seu próprio datacenter por trás do firewall.
  • Uma nuvem híbrida às vezes chamada de nuvem privada virtual, fornece serviços executados em uma infraestrutura de nuvem pública, mas limita o acesso a ela com uma rede privada virtual (VPN).

Eucalyptus é um dos poucos serviços em nuvem atualmente disponíveis que podem ser uma nuvem pública, ser executados no AWS ou ser uma nuvem privada em execução atrás do firewall.


Infrastructure as a Service (IaaS)

As nuvens IaaS fornecem um conjunto de blocos de construção ou serviços básicos, como servidores virtuais, armazenamento de dados e bancos de dados. É possível reunir esses serviços em uma plataforma para implementar e executar os aplicativos. Você pode criar e remover sistemas com facilidade. Os serviços IaaS são geralmente acessados com uma API com o uso de mensagens baseadas em SOAP ou REST.

As nuvens IaaS são ambientes totalmente para scripts; elas são emprestadas para eles mesmos para se criar com facilidade estruturas sob demanda. A capacidade de montar ambientes de implementação de aplicativos completos com muita rapidez, que podem ser expandidos ou diminuídos com base na demanda dos recursos, é uma proposição de grande valor para os departamentos de TI atuais. Além da elasticidade, outro atrativo é o pagamento do serviço de acordo com o uso. Você paga apenas o que consome e não precisa mais alocar os recursos com antecedência.

Uma variedade de aplicativos pode se beneficiar com o uso de sistemas IaaS.

Teste e migração de dados
Ambientes completos de teste e migração de dados podem ser criados, usados e depois removidos quando não forem mais necessários. Não há mais atrasos para solicitar hardware e aguardar que os ambientes fiquem prontos. Sempre que quiser realizar o teste, você poderá criar um novo ambiente e descartá-lo quando o teste estiver concluído.
Ambientes de implementação do aplicativo da Web
É possível usar IaaS para executar os sites da Web e dar a eles a capacidade de manipular com facilidade um aumento no tráfego com a expansão dos recursos sob demanda. Pode-se até mesmo usar os serviços em nuvem IaaS para criar sites de vida curta que suprem a necessidade de estratégia de vendas ou campanha de marketing específica.
Necessidades de armazenamento
Sua empresa pode usar os serviços em nuvem como um local para armazenar arquivos e outros dados dos seus usuários.
Processamento de dados em larga escala
É possível usar o poder dose serviços em nuvem para avaliar os conjuntos de dados grandes e aproveitar as vantagens do processamento paralelo em larga escala. Crie grades sob demanda para processamento de grandes quantidades de dados e remova-as quando o processamento estiver concluído.

AWS, o primeiro sistemas de IaaS amplamente disponível, fornece um conjunto de serviços que podem ser acessados na Web que oferecem acesso programático à infraestrutura de computação pronta para uso do Amazon. A plataforma de computação robusta que o Amazon criou e refinou com o passar dos anos está agora disponível a todos, em qualquer lugar, com acesso à Internet. O AWS fornece os serviços de infraestrutura de bloco de construção básicos que atendem a algumas das necessidades principais da maioria dos sistemas. Arquivos corporativos complexos e diversos podem ser arquitetados pelas funções de criação de camadas com base nesses serviços de bloco de construção acessíveis e confiáveis fornecidos pelo Amazon.

As principais ofertas de serviço do AWS são o Elastic Compute Cloud (EC2), para gerenciar e executar instâncias virtuais, e o Simple Storage Service (S3), para armazenar dados. Esses serviços são acessados com uma API com o uso de SOAP ou REST. Essa API está rapidamente se tornando o padrão comprovado para interação com um ambiente de serviços em nuvem, e é bem utilizada pelo Eucalyptus para fornecer uma excelente plataforma de IaaS.


Eucalyptus

A infraestrutura da plataforma de computação em nuvem NEBULA da NASA, que tem como base o Eucalyptus, fornece a estrutura para a maioria dos seus sites. Eli Lilly, uma das maiores empresas farmacêuticas do mundo, usa Eucalyptus para armazenamento e energia de processamento sob demanda.

A Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) é uma infraestrutura de software livre para implementar computação em nuvem, de utilitário e elástica com o uso de clusters em nuvem ou de farms de estação de trabalho. Foi iniciado como um projeto de pesquisa do Departamento de Ciência da Computação de University of California Santa Barbara e comercializado recentemente como Eucalyptus Systems Inc. Eucalyptus ainda é mantido e desenvolvido como um projeto de software livre. Eucalyptus Systems está criando produtos adicionais com base no Eucalyptus de software livre; oferece também serviços de suporte.

Eucalyptus é fácil de instalar na maioria das distribuições mais recentes do Linux®, da origem ou de pacotes. Oferece os seguintes recursos de alto nível:

  • Compatibilidade de interface com EC2 e S3 (interfaces SOAP e REST). Quase todas as ferramentas existentes que usam essas interfaces funcionarão com as nuvens baseadas em Eucalyptus.
  • Suporte para executar VMs executadas acima de Xen hypervisor ou KVM. O suporte para outros tipos de VMs, como VMware, destina-se a releases futuras.
  • Ferramentas do administrador de nuvem para gerenciamento de sistema e contabilidade de usuário.
  • A capacidade de configurar vários clusters, cada um com endereços de rede internos privados, em uma única nuvem.

Arquitetura

Eucalyptus é composto por cinco componentes principais que funcionam juntos para fornecer os serviços em nuvem solicitados. Os componentes se comunicam entre si com segurança usando sistema de mensagens SOAP com WS-Security.

Controlador de nuvem (CLC)
Em uma nuvem Eucalyptus, esse é o componente do controlador principal responsável por gerenciar todo o sistema. É o principal ponto de entrada na nuvem Eucalyptus de todos os usuários e administradores. Todos os clientes se comunicam apenas com o CLC usando API baseada em SOAP ou REST. O CLC é responsável por enviar pedidos ao componente certo, coletá-los e enviar as respostas dos componentes de volta ao cliente. Essa é a face pública da nuvem Eucalyptus.
Controlador de Cluster (CC)
O componente controlador no Eucalyptus responsável por gerenciar toda a rede de instância virtual. Os pedidos são comunicados ao CC com o uso da interface baseada em SOAP ou REST. O CC mantém as informações sobre os Controladores de nó que são executados no sistema e é responsável por controlar o ciclo de vida das instâncias. Ele encaminha pedidos para iniciar as instâncias virtuais ao Controlador de nó com recursos disponíveis.
Controlador de nó (NC)
Controla o sistema operacional host e o hypervisor correspondente (Xen ou KVM atualmente, com suporte para VMWare no horizonte). É preciso executar uma instância do NC em cada máquina que hospedará as instâncias virtuais reais instanciadas mediante pedido de um CC.
Walrus (W)
O componente controlador que gerencia o acesso aos serviços de armazenamento no Eucalyptus. Os pedidos são comunicados ao Walrus com o uso da interface baseada em SOAP ou REST.
Controlador de armazenamento (SC)
O serviço de armazenamento no Eucalyptus que implementa a interface S3 do Amazon. O SC é usado para armazenar e acessar imagens de máquina virtual. As imagens de VM podem ser públicas ou privadas e são armazenadas inicialmente em forma compactada e criptografada. As imagens são decriptografadas apenas quando um nó precisa iniciar uma nova instância e pede acesso à imagem.

Uma instalação em nuvem Eucalyptus pode agregar e gerenciar recursos de um único cluster ou vários clusters. O cluster é um grupo de máquinas conectadas à mesma LAN. É possível ter uma ou várias instâncias de um NC em um cluster, e cada uma delas gerencia a instanciação e a terminação de instâncias virtuais.

Uma instalação em um único cluster, como mostrado na Figura 3, será composta por pelo menos duas máquinas: uma para executar CC, SC e CLC e outra para executar NC. Essa configuração é ideal principalmente para experimentação e configuração veloz. É possível simplificar isso ainda mais combinando tudo em uma única máquina, mas será preciso ter especificações de máquina fortes para se conseguir isso.

Figura 3. Topologia de uma instalação de Eucalyptus em um único cluster
Image shows topology of a single cluster Eucalyptus installation

Uma instalação em vários clusters pode situar cada um dos componentes (CC, SC, NC e CLC) em máquinas separadas. Essa será a forma preferida de configurar a sua nuvem Eucalyptus se quiser realizar trabalhos de grande importância nela. A instalação em vários clusters também oferece a oportunidade de aumentar significativamente o desempenho com a escolha de máquinas que complementem o tipo de controlador em execução nela. Por exemplo, é possível selecionar uma máquina com uma CPU super-rápida para a execução do CLC. A opção de vários clusters resultará em disponibilidade maior e na distribuição de carga e recursos entre os clusters. O conceito de um cluster é similar ao de uma zona de disponibilidade no Amazon EC2. Distribua recursos entre várias zonas de disponibilidade para que uma falha em uma delas não afete o seu aplicativo. A Figura 4 mostra um exemplo.

Figura 4. Topologia de uma instalação de Eucalyptus em vários clusters
Screenshot shows topology of a multi-cluster Eucalyptus installation

Antes de instalar e usar o Eucalyptus em sua infraestrutura, é preciso considerar os requisitos de hardware. Embora ele possa ser executado em um laptop para experimentação, uma opção de vários clusters seria melhor para um cenário de implementação razoável. Abaixo, estão algumas diretrizes para dimensionar o hardware a partir dos administradores em Ubuntu. As diretrizes devem ser amplamente aplicadas a qualquer distribuição Linux (não apenas Ubuntu).

As seguintes especificações são sugeridas para máquinas que serão usadas para a execução de CC, CLC, Walrus ou SC.

HardwareMínimoSugerido
CPU 1 GHz 2 x 2 GHz
Memória 512 MB 2 GB
Disco IDE 5400 rpm SATA 7200 rpm
Espaço em disco 40 GB 200 GB
Rede 100 Mbps 1000 Mbps

As máquinas que serão usadas para a execução do NC precisam de muito mais potência, já que elas irão executar cada uma das instâncias virtuais. Elas também precisarão de espaço suficiente em disco para armazenar as imagens para lançar as instâncias. As máquinas que executam o NC devem preferencialmente ter vários núcleos, com pelo menos 4 GB de memória, e usar unidades de disco velozes. Abaixo estão algumas especificações sugeridas.

HardwareMínimoSugerido
CPU Extensões de VT VT, 64 bits, vários núcleos
Memória 1 GB 4 GB
Disco IDE 5400 rpm SATA ou SCSI 7200 rpm
Espaço em disco 40 GB 100 GB
Rede 100 Mbps 1000 Mbps

Disponibilidade e instalação

No momento da criação deste artigo, a versão mais recente do Eucalyptus era 1.6. É possível testar o Eucalyptus imediatamente usando a instância pública disponível gratuitamente Eucalyptus Public Cloud (EPC) hospedada pelo projeto. A EPC tem recursos limitados, portanto, restringe o número de instâncias que podem ser iniciadas e a capacidade de armazenamento que pode ser usada. Além disso, é uma outra forma excelente de testar Eucalyptus e ter uma noção do ambiente.

Eucalyptus pode ser instalado a partir da origem ou com o uso de pacotes para distribuições específicas do Linux. A instalação a partir da origem é mais complicada, mas funcionará em praticamente todas as versões recentes do Linux. Os pacotes prontos para instalação estão disponíveis para Redhat e distribuições baseadas em Debian. Consulte o guia do administrador do Eucalyptus para as instruções de instalação detalhadas. A forma mais simples de instalar o Eucalyptus é instalar a versão mais recente da distribuição Ubuntu Linux denominada Karmic Koala e aproveitar Ubuntu Enterprise Cloud, que fornece suporte completo para a execução de nuvens baseadas em Eucalyptus (consulte Recursos).


Eucalyptus e Ubuntu Enterprise Cloud

Ubuntu Enterprise Cloud (UEC) é uma nova iniciativa de software livre da Ubuntu para facilitar a implementação, a configuração e o uso de infraestruturas em nuvem com base no Eucalyptus. A UEC permite, com facilidade:

  • Criar nuvens públicas executadas no Eucalyptus na infraestrutura do Amazon EC2
  • Criar nuvens privadas que sejam executadas em sua própria infraestrutura no seu datacenter que está por trás do firewall

Essa é de longe a forma mais simples de instalar e testar o Eucalyptus. Apenas faça o download da versão de servidor em CD e instale-a onde quiser. UEC é também o primeiro projeto de software livre que permite criar serviços em nuvem no seu ambiente local com facilidade e aproveitar a potência da computação em nuvem.


Benefícios do Eucalyptus

Eucalyptus é um ambiente de serviços em nuvem bem arquitetado que pode ser usado para se criar uma nuvem pública na infraestrutura do Amazon EC2 ou criar nuvens privadas no seu datacenter (ou até mesmo no seu laptop). Se estiver investigando a computação em nuvem para uso dentro de sua equipe ou organização, o Eucalyptus é algo a ser considerado para sua plataforma de serviços em nuvem. Ele proporciona inúmeras vantagens.

Software livre e desenvolvimento
O Eucalyptus foi criado para promover a comunicação e a pesquisa em plataformas de computação em nuvem. Está disponível gratuitamente na forma de origem, ficando mais fácil olhar abaixo das capas ou criar extensões da plataforma para atender às suas necessidades. O passo do desenvolvimento é rápido. Os recursos e as melhorias estão sendo adicionados ao Eucalyptus rapidamente.
Excelente comunidade
O Eucalyptus tem uma excelente comunidade de usuários entusiasmados e instruídos que desejam compartilhar seus insights gratuitamente com outros usuários. Seus fóruns são uma excelente forma de obter suporte e interagir com outros usuários do Eucalyptus.
Nuvem pública
O Eucalyptus pode ser facilmente instalado e executado na estrutura do Amazon EC2 como uma nuvem pública.
Nuvem privada
O Eucalyptus pode ser instalado no seu datacenter atrás do firewall como uma nuvem privada em execução em sua própria infraestrutura. Você tem os benefícios de controle completo sobre a segurança e o meio ambiente.
Portabilidade
Devido à compatibilidade do Eucalyptus com a API do Amazon EC2 API e a flexibilidade do Eucalyptus, é possível migrar seus aplicativos de uma nuvem para outra de maneira fácil. Pode-se até mesmo criar nuvens híbridas que usam as nuvens privadas e públicas juntas.
Bem testado
O Eucalyptus agora faz parte do Ubuntu Enterprise Cloud e é um componente de milhares de servidores Ubuntu no mundo todo. Essa escala de teste estabilizará a plataforma Eucalyptus muito rapidamente.
Suporte comercial
Se precisar de suporte mais rápido do que os fóruns podem fornecer, o suporte comercial está disponível para nuvens baseadas em Eucalyptus.

Conclusão

Neste artigo, você conheceu o ambiente de computação em nuvem Infrastructure as a Service (IaaS). Explorou também o projeto Eucalyptus de software livre que pode ser usado para a criação de infraestruturas em nuvem pública ou privada.

A

Parte 2 examina os ambientes em nuvem Platform as a Service (PaaS) e Appscale, um projeto de software livre para a execução de aplicativos Google App Engine.

Recursos

Aprender

  • A documentação do Eucalyptus fornece instruções e detalhes para configurar e gerenciar o ambiente.
  • Veja o guia detalhado para Instalar o Eucalyptus pela origem.
  • A forma mais simples de instalar o Eucalyptus é instalar a versão mais recente da distribuição Ubuntu Linux denominada Karmic Koala e aproveitar Ubuntu Enterprise Cloud.
  • Leia sobre a plataforma de computação em nuvem NEBULA da NASA baseada no Eucalyptus. Siga o projeto NEBULA no Twitter. Em seguida, obtenha mais informações sobre aplicativos hospedados pela NASA na plataforma NEBULA.
  • Leia casos de estudo e histórias de sucesso a partir de uma ampla variedade de empresas que usam os serviços da Web do Amazon, o IaaS original, para expandir os seus negócios.
  • Saiba tudo sobre a barra de ativação do Ubuntu para controlar as alterações nos pacotes do Eucalyptus no UEC.
  • Computação em nuvem no Ubuntu cobre todas as coisas relacionadas a Ubuntu Enterprise Cloud e Ubuntu em Amazon EC2.
  • O artigo do New York Times "Cloud Computing: So You Don’t Have to Stand Still" discute a repercussão em torno da computação em nuvem.
  • Siga as atualizações do Eucalyptus em @eucalyptuscloud no Twitter.
  • "Cloud Computing. Available at Amazon.com Today" na revista on-line discute as iniciativas de computação em nuvem do Amazon e sua natureza de mudança do jogo.
  • Para ouvir entrevistas e discussões interessantes para desenvolvedores de software, consulte os podcasts do developerWorks.
  • Mantenha-se atualizado com os eventos e webcasts técnicos do developerWorks.
  • Siga o developerWorks no Twitter.
  • Consulte as próximas conferências, feiras, webcasts e outros Eventos em todo o mundo que sejam de interesse dos desenvolvedores IBM de software livre.
  • Visite a Zona de software livre do developerWorks para obter informações abrangentes sobre procedimentos, ferramentas e atualizações de projetos que simplificam o desenvolvimento de tecnologias de software livre e a utilização destas com produtos IBM; e não deixe de passar pelos nossos artigos e tutoriais mais populares.
  • A comunidade My developerWorks é um exemplo de comunidade geral de sucesso que abrange uma ampla gama de assuntos.
  • Assista e aprenda sobre a IBM e as tecnologias e funções de produtos de software livre com as demos on demand do developerWorks grátis.

Obter produtos e tecnologias

Discutir

  • Siga os fóruns do Eucalyptus para interagir com a comunidade e para suporte.
  • Participe dos blogs developerWorks e envolva-se na comunidade do developerWorks.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=486106
ArticleTitle=Serviços em nuvem para sua infraestrutura virtual, Parte 1: Infrastructure-as-a-Service (IaaS) e Eucalyptus
publish-date=04292010