Modelos de serviço de computação em nuvem, Parte 1: Infraestrutura como serviço

Aprenda sobre os conceitos principais de infraestrutura como serviço (IaaS). IaaS fornece serviços básicos, como servidores virtuais, armazenamento de dados e bancos de dados em uma plataforma para implementar e executar seus aplicativos.

Nesta série de três artigos, encontre exemplos simples e reais de computação em nuvem, para ajudar a eliminar a confusão em torno do conceito. Cada artigo nesta série cobre uma das três classificações de serviços da computação em nuvem, começando com infraestrutura como serviço, depois passando plataforma como serviço e, finalmente, software como serviço. Após ler esta série, a computação em nuvem passará a ser mais que um simples termo popular para você.

Dan Orlando, Enterprise RIA Consultant, Consultant

Photo of Dan OrlandoDan Orlando é um arquiteto e consultor reconhecido da Plataforma Flash na empresa. Como um defensor do RIA, Dan já foi publicado em revistas e Web sites, como PHP Architect, Flash and Flex Developer Magazine, IBM developerWorks, Amazon Web Services e Adobe Developer Connection. Dan também é coautor de Flex 4 in Action (Manning Press).



12/Abr/2011

Neste artigo, aprenda sobre a primeira das três classificações da nuvem: infraestrutura como serviço (IaaS). Alguns dos conceitos principais de IaaS incluem:

  • Cloudbursting
  • Computação com vários arrendatários
  • Agrupamento de recursos
  • O hypervisor

Acrônimos usados frequentemente

  • API: Interface de Programação de Aplicativos
  • TI: Tecnologia da Informação
  • ROI: Retorno sobre investimento
  • SLA: Acordo de Nível de Serviço
  • UI: interface com o usuário

O mais importante é aprender sobre as duas facetas primárias que tornam a IaaS especial: elasticidade e virtualização.

O valor de IaaS

Para negócios, o maior valor de IaaS é por meio de um conceito chamado cloudbursting—o processo de transferir tarefas para a nuvem nos momentos em que o máximo de recursos de computação é necessário. O potencial para economia de capital por meio de cloudbursting é significativo, pois as empresas não precisam investir em servidores adicionais que operam a 70% da capacidade duas ou três vezes por ano, ficando, no resto do ano, em uma carga de 7 a 10%.

Entretanto, para que as empresas aproveitem a IaaS nesse contexto, departamentos de TI precisam poder desenvolver e implementar o software que lida com a capacidade de realocar processos para uma nuvem IaaS. Há quatro considerações importantes para desenvolver e implementar software que podem gerenciar tais processos de realocação:

  • Desenvolver para a IaaS proprietária de um fornecedor específico pode se tornar um erro caro caso o fornecedor feche as portas.
  • A complexidade de software de alocação de recursos bem-escrito é significativa e geralmente requer recursos de desenvolvedor de ponta, que não são baratos. Você irá economizar muito tempo, frustração e despesas inesperadas, para você e para sua organização, gastando mais no começo pelos melhores recursos que puder encontrar.
  • O que será enviado para ser processado na nuvem? Enviar dados como identidades pessoais, informações financeiras e dados de tratamento médico coloca a conformidade de uma organização em risco com os regulamentos americanos Sarbanes-Oxley (SOX) Act, Payment Card Industry (PCI), ou Health Insurance Portability and Accountability Act (HIPAA).
  • Entenda os riscos de enviar processos que são fundamentais para a operação diária da empresa. Uma boa ideia é começar criando uma tabela e colocando processos que envolvem dados fudamentais para a conformidade em uma coluna, tarefas fundamentais para os negócios na segunda coluna e tarefas que não são fundamentais na terceira. Em seguida, planeje para que o software transfira apenas os itens na terceira coluna em sua primeira iteração.

Além disso, as organizações precisam ter cuidado com o estado atual do mercado de trabalho da computação em nuvem em relação à dependência de fornecedor. Pode ser um ativo para os negócios ter máquinas virtuais (VMs) que possam ser transferidas de datacenters para a nuvem e entre nuvens de fornecedores, mas isso requer que os fornecedores suportem um formato de arquivo padronizado, algo que eles têm relutado em fazer.

A realidade da situação é que atualmente não há uma especificação aberta e sob a autoridade de um órgão normatizador. Em outras palavras, atualmente não há um formato realmente padronizado. Isso, na melhor das hipóteses, complica as coisas, pois não há uma garantia de que o formato com o qual você desenvolveu será suportado por alguém mais a frente. Vale ressaltar, no entanto, que geralmente é possível migrar um dispositivo virtual para outro formato, desde que a especificação do novo formato seja aberta, ou que você tenha acesso a ela. Uma notícia mais promissora é que avanços importantes foram feitos recentemente no suporte a Open Virtualization Format (OVF), que é um candidato promissor a se tornar padrão. Outro candidato promissor é o formato Virtual Machine Disk (VMDK). VMDK era originalmente um formato proprietário para VMware, mas agora essa especificação está aberta e é suportada por algumas outras empresas.


Infraestrutura como um ativo

Para ilustrar a evolução da computação em nuvem, pense em como o segmento de mercado automotivo evoluiu ao longo das últimas cinco décadas. A vantagem competitiva para os fabricantes de automóveis era ganha, geralmente, pela quantidade de potência e torque que podia ser colocada em um carro ao longo dos anos 60 e 70. Nos anos 80, no entanto, esse paradigma passou, desfavoravelmente, para o mercado de trabalho e o ambiente, o que forçou uma mudança de paradigma, de infraestrutura como um ativo para infraestrutura como um serviço.

Da mesma maneira, a grande maioria das empresas de sucesso dos últimos 50 anos usou uma enorme parte de seu tempo e de seus recursos desenvolvendo infraestruturas, com o objetivo de ganhar vantagem competitiva criando uma rede maior, mais rápida e mais forte que seus concorrentes. O paradigma de "infraestrutura como um ativo" em TI compartilha várias das mesmas ou semelhantes ineficiências e características desfavoráveis que os carros potentes dos anos 60 e 70 tinham. Com relação à computação corporativa, essas ineficiências incluem:

  • Grandes quantidades de poder de computação não utilizado, que carregam custos associados com a grande quantidade de espaço consumida pelo hardware em grandes e caros datacenters.
  • Requisitos caros de mão de obra, incluindo monitoramento 24 horas por administradores de rede localizados nos datacenters nos quais os ativos de infraestrutura (servidores, roteadores, comutadores, etc.) estão.
  • Uma barreira massiva à iniciativa de Computação Verde como resultado do alto nível de desperdício de consumo de energia.

Para ajudar a entender as três classificações da computação em nuvem, eu criei uma matriz de conceito cruzado para sua referência (consulte a Tabela 1). Um paradigma é um modelo seguido pela maioria dos usuários. Como mencionado agora há pouco, IaaS marca a mudança de paradigma de infraestrutura como um ativo para infraestrutura como um serviço. As duas outras classificações da computação em nuvem mostradas na Tabela 1 também marcam uma mudança de paradigma. Para a Plataforma como Serviço (PaaS), a mudança se dá a partir de um paradigma de plataforma como um ativo, no qual licenças são compradas em massa. O mesmo pode ser dito do Software como Serviço (SaaS), no qual a mudança de paradigma é de um momento em que softwares são ativos da organização na forma de licenças, para um momento em que softwares são fornecidos como um serviço. Você irá aprender mais sobre PaaS e SaaS nas partes 2 e 3 desta série.

Tabela 1. Matriz de conceitos cruzados das três classificações da computação em nuvem
Mudança de paradigmaCaracterísticasPalavras-chaveVantagensDesvantagens e riscosQuando não usar
IaaSInfraestrutura como um ativoGeralmente independente da plataforma; custos de infraestrutura são compartilhados e, portanto, reduzidos; SLAs; pagamento pelo uso; escalamento automático Computação em grade, computação de utilitário, instância de computação, hypervisor, cloudbursting, computação de diversos arrendatários, agrupamento de recursos Evita despesa de capital com hardware e recursos humanos; risco de ROI reduzido; barreiras pequenas à entrada; escala simples e automatizadaEficiência e produtividade de negócios dependem amplamente das capacidades do fornecedor; custo de longo prazo potencialmente maior; centralização requer medidas de segurança novas/diferentesQuando orçamento capital é maior que o orçamento operacional
PaaSCompra de licençaConsome infraestrutura da nuvem; voltado a métodos de gerenciamento de projeto ágeisPilha de soluçãoImplementação de versão simplificadaCentralização requer medidas de segurança novas/diferentesNão disponível
SaaSSoftware como um ativo (empresa e consumidor)SLAs; UI construída com aplicativos de thin client; componentes de nuvem; comunicação via APIs; sem estado; conectadas vagamente; modular; interoperabilidade semânticaThin client; aplicativo cliente/servidorEvitar gasto de capital com software e recursos de desenvolvimento; risco de ROI reduzido; atualizações simplificadas e iterativasCentralização de dados requer medidas de segurança novas/diferentesNão disponível

Facetas primárias de IaaS

Em vez de imaginar a Internet como uma única nuvem global, talvez seja mais preciso imaginá-la como um sistema de várias nuvens, como uma tempestade. Com essa metáfora, pode-se afirmar logicamente que o raio é o sistema climático equivalente a comunicação entre nuvens. Essa metáfora é mais precisa talvez no sentido de que nuvens sistematicamente interagem umas com as outras para criar um único resultado: a Internet.

É improvável que a Internet será formada por uma única nuvem—ao menos no futuro próximo—devido à falta de padrões na computação em nuvem e às tentativas óbvias das empresas de capitalizar a longo prazo por meio da dependência de fornecedor. No entanto, a computação em nuvem não teria avançado até seu estado atual se não fosse pela inovação no espírito do capitalismo. Talvez um dia a Internet realmente seja uma única nuvem interconectada, na qual VMs possam ser transferidas sem esforços para "a nuvem", sem preocupação com formato de arquivo, e os clusters interconectados de VMs possam ser gerenciados entre provedores de serviços; tudo a partir de uma única interface. Mas esse dia está bem longe. No meio tempo, falaremos da Internet como consistindo em várias nuvens. (Ironicamente, estou usando a nuvem Apple MobileMe para armazenar este artigo, de modo que possa trabalhar nele em vários dispositivos.)

Conheça a infraestrutura elástica

A elasticidade é a primeira faceta fundamental da IaaS. Para ilustrar o conceito de elasticidade, pedirei que você use um pouco sua imaginação. Imagine que nuvens sejam na verdade feitas de conjuntos de marshmallow presos, de modo que as pessoas possam se sentar e voar nelas. Cada nuvem de marshmallow pode conter um certo número de pessoas, dependendo do número de grupos de marshmallow que formam a nuvem e de quantos marshmallows estão contidos nesses grupos. À medida que mais pessoas sobem na nuvem de marshmallow, é possível expandir os grupos de marshmallow colando mais marshmallows nele, aumentando a área da superfície. Como você já deve ter adivinhado, as pessoas representam os aplicativos que exigem recursos computacionais, tais como os que hospedam sites da Web e executam serviços de software. Os grupos de marshmallows representam clusters de VM, com cada marshmallow sendo uma VM.

Embora isso possa ser algo que você esperaria encontrar em um livro de Dr. Seuss, essa ideia oferece uma maneira de entender um conceito considerado por muitos uma arte obscura: armazenamento elástico em cluster. O armazenamento em cluster de servidores físicos para formar uma nuvem virtual é um conceito conhecido como armazenamento em cluster de nuvem, e se é de fato uma arte obscura, então sua especialização é medida pela escalabilidade do design de sistema de um artista.

Vamos examinar um exemplo. Digamos que você é um pesquisador estatístico trabalhando para o governo dos EUA. O governo está meio sem recursos, e pediram a você que compilasse todos os dados do último censo americano. Você é responsável por formular os dados estatísticos necessários, de modo que o Congresso possa tomar importantes decisões sobre a alocação de fundos de recuperação econômica e dólares de impostos daqui a três dias. Não é preciso dizer que esse é um trabalho muito importante, e você está com o tempo limitado. Pior, a quantidade de dados que deve ser processada é astronômica, e você acaba de descobrir que o departamento de TI levará três semanas para preparar os recursos necessários para compilá-los!

Esse é exatamente o tipo de problema que pode ser facilmente mitigado usando IaaS. Aliás, usando IaaS, toda a análise de dados do censo americano pode ser realizada em uma hora. Você começaria criando uma única instância de um servidor, que contém o software de banco de dados para executar consultas nos dados. Isso é chamado de imagem.

Após implementar a imagem e importar os dados no banco de dados, seria possível duplicar essa imagem quantas vezes fossem necessárias, e começar a executar as tarefas de processamento de dados. Enquanto as tarefas estão sendo executadas, é possível incluir e remover recursos de forma manual ou automática. Por exemplo, se as tarefas de computação não estiverem sendo executadas na velocidade necessária, basta incluir instâncias de máquina duplicadas ao cluster.

Agora que você entende o conceito de elasticidade, vamos examinar a segunda principal faceta da IaaS: virtualização.

Virtualização de máquina

Sergey Brin e Larry Page, os fundadores do Google, tiveram a ideia certa, em 1995, quando passavam as noites vasculhando o lixo atrás do prédio de ciência da computação da Universidade de Stanford, obtendo peças de computador descartadas. Eles traziam essas peças de computador baseadas em x86 de volta a seu quarto, para incluir na máquina Frankestein que estava hospedando o legendário crawler da Web que derrubaria toda a rede de Stanford—duas vezes.

Hoje se estima que o Google tenha mais de 1 milhão de servidores x86 em 12 principais datacenters e cerca de 20 datacenters menores em diferentes continentes. É uma nuvem bem grande. Dois fatores principais no design do sistema permitiram que eles escalassem a criação do quarto da universidade em 1995, e eles ainda valem para os mais de um milhão de servidores da rede do Google hoje. Até hoje, o Google continua usando peças x86 baratas em vez dos componentes de servidor corporativo mais caros encontrados em vários datacenters corporativos. O segundo aspecto é que failover, redundância, monitoramento, armazenamento em cluster e outras tarefas de gerenciamento de infraestrutura são manipuladas por um sistema de virtualização que é executado abaixo do sistema operacional, em vez de usar hardware separado, tais como balanceadores de carga, para lidar com essas tarefas.

É fácil identificar IaaS, pois é ela é geralmente independente de plataformas. IaaS consiste em uma combinação de recursos de hardware e software. Software IaaS tem código de baixo nível que é executado de maneira independente do sistema operacional—chamado de hypervisor— e é responsável por inventariar os recursos de hardware e alocar tais recursos baseado na demanda (consulte a Figura 1). Esse processo é chamado de agrupamento de recursos. O agrupamento de recursos pelo hypervisor torna possível a virtualização, e a virtualização torna a computação com vários arrendatários possível—um conceito que se refere a uma infraestrutura compartilhada por várias organizações com interesses similares em relação a requisitos de segurança e considerações de conformidade.

Figura 1. A relação entre VMs, o hypervisor e o computador
A relação entre VMs, o hypervisor e o computador

Com IaaS, você tem a capacidade de fornecer processamento, armazenamento, redes e outros recursos computacionais, nos quais é possível implementar e executar software arbitrário, tais como sistemas operacionais e aplicativos. A maioria dos usos da computação em nuvem segue a mesma estrutura de camadas fundamental que você já conhece: uma pilha ou plataforma de solução de software é implementada em uma infraestrutura de rede, e aplicativos são executados sobre a plataforma. No entanto, a virtualização torna o paradigma da nuvem exclusivo.


Conclusão

Neste artigo, você aprendeu sobre vários dos princípios básicos da computação em nuvem, bem como a anatomia da IaaS e como ela pode ser usada em uma situação real. O segundo artigo desta série irá examinar a segunda maior classificação da computação em nuvem: PaaS. No meio tempo, confira na seção Recursos links para mais informações sobre IaaS.

Recursos

Aprender

Obter produtos e tecnologias

  • ElasticFox é uma extensão do Firefox que permite gerenciar seus recursos de Amazon EC2.
  • Consulte as imagens do produto disponíveis no IBM Smart Business Development and Test IBM Cloud.
  • Consulte as imagens do produto disponíveis na Amazon Elastic Compute Cloud.

Discutir

  • Participe da comunidade do developerWorks. Entre em contato com outros usuários do developerWorks e explore os blogs, fóruns, grupos e wikis voltados para desenvolvedores.

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=Cloud computing
ArticleID=646839
ArticleTitle=Modelos de serviço de computação em nuvem, Parte 1: Infraestrutura como serviço
publish-date=04122011