Sei sulla pagina 1di 50

FACULDADE METODISTA GRANBEY – FMG

CURSO DE SISTEMAS DE INFORMAÇÃO

JANIO ALBERTO MEDEIROS

CLOUD COMPUTING: UM NOVO PARADIGMA


DE INFRAESTRUTURA DE TI
JUIZ DE FORA
2009
JANIO ALBERTO MEDEIROS

CLOUD COMPUTING: UM NOVO PARADIGMA DE


INFRAESTRUTURA DE TI

Trabalho de Conclusão de Curso


apresentado pelo discente Janio Alberto
Medeiros ao curso de Bacharelado em
Sistemas de Informação da Faculdade
Metodista Granbery, como requisito para
obtenção do título de bacharel em Sistemas
de Informação.

ORIENTADOR: PROFESSOR EDUARDO


PAGANI JULIO
JUIZ DE FORA
2009
JANIO ALBERTO MEDEIROS

CLOUD COMPUTING: UM NOVO PARADIGMA DE INFRAESTRUTURA DE TI

Trabalho de conclusão de curso apresentado como requisito para obtenção do título


de Bacharel em Sistemas de Informação da Faculdade Metodista Granbery.

Juiz de Fora, 05 de dezembro de 2009

_______________________________________________
Professor Eduardo Pagani Julio - Orientador
Faculdade Metodista Granbery

____________________________________________________
Professor Alexandre Luiz Moraes Lovisi - Examinador
Faculdade Metodista Granbery

_______________________________________________
Professor Saulo Moraes Villela - Examinador
Faculdade Metodista Granbery
JUIZ DE FORA
2009

Dedico em especial a minha amada Raquel,


aos amados pais, Jaime e Shirley pelo
incentivo continuo em todos os momentos da
minha vida e que fielmente acreditaram em
minha vontade de vencer.
AGRADECIMENTOS

Agradeço a Deus por ter me guiado e me ajudando a superar


minhas dificuldades para que eu alcançasse meus objetivos ao longo desta
jornada.
Ao meu orientador Eduardo Pagani pelas sugestões apresentadas,
paciência e excelente orientação ao longo do desenvolvimento do trabalho.
Muito obrigado pelo tempo gasto com leitura e correções de cada capitulo
deste trabalho.
Agradeço aos queridos e amados Pais por acreditar, incentivar e
acima de tudo me apoiar ao longo desta jornada.
A minha amada Raquel pela compreensão e incentivo diário,
principalmente nos momentos em que estava ausente para a concepção deste
trabalho.
Aos irmãos da faculdade que me ajudaram ao longo desta jornada e
principalmente meus amigos Fernando, Gustavo, Rogério e Toninho por tudo.
E a todos aqueles que de alguma forma contribuíram para a
realização desta conquista.
RESUMO

Atualmente o termo Cloud Computing, torna-se cada vez mais


presente no meio de profissionais de TI (Tecnologia da Informação), com o
intuito de revolucionar o desenvolvimento e comércio de Hardware e Software
e esta proposta tem como objetivo principal a economia, elasticidade e
portabilidade.
Esta nova abordagem provê poder de computação como serviço via
web, com a promessa de eliminar a necessidade de que organizações e
indivíduos mantenham seu Hardware, Software, equipamento de
armazenagem e equipamento de rede de computação.
O uso da metáfora "nuvem" serve para disfarçar a complexidade do
trabalho requerido para integrar tudo isso. O conceito da computação em
nuvem emergiu como a melhor esperança para a madura indústria da
computação. A esperança é a de que ela crie condições para uma onda ainda
não plenamente imaginada de novos negócios, operados nas nuvens.
Sob este argumento, este trabalho tem como intuito analisar as
principais características de um ambiente em nuvem, enfatizando as principais
tecnologias e conceitos envolvidos, descrevendo o novo modelo computacional
que tem como vantagem a economia escalar sob o conceito de computação
sob demanda, Software como serviço dentre outras tecnologias e propostas
contidas neste novo paradigma computacional.

Palavras-Chave: Cloud Computing, SaaS. PaaS. Virtualização. IaaS. SOA.


LISTA DE ILUSTRAÇÕES

Ilustração 1 - Ambiente Cloud Computing .................................12

Ilustração 2 - Cloud Computing em camadas.............................15

Ilustração 3 - Camadas IaaS ........................................................28

Ilustração 4 - Cluster ....................................................................36

Ilustração 5 - Grid Computing......................................................37


LISTA DE ABREVIATURAS E SIGLAS

BAAS Backup-as-a-Service
CAPEX Capital Expenses
CPU Central Processing Unit
DAAS Database-as-a- Service
ERP Entreprise Resource Planing
HAAS Hardware-as-a-Service
IAAS Infraestruture-as-a-Service
IBM International Business Machines
LB Load Balancing
MYSQL My Structured Query Language
OPEX Operating Expenses
PAAS Plataform-as-a-service
PC Personal Computer
PHP Hypertext Preprocessor
SAAS Softwares-as-a-Service
SGBD Database management systems
SLA Service Level Agreement
SOA Service Oriented Architecture
TI Tecnologia da Informação
WEB World Wide Web

SUMÁRIO

1 Introdução ....................................................................................9
2 Cloud Computing ......................................................................11
2.1 Definição .....................................................................................................12
2.2 Características da Cloud Computing.......................................................14
2.3 Modelos Cloud Computing........................................................................16

2.4 Software-as-a-Service................................................................................19
2.5 Database-as-a-Service...............................................................................21
2.5.1 Arquiteturas Básicas do modelo DaaS.................................................22

2.6 Backup-as-a-service...................................................................................24
2.7 Plataform-as-a-Service...............................................................................24
2.8 Infraestructure-as-a-Service......................................................................26
2.9 Service Oriented Architeture.....................................................................28
2.10 Conclusão..................................................................................................29

3 Conceitos e tecnologias envolvidas.........................................31


3.1 Introdução geral a computação distribuída.............................................31

3.2 Processamento Paralelo............................................................................32


3.3 Processamento distribuído.......................................................................32
3.4 Grid Computing...........................................................................................33
3.5 Clusters........................................................................................................34
3.6 Diferença entre Grid e Clusters.................................................................35
3.7 Virtualização................................................................................................37
3.8 Computação Ubíqua e Pervasiva..............................................................39
3.9 Utility Computing........................................................................................40
3.10 Conclusão..................................................................................................40

4.5 Eucalyptus...............................................................................41

O eucalyptos é um software responsável pela implementação e


gestão de uma nuvem privada ou de uma nuvem de acesso
publico. O Eucalyptus é amaparado pela licença GPL. Ele
fornece uma plataforma de computação em nuvem EC2
compatível com armazenamento em nuvem e compatíveis com
S3....................................................................................................41

plataforma. O eucalipto tem se tornado muito popular e é visto


como um dos principais...............................................................41

plataformas em nuvem open source. Desde Eucalyptus


disponibiliza seus serviços..........................................................41
através EC2/S3 APIs compatíveis, as ferramentas de cliente por
escrito AWS pode ser...................................................................41

usado com Eucalyptus também...................................................41

4 CONSIDERAÇÕES FINAIS.........................................................42

REFERÊNCIAS BIBLIOGRÁFICAS...............................................43
9

1 INTRODUÇÃO

Não é nenhuma novidade que o alto custo com TI é um problema


originado dentro das corporações. As organizações de TI gastam hoje 80% de
seu tempo com a manutenção de sistemas e não é seu objetivo de negócio
manter dados e aplicativos em operação. É desperdício financeiro, o que é
inaceitável nos dias de hoje. Cloud Computing (Computação em Nuvem), é um
paradigma de computação em larga escala que possui foco em proporcionar
economia de escala, em que um conjunto abstrato, virtualizado, dinamicamente
escalável de poder de processamento, armazenamento, plataformas e
serviços, que são disponibilizados sob demanda para clientes externos através
da Internet (FOSTER et al., 2009).
Conforme mencionado por Foster (2009), é perceptível que este
conceito trata de separar por completo toda a infra-estrutura de TI (Hardware,
Software e gestão de dados), tornando se um modelo de tecnologia que
permite que grandes quantidades de informações e recursos de
processamento possam ser acessados a distância, através de computadores
pessoais ou outros dispositivos distintos de acesso a Internet. Deste modo,
nota-se que as empresas podem cortar custos, complexidade de operação e
adversidades causadas por problemas tecnológicos. Em conseqüência,
fornecedores de tecnologia passam a prover infraestrutura e serviços mais
capacitados para atender esta demanda, que se mostra um modelo
extremamente eficiente para utilização, acesso e processamento de dados
através de dispositivos e tecnologias distintas.
Dentro desse contexto, estima-se que o PC (Personal Computer –
Computador Pessoal) será apenas um processador ligado à Internet, a "grande
nuvem" de computadores. Não há necessidade de instalação de Softwares,
serviços e armazenamento de dados, mas apenas os dispositivos de entrada
(teclado, mouse) e saída (monitor) para os usuários.
Para Taurion (2009), é difícil prever quanto ao futuro da Cloud
Computing, mas estima que as soluções de Computação em Nuvem internas
terão grande aceitação, uma vez que a maioria das empresas não vão se sentir
confortáveis colocando todos seus sistemas em nuvens abertas e públicas.
10

Este trabalho está organizado da seguinte forma: o segundo capítulo


aborda o modelo Cloud Computing, apresenta sua definição, sua estrutura em
camadas e os principais modelos de nuvem. Analisa os conceitos básicos das
tecnologias envolvidas SaaS, DaaS, PaaS, IaaS e SOA, consideradas como
base da computação em nuvem. O capítulo três aborda os conceitos básicos
das principais tecnologias e princípios como: processamento paralelo e
distribuído, computação em grade, clusterização e virtualização. Apresenta o
conceito da computação ubíqua e pervasiva, assim como destaca as
vantagens da computação por utilidade. O capítulo quatro apresenta as
considerações finais, as conclusões deste trabalho e aborda a proposta para
trabalhos futuros de simulações de ambientes em nuvem.
11

2 CLOUD COMPUTING

Neste capítulo são abordados os conceitos da tecnologia Cloud


Computing, enfatizando as tendências envolvidas para concepção deste novo
paradigma.
Atualmente a Tecnologia da Informação está presente em
praticamente em todas as atividades de negócios e os investimentos em
tecnologia tem um crescimento significativo ano após ano. Hoje a Internet está
presente em todos os lugares permitindo que empresas se comuniquem de
forma dinâmica. Informações e conhecimento circulam pelas empresas em
tempo hábil, permitindo que decisões importantes e lucrativas sejam tomadas
da melhor maneira possível. A velocidade que estas informações circulam é de
vital importância para sobrevivência das empresas.
O mundo empresarial hoje é turbulento e imprevisível por si só.
Aumento da concorrência, excesso de capacidade produtiva, margens
reduzidas, redução de preços, ciclos de vida de produtos cada vez menor,
clientes com mais opções de escolha e menos propensos a fidelidade. Em prol
de sua sobrevivência em um mundo em constante mutação empresas passam
por constantes mudanças organizacionais, alterando continuamente suas
ofertas de serviços no mercado, seus processos e conseqüentemente seus
modelos de negócio.
Sob este contexto, é necessário uma estrutura que possibilite que o
negócio seja tão flexível quanto à demanda do mercado. Surge no cenário o
conceito de Cloud Computing. Dentro deste conceito, todos os sistemas
computacionais de uma organização e eventualmente os de empresas
parceiras podem ser compartilhados, criando um pool1 de recursos dinâmicos.
A Cloud Computing implementa o conceito de virtualização, permitindo que
inúmeros computadores interligados gerem a imagem de um supercomputador
virtual.
Para Foster (2009), embora possa parecer revolucionário, o conceito
Cloud Computing é um passo evolutivo na eterna busca pelo compartilhamento
e consequentemente maior aproveitamento dos recursos computacionais.

1
Uso compartilhado de equipamentos por um número de usuários que juntos investem
nos equipamentos em questão (TAURION, 2009).
12

2.1 Definição

Segundo a INTEL (2009), a Cloud Computing é uma das mais


importantes tendências tecnológicas dos próximos tempos. É o próximo passo
na evolução de serviços de TI sob demanda e produtos. A Nuvem é uma
metáfora para a Internet, baseado em como é descrito em diagramas de redes
de computadores, sendo uma abstração para a infra-estrutura complexa que a
mesma esconde, conforme ilustra a Ilustração 1.

Ilustração 1 - Ambiente Cloud Computing


Fonte: AMBUJ, 2009.

É um estilo de computação no qual são providas capacidades


relacionadas a TI “como um serviço”, permitindo os usuários possam acessar
serviços tecnologia habilitados na Internet.
Fruto da evolução e da reunião de uma série de outras tecnologias e
ferramentas já difundidas na área da computação, o conceito de Cloud
Computing tem como principal característica a transformação dos modos
tradicionais de como empresas utilizam e adquirem os recursos da Tecnologia
da Informação (TAURION, 2009).
Para Lasica (2009), trata-se um ecossistema que compreende vários
modelos de negócio, centenas de fornecedores e diferentes nichos de
mercado. É um paradigma bem abrangente e muito mais amplo que
simplesmente infraestrutura como serviços.
13

Sob este aspecto, conclui-se que fornecedores de tecnologia


passam a prover a infraestrutura e serviços capacitados para atender a
demanda. Trata-se de um modelo eficiente para utilizar Softwares, acessar,
armazenar e processar dados por meio de diferentes dispositivos e tecnologias
WEB (ambiente multimídia Internet). Na prática, a Cloud Computing seria a
transformação dos sistemas computacionais físicos de hoje em uma grande
base virtual.
Dentro deste novo modelo computacional possibilitado pela Cloud
Computing, a Internet passa a ser o cérebro das operações e atividades das
empresas e usuários finais permitindo que novos processos sejam entregue
como serviço através da rede, sem necessidade de aumento de infraestrutura e
com pagamento atrelado ao uso feito pelos usuários. Dessa forma, a WEB
torna-se o grande centro de armazenamento e gestão de recursos variados,
uma complexa rede de sistemas hoje instalada fisicamente em milhares de
servidores e computadores de usuários.
Com a Cloud Computing, a rede passa a concentrar desde sistemas
utilizados em larga escala por usuários finais como sistemas operacionais,
programas de produtividade de escritório, arquivos de músicas e fotos, até
aplicativos projetados para ambientes corporativos, como os sistemas de
gestão empresarial. Como conseqüência gerada, esta tecnologia apresenta-se
de forma bastante eficiente para maximizar e flexibilizar recursos
computacionais. Além disso, uma nuvem computacional é um ambiente
redundante, reluzente e pode ser definido como capacidade de um sistema de
informação continuar a funcionar corretamente, apesar do mau funcionamento
de um ou mais de seus componentes.
Cloud Computing é um paradigma de computação em larga escala
que possui foco em proporcionar economia de escala, em que um conjunto
abstrato, virtualizado, dinamicamente escalável de poder de processamento,
armazenamento, plataformas e serviços são disponibilizados sob demanda
para clientes externos através da Internet (FOSTER, 2009).

Segundo Taurion (2009), o termo Cloud Computing torna-se mais


eminente a cada dia, e já vem sendo considerado nas estratégias de TI de
14

empresas prestadoras de serviço, mostrando-se inegável na transformação da


maneira de como empresas elaboram suas estratégias de TI.
Ainda em fase de maturação e com interpretações diversas por parte
de especialistas de TI, o conceito de Cloud Computing já começa a movimentar
o mercado de tecnologia com maior intensidade e essa tendência já é
percebida em ferramentas comuns do dia-a-dia, como sistemas de correio
eletrônico, textos e planilhas disponibilizadas pelo Google, através do Google
APPS2, ou ainda pela IBM, com o Lotus Simphony. Essas ferramentas
apresentam uma série de aplicativos bem próximas do que encontra-se hoje
em programas do pacote Office, da Microsoft, com a diferença de que esses
recursos não ocupam espaço no computador do usuário, não demandam
licença de uso ou ainda o download de programas para serem utilizados
(REESE, 2009).

2.2 Características da Cloud Computing

A Cloud Computing possui características próprias que definem o


seu conjunto de tecnologias. Dentre elas destacam-se Resse, (2009):
• a abstração da infraestrutura e a distribuição geográfica dos
sistemas, exigindo recursos administrativos e gerenciais que
permitem autonomia de gestão e operação entre diversos sites;
• a heterogeneidade dos sistemas uma vez que não se pode exigir
que os sistemas que constituem uma Cloud sejam da mesma
tecnologia;
• escalabilidade, que permite que a Cloud seja dinâmica,
crescendo a medida que mais sistemas se incorporem aos
interiores;
• adaptabilidade, com a Cloud buscando-se auto re-configurar
sempre que um determinado no se tornar indisponível. O
fundamento básico Cloud Computing é a virtualização dos
recursos computacionais.
De maneira geral, visualiza-se as tecnologias de uma Cloud em
camadas, com cada camada sendo composta por um conjunto de tecnologias
2
Aplicativos para Web.
15

específicas. Desta maneira, Resse (2009) define a arquitetura da Cloud


Computing em 4 camadas conforme ilustra a Ilustração 2, descritas a seguir:

Ilustração 2 - Cloud Computing em camadas.


Fonte: o Autor.

• a camada mais baixa é constituída pelos elementos básicos, que


são os recursos computacionais, como servidores e seus
sistemas operacionais, definida por camada de virtualização;
• a seguir a camada do Middleware3, que oferece serviços básicos
como gestão de recursos distribuídos;
• em seguida é possível visualizar a camada de serviços
orientados aos usuários, como ambientes de programação em
Grid4;
• por fim está a camada de aplicações, onde estão os portais de
acesso e aos programas que exploram a potencialidade das
nuvens.
Para Reese (2009), a base de uma nuvem computacional é definida
pela capacidade de interoperabilidade entre seus componentes. Para
implementar as funcionalidades que geram interoperabilidade e necessário
criar uma serie de protocolos e mecanismos que permitem aos usuários
acessarem sistemas distribuídos por outros locais. Os protocolos e
mecanismos (serviços) devem ser flexíveis o suficiente para aceitar a Cloud
Computing de diversas tecnologias e sistemas operacionais. De maneira geral,
devem ser implementados em camadas, de forma similar as camadas que
compõe a Internet.

3
Camadas de software que não constituem diretamente aplicações (TAURION, 2004).
4
Modelo computacional capaz de alcançar uma alta taxa de processamento dividindo
as tarefas entre diversas máquinas.
16

Sob este contexto, Taurion (2009) ressalta que integrar todas estas
tecnologias que evoluíram de forma independente geram inúmeros problemas
que ainda necessitam de solução. A Cloud Computing ainda não é um conjunto
de tecnologias maduras; ao contrário, está em continua evolução e ainda
surgirão muitas mudanças e transformações nos próximos anos.

2.3 Modelos Cloud Computing

Hoje o mercado oferece diversas ofertas de Cloud Computing, que


podem ser caracterizadas por duas vertentes: grau de compartilhamento e foco
de atuação (TAURION, 2009).
Sob o aspecto do grau de compartilhamento, as clouds podem ser
public (pública), onde o serviço é contratado a um provedor externo, private
(privada), propriedade de uma única empresa, que controla quais aplicações
são executadas e onde e hibryd (híbrida), que combina estes dois modelos. As
nuvens híbridas são uma combinação de nuvens publicas e privadas
(MILLER,2008).
As nuvens públicas são mais debatidas e mais conhecidas e não
significa necessariamente que a nuvem é gratuita, mas uma nuvem que pode
ser acessada pela Internet. A gratuidade ou não vai depender do modelo de
negócios do provedor da nuvem, que pode subsidiar seus serviços para
oferecê-los gratuitamente em troca de receitas oriundas de outras formas.
Elas podem oferecer as empresas um acesso rápido a infraestrutura
computacional, com custos mínimos. Entretanto, alguns desafios referentes a
segurança, confiabilidade e portabilidade com outras clouds são reais e
precisam ser endereçados corretamente.
As nuvens privadas, também conhecidas como “nuvens
empresariais”, correspondem ao uso do conceito de nuvem computacional
aplicado aos servidores localizados internamente ao firewall5. A nuvem privada
mantém os benefícios das nuvens publicas, como escalabilidade e provisiona
mento automático, mas implementa mecanismos de segurança e confiabilidade

5
Dispositivo de uma rede de computadores que tem por objetivo aplicar uma política
de segurança a um determinado ponto de controle da rede.
17

mais severos. Pelo foco de atuação, podem ser clouds voltadas para usuários
finais ou empresas.
Para usuários finais a oferta se concentra em oferecimento de
serviços de email, compartilhamento de vídeos dentre outros. Os serviços
oferecidos para usuários domésticos, como o Google Docs, podem ter uma
versão empresarial, como o Google Applications, que implementa alguns
requisitos adicionais de segurança.
Para empresas, as demandas são diferentes: além de email, as
empresas precisam operar aplicações de negócio, sejam estas externas, como
o Salesforce6, ou em nuvens internas como a Blue Cloud da IBM, que permite a
uma empresa criar sua própria nuvem. Os modelos de public clouds e private
clouds não são excludentes. Uma empresa pode ter seu correio eletrônico
residindo em um provedor, algumas aplicações em outro e ter uma parcela do
seu Data Center (Centro de Processamento de Dados) operando sobre o
modelo Cloud Computing. Além disso, pode ter ainda vários servidores
operando no modelo tradicional.
As nuvens para usuários finais também se caracterizam por serem
massivos Data Centers, sendo de alta escalabilidade e se diferenciam da
nuvens voltadas para ambientes empresariais porque manuseiam um numero
de usuários muito maior.
Para Miller (2008), as outras diferenças entre as public clouds e as
private clouds podem ser destacadas da seguinte forma:

• as aplicações em cloud para usuários finais são baseadas em


arquiteturas de baixo acoplamento7, nas quais as aplicações são
escritas para operar em Data Centers massivos, com milhares de
servidores coordenados por Software de escalonamento e
balanceamento de carga. Por sua vez uma cloud usa Softwares
como ERP (Entreprise Resource Planing - Planejamento de
Recursos Empresariais), que não foram escritos (até o presente
momento) para usufruírem de redes massivas de servidores.
Dependem de um conjunto menor de servidores, mas de maior
6
Empresa americana de softwares para web.
7
É o nível de inter-dependência entre os módulos de um programa de computador
(CHEDE, 2004).
18

capacidade individual. Alem disso, as nuvens para usuários finais


usam intensamente linguagens de programação dinâmicas, como
Phyton ou Ruby on Rails. Estas linguagens são altamente
flexíveis e inovadoras em sua política de programação. São mais
fáceis de aprender que linguagens tradicionais e aceleram em
muito o tempo de desenvolvimento. Linguagens como Perl e PHP
não precisam de conhecimentos de orientação a objetos (um
programador “procedual” se sente confortável programando
nelas) e Python tem uma sintaxe simplificada, que permitem
rapidamente a não programadores desenvolver aplicações;

• as clouds para usuários finais têm a resiliência8 construída na


aplicação e não no Hardware. Estas aplicações são escritas de
modo que, se um servidor sair do ar, elas continuam operando
normalmente, sem perdas de dados. O Google é um típico
exemplo. A resiliência dos mecanismos de busca e de suas
aplicações como Gmail ou Google Docs é baseada no
Googleplex9, Softwares que é a plataforma computacional que
mantém a nuvem do Google operando. Já as nuvens
corporativas baseiam-se em servidores de grandes capacidades
e alta resiliência embutida em sua arquitetura.

Os mecanismos de controle de estado nas redes para usuários finais


não tem a granularidade das nuvens corporativas, uma vez que estas mantêm
objetos completos como fotos ou mensagens de email. Podem ser definidas
como content-centric (conteúdo centralizado) e não data-centric (dados
centralizados) como as aplicações das nuvens corporativas, que precisam
controlar o acesso no nível das transações e do registro ou campo de dados.
Uma movimentação de estoque ou reserva de assentos de um avião efetuado
por um usuário do sistema não pode conflitar com o acesso simultâneo feito
por outro usuário. Dois passageiros não podem sentar se no mesmo assento.
Desta forma, Taurion (2009) ressalta que prever o futuro da
computação em nuvem é uma tarefa difícil, mas imagina-se que as soluções de
8
É a capacidade de resistir a situações adversas.
9
É o conjunto de construções de trabalho e hospedagem do Google.
19

Cloud Computing internas terão boa aceitação, uma vez que a maioria das
empresas não se sentirão confortáveis colocando todos os seus sistemas em
nuvens aberta e publicas. Essas deverão atender basicamente ao mercado de
usuários domésticos ou a aplicações especificas das empresas, como email e
ferramentas de colaboração.

2.4 Software-as-a-Service

Como mencionado anteriormente, o conceito Cloud Computing é


formado pela união de algumas tecnologias adjacentes, desta forma o SaaS
(Software–as-a-Service – Software como Serviço) é um modelo que integra
Software como serviço, de forma diferente do modelo tradicional, no qual se
adquiri uma licença de uso e instala o Software nos seus próprios servidores ou
desktops. O modelo SaaS muda as regras de negociação, transformando a
maneira como o Software é comercializado. Com o SaaS, também não são
mais necessários os contratos de manutenção pois atividades como estas
ficam a cargo do provedor de serviços e não mais da empresa contratante. O
usuário passa apenas a usar o Software, sem se preocupar com as atividades
de instalação, otimização, manutenção e upgrade.
Em pouco tempo, o SaaS evoluiu de simples aplicações como WEB
mail e WEB Conferencing para aplicações mais complexas e completas
direcionadas ao núcleo de negócios. Desta forma, fica evidente que o SaaS já
não é mais uma tendência tecnológica e sim uma solução de negócios
embutida na arquitetura corporativa se aproximando rapidamente de sua
consolidação (LASICA, 2009).
Segundo o Instituto Gartner (2009), algumas estimativas apontam
que o SaaS pode chegar a 25% ou 30% do mercado total de Software nos
próximos 4 anos e ao final de 2010, pelo menos 65% das empresas
americanas terão pelo menos uma aplicação rodando através do modelo SaaS
(TAURION, 2009).
Estas estimativas podem ser caracterizadas pelo fato do SaaS ser
uma alternativa mais barata do que os Softwares tradicionais. No modelo
tradicional, empresas não tinham outra opção a não ser hospedar seus
20

Softwares em próprias estruturas, rodando-os em seus servidores, o que


gerava altos gastos com Software e com Hardware. Com a adesão do SaaS, o
modelo de aquisição de Software é totalmente alterado. Empresas podem
pagar não para ter o Software, mas para utilizá-lo; em outras palavras, é
possível ter um Software implementado como serviço hospedado, acessado
pela Internet, o que poupa custos com infra-estrutura e abre caminho para a
portabilidade e mobilidade.
Atualmente, os aplicativos SaaS típicos são oferecidos diretamente
pelo fornecedor ou por intermediários denominados agregadores, que reúnem
ofertas SaaS de vários fornecedores, oferecendo-as como parte de uma
plataforma de aplicativos unificada. Diferentemente do modelo de
licenciamento único, normalmente usado para Software instalado no local, o
acesso ao aplicativo SaaS é quase sempre vendido de acordo com um modelo
de assinatura; os clientes pagam uma taxa contínua para uso do aplicativo. No
aspecto técnico, o provedor SaaS hospeda o aplicativo, os dados e implanta e
atualizações do aplicativo de modo centralizado e transparente, o que
possibilita o acesso aos usuários finais pela Internet.
Mediante a crise de 2009, a tecnologia SaaS tende a acelerar sua
disseminação. Desta maneira, Taurion (2009) aponta os benefícios básicos
esperados e que começam a ser demonstrados na prática do SaaS:
• simplificação do gerenciamento dos aplicativos de instalação,
otimização, manutenção e upgrade;
• redução de investimentos em capital em empresas que estão
enfrentando escassez de credito na tentativa de manter seu caixa
intacto. O modelo SaaS reduz o investimento em capital e torna-
se atraente sob este contexto. O modelo propõe trocar Capex
(Capital Expenses – Despesas de capital) por Opex (Operating
Expenses – Despesas operacionais);
• velocidade de implantação é acelerada, pois uma série de
atividades que não agregam valor; como instalação e
configuração, simplesmente deixam de existir. Além disso, os
produtos SaaS usam interfaces baseadas em navegadores, mais
21

intuitivas e fáceis de usar que as interfaces usadas nos sistemas


tradicionais;
• acesso as novas funcionalidades de forma rápida e sem o
oneroso processo atual, de instalar uma nova versão. Esse é um
ponto importante. Muitas empresas acabam não utilizando suas
versões de Software e não obtendo as vantagens das novas
funcionalidades, devido ao oneroso processo de atualização
imposto pelo modelo tradicional.
Entretanto, Miller (2008) ressalta que a análise econômica e
financeira deve ser efetuada com cuidado, porque, embora este modelo
extremamente atraente, é importante analisar o custo total de propriedade pelo
período em que o Software estará sendo usado pela empresa. Além disso,
deve ser analisada a sustentabilidade financeira da empresa provedora de
serviços.
Desta forma, fica claro que o SaaS um modelo disprutivo10, sua
proposição de valor é a funcionalidade oferecida e não a propriedade do
produto. Uma analogia ao SaaS pode ser feita a um restaurante. Simplesmente
tem se a necessidade de almoçar, mas não necessariamente terá de cozinhar,
operando um fogão.
Sobre este contexto é perceptível que a indústria de Software
sofrerá grandes mudanças e as empresas que acatarem esta nova filosofia
tendem a ter uma nítida vantagem sobre as demais que permanecerem no
modelo tradicional que segue a linha de venda de produtos.

2.5 Database-as-a-Service

Bancos de dados são essenciais a qualquer negócio hoje em dia.


Não é incomum vermos empresas com centenas de diferentes bancos de
dados, muitos deles críticos as operações suportadas por diversos SGBD
(Sistema de Gerenciamento de Banco de Dados). Cada banco de dados
colocado em operações significa um aumento nas tarefas de gestão, que

10
Criação de um novo modelo de mercado, de forma a levar melhores opções ou
novas tendências de consumidores.
22

envolve integração, segurança, disponibilidade e desempenho adequados. E,


consequentemente, maiores são os custos envolvidos.
Em muitas empresas, manter os bancos de dados (dados e
Softwares) consome uma parcela substancial do seu orçamento de TI. Fica
claro que esta proliferação de bancos de dados aumenta bastante a pressão
por meios mais eficazes de gerenciamento.
Diante deste contexto, Taurion (2009) ressalta que o conceito Cloud
Computing seja também uma alternativa para os turbulentos bancos de dados.
Surge então o modelo DaaS (Database-as-a-Service - Banco de Dados como
Serviço), provendo banco de dados por demanda.
Com o DaaS, uma empresa usa uma nuvem para armazenar e
acessar informações sem se preocupar com a infraestrutura que vai suportar
os bancos de dados. Neste modelo o usuário paga pelo volume de dados
armazenado e pela quantidade de dados transmitidos para a nuvem. Os custos
da infraestrutura e suporte ficam a cargo do provedor da nuvem que mantém o
DaaS.

2.5.1 Arquiteturas Básicas do modelo DaaS

O modelo DaaS pode ser implementado de três maneiras distintas:


O modelo de container, o modelo de cópia compartilhada e o modelo de cópia
exclusiva (TAURION, 2009).
No modelo container11, o provedor fornece um container que
representa uma coleção de entidades heterogênicas, da mesma forma que um
banco de dados possui múltiplas tabelas. Os programas acessam estas
entidades heterogêneas. Os programas acessam as entidades nos containers.
Esse modelo se adapta bem as empresas de pequeno porte (CHEDE, 2009).
No modelo de cópia compartilhada uma mesma cópia do Software
de banco de dados residente na nuvem é compartilhada por vários clientes,
embora cada um deles possua seu próprio espaço de dados (tabelas). O
compartilhamento é do Software de banco de dados e da infraestrutura
computacional.

11
é um objeto que contém outros objetos.
23

O modelo de cópia exclusiva cada cliente tem sua própria cópia do


Software de banco de dados residente na nuvem. A diferença em relação ao
modelo tradicional é que os clientes compartilham a mesma infraestrutura
computacional.
Desta forma, Taurion (2009) aponta os principais atrativos do
modelo DaaS:
• redução de custos quando comparado ao modelo tradicional
(menos custos de suporte e manutenção, backup, recuperação e
ajuste), além das empresas pagarem apenas pelos recursos
usados. Não pagam agora por um eventual uso futuro ou pela
capacidade ociosa e não utilizada.;
• elasticidade dos recursos: aumento dos negócios implica em
aumento do volume de dados armazenados e transmitidos. Por
outro lado, uma diminuição do mesmo negócio implica em
redução no uso dos recursos. Um ambiente tradicional não
possui a elasticidade adequada para responder a essa flutuação
da demanda.
No mercado atual já existem alternativas interessantes de DaaS
como o SimpleDB da Amazon, o EnterpriseDB (Cloud Edition) e MySQL (My
Structured Query Language) oferecido como Cloud pela Amazon.
Embora, em tese, o modelo DaaS possa atender a praticamente
qualquer tipo de aplicação de banco de dados, é extremamente importante que
a escolha do provedor de serviços de DaaS seja feita de maneira adequada e
consciente, levando em consideração alguns aspectos, como amplitude de
serviços oferecidos, suporte técnico e ofertas de nuvens adicionais (MILLER,
2008).
Sob este contexto, o modelo DaaS ainda se encontra, como a
maioria dos serviços em nuvem, nos estágios iniciais de sua adoção.
Entretanto, estima-se que nos próximos anos teremos uma evolução
significativa, tanto em seus modelos de negócios quanto sua evolução
tecnológica.
24

2.6 Backup-as-a-service

O modelo BaaS (Backup-as-a-Service - Backup como serviço) é um


modelo interessante de SaaS acoplado a Cloud Computing. É fato que backup,
(cópia de segurança) é um problema para a maioria das empresas,
principalmente para pequenas e de médio porte, que por terem seu corpo
técnico reduzido, não conseguem manter operando eficazmente um sistema
especifico. Os backups são intensivos em custo, (demandam Softwares
específicos e mídias para armazenamento de dados) demandando um
processo pré-elaborado de gerenciamento.
Deste modo, Taurion (2009) ressalta que muitas dessas empresas
não possuem processos adequados de recuperação e proteção de dados para
seus PCs e laptops. Como também não conseguem gerenciar adequadamente
escritórios remotos, visto que na maioria dos casos estes, não possuem
pessoal técnico qualificado.
Sob este aspecto Miller (2008) aponta uma excelente oportunidade
de exploração do potencial das nuvens computacionais, transformando os
backups tradicionais em backups dinâmicos, acoplados a nuvem sob o modelo
SaaS. Os backups sob o modelo SaaS são otimizados para operar pela
Internet, usando banda larga e, portanto, já consideram a latência de acesso
entre o Data Center da empresa e a nuvem computacional. Portanto esta
tecnologia é cada vez mais aceita.

2.7 Plataform-as-a-Service

O modelo PaaS (Plataform-as-a-Service - plataforma como serviço),


se propõe a criar uma plataforma para o desenvolvimento de aplicações
voltada para a Cloud Computing. Taurion (2009) define como uma plataforma
para criar e operar aplicações, incluído ferramentas de desenvolvimento,
administração e gerenciamento, além de serviços runtime12, tudo na
modalidade SaaS, como enfatiza a tecnologia Cloud Computing.

12
Período em que um software permanece em execução.
25

O foco principal deste modelo é poupar custos e não alocar


Hardware desnecessariamente e poder escalar de forma simples sem ter que
lidar com o ambiente físico diretamente. No passado, desenvolvedores criavam
aplicações específicas para um sistema operacional com um processador
especifico: Depois passaram a desenvolver para uma plataforma que abstraía
o processador e o sistema operacional, que é o caso de Java e .NET; agora ao
que tudo indica, as aplicações serão desenvolvidas para um PaaS que pode
ser da Google, Microsoft ou Amazon.
Entretanto este modelo tecnológico apresenta algumas restrições
relevantes as quais devem ser analisadas com cuidado, como exemplo são as
limitações de funcionalidade, uma vez que as PaaS restringem o tipo de
aplicações geradas. Como exemplo, podemos citar a PaaS do Google,
chamada de AppEngine, não é voltada para criação de aplicações
transacionais (MILLER, 2008).
Além disso, as PaaS muitas vezes oferecem apenas uma ou poucas
linguagens de desenvolvimento, como AppEngine do Google , que se restringe,
até o momento, a linguagem Python, ou da Force.com (Plataforma do
Salesforce.com) que permite apenas o uso da linguagem Apex13. Outro ponto
importante que deve ser analisado sob cuidados é a limitação, por parte das
plataformas, a que sua porção runtime seja executada apenas na Cloud do seu
provedor, como o AppEngine que obriga que a aplicação só seja executada na
Cloud do Google, ou o Force.com que exige que a aplicação só possa executar
na nuvem especifica do Salesforce. É um ponto que deve ser observado com
muita cautela, pois o risco de aprisionamento é eminente.
Segundo Miller (2009), estas características implicam que até o
presente momento não é possível trocar as plataformas de desenvolvimento
tradicionais pela PaaS e provavelmente será necessário mais de uma PaaS
para atender aos diversos tipos de aplicações que precisam ser desenvolvidas
em uma empresa.
Diante deste contexto conclui-se que é uma camada de tecnologia
incipiente, com as ofertas ainda apresentando restrições significativas quando
comparadas as plataformas de desenvolvimento disponível no modelo
tradicional.
13
Linguagem de programação proprietária da Salesforce.
26

Sob este aspecto, Miller (2009) destaca que mesmo com algumas
restrições este modelo sob a tecnologia Cloud oferece como benefício o
modelo de pagamento sob serviço diferentemente do modelo tradicional de
pagamento sob licença de uso; o que, como citado anteriormente, é mais
vantajoso devido à economia e a portabilidade.
Desta forma, as PaaS deixam de ser meras especulações, tornando
se uma tendência real.

2.8 Infraestructure-as-a-Service

A primeira definição foi apresentada em março de 2006 pelo


economista Nicholas Carr e chamava-se HaaS (Hardware-as-a-Service –
Hardware como serviço), mas no final de 2006 a comunidade de TI começou a
tratá-la como IaaS (Infraestructure-as-a-Service - infraestrutura como serviço).
Este modelo trata-se de fornecimento de infraestrutura de
informática, geralmente na forma de virtualização. Este conceito, assim como
os demais, faz parte de uma tendência onde recursos, neste caso a
infraestrutura são compartilhados (MILLER, 2008).
Para a SUN (2009) as características relevantes da IaaS podem ser
definidas da seguinte forma:
• recursos entregues como serviço, incluindo servidores,
equipamentos de rede, memória, CPU (Central Processing Unit –
Unidade Central de Processamento), espaço em disco,
facilidades de Data Center;
• escalabilidade dinâmica da infraestrutura com aumento ou
redução baseada nas necessidades da aplicação;
• custo variável do serviço;
• nível enterprise de maneira a facilitar a adição de pools de
recursos;
• hospedagem múltipla coexistindo em uma mesma infraestrutura
de maneira isolada.
Baseado neste argumento é fato que atualmente a maiorias das
empresas contam com recursos de TI para suprir sua necessidade de
27

gerenciamento de seu negócio, para tanto, mantém uma infraestrutura de


processamento, armazenamento, rede, comunicação, aplicações e suporte
para garantir que esta matéria prima básica, a informação, esteja disponível de
forma rápida e segura.
Sob este contexto é perceptível que manter esta estrutura vem se
tornando um grande desafio em função da velocidade com que os
componentes de TI ficam obsoletos e as novas demandas da organização se
tornam cada vez mais freqüentes.
Para Lasica (2009), os meios não precisam ser comprados se
podemos comprar somente os serviços de informações de que a organização
necessita. Ao invés de comprar servidores, Softwares, espaço em Data
Centers e equipamentos de rede, os clientes podem comprar estes recursos
como um serviço totalmente terceirizado. Este serviço é tipicamente tarifado
baseando se na quantidade de recursos consumidos. Pode-se considerar uma
evolução do webhosting14 e dos servidores virtuais privados.
Desta forma, fica claro que não se trata de terceirização ou de
locação de infraestrutura, trata-se de aquisição de serviços de informação, ou
seja, aquisição do produto final gerado por toda a infraestrutura de TI e não dos
meios para gerá-lo.
Entretanto Miller (2008), atenta que no cenário as-a-Service (como
serviço) que se está configurando em escala global, muito tem se falado sobre
sua aplicabilidade em infraestrutura de TI, mas na prática, ainda se confunde
IaaS com locação ou leasing de equipamentos que, eventualmente, trazem
embutidos em si serviços pontuais de instalação e garantia.
Desta forma, é necessário entender que a infraestrutura de TI não é
apenas parque tecnológico. É formada por quatro camadas que, implantadas
em conjunto, garantem a evolução tecnológica, a desempenho, a continuidade
e o gerenciamento de todo o ambiente, podendo ser utilizada para acesso a
todas as tecnologias que compõem a infraestrutura da empresa (TAURION,
2009).

14
Serviço que possibilita a pessoas ou empresas com sistemas online a guardar
informações.
28

Ilustração 3 - Camadas IaaS


Fonte: COMCORP, 2009.

2.9 Service Oriented Architeture

Uma nova tecnologia se desenvolve e é impulsionada quando


determinados problemas não podem mais ser resolvidos pelas tecnologias
existentes. Dessa maneira, a SOA (Service Orinted Architeture - Arquitetura
Orientada a Serviços) surge no cenário de TI com a finalidade de solucionar
alguns problemas deste meio.
Os processos, sistemas e ações preestabelecidas geradas pela
Tecnologia da Informação são, muitas vezes, tão inflexíveis e baseados em um
padrão tão uniforme, que em vez de atenderem diferentes demandas das
corporações, acabam por fazer com que os negócios se adequem a elas.
Sob este aspecto, Armbrust et al. (2009) afirmam que o grande
desafio desse cenário é encontrar uma solução que seja compatível e flexível
ao negócio de forma a se encaixar e a remodelar os processos dos diferentes
departamentos, quando necessário. Substituir os sistemas legados para que se
encaixem a essas novas demandas que surgem com o crescimento do
negócio, pode ser, além de caro, uma ação que resulte em ineficiência.
O conceito de SOA permite encontrar soluções relativamente
econômicas e com um custo-benefício maior quando se refere a sistemas que
precisam conversar entre si e processos que demandam maior flexibilidade e
agilidade para atender as revoluções do mercado
Para Godinho (2009), a SOA propõe a infraestrutura e também as
diretrizes para que Softwares sejam executados como serviços e comuniquem-
se uns com os outros, de forma semelhante ao que ocorre num sistema
29

operacional tradicional, com comunicação entre processos e bibliotecas e


outros componentes compartilhados.
Giusti et al. (2008) destacam que SOA é um meio de
desenvolvimento de sistemas distribuídos onde os componentes são serviços
dedicados, utilizados a partir de provedores de serviços, com uso de protocolos
padronizados.
Com o surgimento desta nova tendência de arquitetura orientada a
serviços, surge então uma mudança de paradigma de como lidar com os
processos e negócios. A necessidade de fortalecer os laços com os
consumidores e tornar a gestão de serviços mais produtiva ganhou um foco
maior com a SOA, que pode ser visto como uma ferramenta de quebra de
antigos padrões e que vislumbra novas possibilidades entre TI e negócios.
Porém Armbrust et al., ressaltam a importância de destacar que por ser ainda
um conceito recente, o caminho para a chegada no estado da arte do SOA
ainda é complexo e trabalhoso em todos os departamentos de uma empresa.
Desta forma a Cloud Computing, incorpora o paradigma SOA que,
segundo Mackenzie (2006), todas as funções de um sistema são vistas como
serviços de Software, independentes e auto contidos.

2.10 Conclusão

Este capítulo analisa as definições básicas de tendências e


tecnologias incipientes deste paradigma computacional, com a finalidade de um
melhor entendimento de cada uma delas.
É fato que o universo das nuvens ainda da seus primeiros passos, e
fica claro que vê-se as nuvens saindo do contexto de mito tecnológico para
realidade empresarial.
Assim empresas ainda dão seus primeiros passos em relação a esta
nova metodologia computacional. Entretanto com a evolução do cenário
empresarial e a forte concorrência atual é notável a crescente busca pelo uso
da computação como utilidade, sob demanda, sendo visível que sistemas
robustos e sólidos de Cloud computing estão sendo propostos e oferecidos.
A Cloud Computing tem como características a portabilidade e
elasticidade, entretanto para sua solidificação é necessário a não dependência
30

de componentes desta forma torna-se necessário analisar outras tecnologias,


outros métodos computacionais, como são descritos no capítulo seguinte.
31

3 CONCEITOS E TECNOLOGIAS ENVOLVIDAS

Este capítulo tem como intuito explorar as principais tecnologias


envolvidas na concepção Cloud Computing.
Conforme mencionado anteriormente, a Cloud Computing é um novo
paradigma computacional que envolve diversas tecnologias e tendências em
sua formação. Desta maneira este capítulo tem o propósito de abordar as
principais tendências e tecnologias envolvidas nesse novo nicho
computacional.
Este capítulo tem como objetivo aprimorar o entendimento de uma
estrutura computacional em nuvem. Desta forma é apresentado os conceitos
básicos de computação em grid, clusterização, virtualização, processamento
paralelo e distribuído direcionados a computação por utilidade.

3.1 Introdução geral a computação distribuída

Hoje é importante que os sistemas computacionais sejam cada vez


mais rápidos e eficientes. A computação de larga escala assiste na atualidade
a um período de renascimento com novos desenvolvimentos científicos,
empresariais e tecnológicos, bem como à expansão da sua relevância para um
crescente número de atividades da sociedade.
Para Tanenbaum (2007), um sistema distribuído pode ser definido
como uma coleção de computadores independentes que se apresenta ao
usuário como um sistema único e consistente.
Segundo Chede (2004), pode ser definida como uma coleção de
computadores autônomos interligados através de uma rede de computadores e
equipados com Software que permita o compartilhamento dos recursos do
sistema: Hardware, Software e dados.
Sob estes argumentos, fica evidente que a computação distribuída
consiste em adicionar o poder computacional de diversos computadores
interligados por uma rede de computadores trabalhando em conjunto para
processar colaborativamente determinadas tarefas de forma coerente e
32

transparente, como se apenas um único e centralizado computador estivesse


executando a tarefa.
Desta maneira, é perceptível que sua habilidade de mandar
Softwares para outros computadores, de uma maneira portável, de forma que
possa executar e interagir com a rede existente. Isso pode não ser possível ou
prático quando usa-se Hardware e recursos diferentes, onde cada caso deve
ser tratado separadamente com cross-compiling ou reescrevendo Software, o
que torna evidente que a computação distribuída é peça chave para o
discernimento da Cloud Computing.

3.2 Processamento Paralelo

O processamento paralelo tem como objetivo permitir que Softwares


possam ser executados em processadores paralelos para alcançar altas taxas
de desempenho e, geralmente, existem tantos processos quanto
processadores tentando resolver um problema de forma mais rápida ou um
problema maior na mesma quantidade de tempo.
Para Chede (2004), a execução de um Software em um ambiente
paralelo se caracteriza pela existência de processadores em numero igual ou
superior ao número de processos que compõem o Software. Estes
processadores podem se situar em máquinas distintas e muitas vezes remotas.
O desenvolvimento de Softwares de processamento paralelo
demanda linguagens especificas, que expressam de maneira diversa este
paralelismo. Em algumas, o número total de processos é fixado em tempo de
compilação. Em outros modelos, os processos podem ser criados
dinamicamente.

3.3 Processamento distribuído

O modelo computacional de processamento distribuído tem sido


utilizado para definir uma grande diversidade de sistemas interligados através
de redes de longa distância, passando por redes locais de alta velocidade e
33

chegando aos sistemas paralelos com memória distribuída. Desta forma,


dispõem de múltiplas unidades de processamento, cada qual responsável por
algumas atividades, as quais cooperam entre si na solução de problemas
computacionais.
As unidades de processamento são logicamente integradas através
de recursos de Software (sistema operacional distribuído, ambiente de
execução distribuído), porém podem estar fisicamente interligadas de
diferentes maneiras (CHEDE, 2004).
Um sistema distribuído no qual as unidades de processamento estão
fisicamente próximas, podem se comunicar em velocidades elevadas e são
administradas por um único sistema operacional (TANENBAUM 2007).
Em um sistema distribuído, as unidades de processamento
aumentam a velocidade de execução de um único programa, processando o
mesmo em conjunto. Elevado desempenho no processamento é um fator
relevante para sistemas distribuídos.

3.4 Grid Computing

A tecnologia Grid Computing (Computação em Grade) é uma


tendência cada vez mais eminente no meio computacional. Oriunda da
computação distribuída, a Grid Computing tem como finalidade utilizar uma
grande capacidade de processamento sem que o usuário se preocupe com a
origem destes recursos ou como eles são mantidos. Através de camadas
virtuais, é possível alcançar alta taxa de processamento ao se dividir as tarefas
em diversas máquinas, utilizando os recursos ociosos desses computadores
independentes. Para compor esse supercomputador virtual, a Grid Computing
pode ser desenvolvida em rede local ou de longa distância.
Para Chede (2004), significa que toda uma rede de computadores
estaria disponível ao usuário para executar seus programas, sem que ele
precise saber exatamente qual ou quais computadores estão fazendo trabalho.
Embora a complexidade para isto acontecer seja imensa, o Grid
como um todo permanece oculta para o usuário. Sob este aspecto, fica claro
na prática que computadores diferentes, com ambientes operacionais diversos,
34

trabalhem colaborativamente como se fossem um único e poderoso


computador virtual.
A idéia por trás dos grids é combinar o poder de processamento de
vários computadores ligados em rede para conseguir executar tarefas que não
poderiam ser realizadas, ou pelo menos não com um desempenho satisfatório,
em um único computador e, ao mesmo tempo, executá-las a um custo mais
baixo do que o de um supercomputador de potência semelhante.
Segundo Intel (2009), os grids podem ser permanentes ou
temporários. Podem ser formados para executar uma tarefa específica e, em
seguida, serem desfeitos. Presumindo que todos os computadores estejam
previamente ligados em rede, a criação e dissolução é apenas questão de
ativar e depois desativar o Software responsável em cada computador.
Sob este contexto é perceptível que a tecnologia Cloud Computing
tem o mesmo princípio da tecnologia grid, ambas focadas na economia e
reaproveitamento de recursos conectados em rede.
Entretanto, como outras tecnologias inovadoras, Grid Computing
esta diante da transição do contexto acadêmico e cientifico para o ambiente
empresarial. Apesar de se tratar de uma tecnologia jovem, existem casos de
sucesso concretos e bem sucedidos de implementação em ambiente
empresarial (CHEDE 2004).

3.5 Clusters

Segundo a definição de Berman (2003), Cluster é um sistema


distribuído que consiste na coleção de computadores interconectados, usados
como um sistema único. O objetivo de um cluster é compartilhar a carga
computacional por vários sistemas, sem que os usuários tenham necessidade
de saber que mais de um sistema esta envolvido no processo.
Em um cluster, se um computador específico sai do ar, os demais
assumem seu trabalho, sem interrupções visíveis ao usuário a não ser uma
eventual degradação na desempenho.
Para Chede (2004), cluster é um sistema montado com mais de um
computador, com a finalidade de distribuir todo processamento de uma
determinada aplicação entre os respectivos computadores, mas de forma que
35

pareça com que eles sejam um só computador. Com isso, é possível realizar
processamentos que até então somente computadores de alto desempenho
seriam capazes de fazer.
Sob este aspecto Chede (2004) aponta os principais benefícios do
cluster:
• o aumento considerável do nível de disponibilidade do ambiente,
pois permite a continuidade de um serviço, mesmo quando um
determinado sistema torna-se inoperante;
• melhor escalabilidade, pois possibilita que novos componentes
sejam adicionados à medida que a carga de trabalho aumente;
• gerenciamento mais fácil, pois permite que o administrador
gerencie todo um bloco de sistemas isolados, e, através de
recursos LB (Load Balancing – Balanceamento de Carga), possa
mover processos de um componente para outro, maximizando o
uso do sistema e melhorando o seu desempenho global.
De maneira geral, os sistemas em clusters trabalham de maneira
semelhante. Cada nó da rede implementa uma camada de controle, que
trabalha acima do sistema operacional. Esta camada é responsável pela
intercomunicação e sincronização entre todos os nós da rede. Para a
aplicação, o cluster aparece como um sistema único.

3.6 Diferença entre Grid e Clusters

A principal diferença entre um cluster e um grid é que um cluster


possui um controlador central, conforme um único ponto de onde é possível
utilizar todo o poder de processamento do cluster. Os demais nós são apenas
escravos que servem a esse nó central, conforme Ilustração 4. Os clusters são
mais usados em atividades de pesquisa, que exigem processamento massivo e
na renderização de gráficos 3D, por exemplo.
36

Ilustração 4 - Cluster
Fonte: UNICAMP, 2009

Os grids, por sua vez, contam com uma arquitetura mais


“democrática”, em que, embora possa existir algum tipo de controle central,
existe um ambiente fundamentalmente cooperativo, onde empresas,
universidades ou mesmo grupos de usuários compartilham os ciclos ociosos de
processamento em seus sistemas em troca de poder utilizar parte do tempo de
processamento do grid.
Derivada da computação distribuída, a computação em grade
permite utilizar uma grande capacidade de processamento sem que o usuário
precise se preocupar com a origem desses recursos ou como eles são
mantidos. Através de camadas virtuais, é possível alcançar alta taxa de
processamento ao se dividir as tarefas em diversas máquinas, utilizando os
recursos ociosos desses computadores independentes. Para compor esse
supercomputador virtual, a Grid Computing pode ser desenvolvida em rede
local ou de longa distância.
Por exemplo, se uma determinada tarefa chega oriunda de uma
determinada nuvem, o servidor de controle distribui a tarefa entre seus nós
dividindo o processamento de forma dinâmica e inteligente conforme ilustra a
Ilustração 5.
37

Ilustração 5 - Grid Computing


Fonte: UNICAMP, 2009

3.7 Virtualização

A Virtualização é uma forma de criar sistemas menos complexos,


que dividem os subconjuntos de sistemas em dispositivos mais gerenciáveis.
Além disso, essa medida pode proporcionar mais segurança aos sistemas, à
rede e aos aplicativos, pois isola subsistemas potencialmente vulneráveis de
sistemas subjacentes e de outras plataformas virtuais (INTEL, 2008).
Berman et al. (2003) definem o conceito de Virtualização como um
recurso de Software que permite a execução de forma virtual de um ou mais
sistemas operacionais em apenas uma máquina física, que por sua vez já
possui um sistema operacional nativo instalado. Ou seja, é instalado um
Software no sistema operacional e a partir desse Software, outros sistemas
operacionais podem ser instalados de forma virtual, sendo que esses
funcionam normalmente como servidores ou desktops.
Atualmente, a indústria de TI tem enfrentado o desafio de produzir
sistemas menores, mais leves e mais rápidos e, ao mesmo tempo encontrar
melhores meios de gerenciamento as complexidades das tecnologias
computacionais. A indústria direciona um grande esforço à segurança e ao
gerenciamento de informações e de dispositivos para a produção de sistemas
mais flexíveis, de modo a torná-los disponíveis aos usuários a qualquer tempo,
em qualquer lugar, como frisa um dos principais conceitos Cloud Computing.
Alguns dos benefícios propostos pela Cloud Computing são
originários da virtualização como:
38

• confiabilidade;
• disponibilidade;
• custo;
• adaptabilidade;
• balanceamento de carga;
• suporte a aplicações legadas.
Desta maneira, a Intel (2009) afirma que a virtualização tem papel
importante no contexto cloud, pois desta forma não existe mais a dependência
em sistemas operacionais.
Sob este aspecto, a virtualização torna-se vital para trabalhar em um
ambiente cloud, onde existe adversidade de plataformas de Software (sistemas
operacionais). Assim, cada aplicação pode executar em uma máquina virtual própria,
possivelmente incluindo suas bibliotecas e seu sistema operacional que, por sua vez,
executam em uma plataforma de Hardware comum. Em outras palavras, isso não deixa
de ser um retorno à situação de executar Software herdado em um sistema diferente
daquele para o qual foi projetado.
Assim, a virtualização proporciona um alto grau de portabilidade e de
flexibilidade permitindo que várias aplicações de sistemas operacionais diferentes
executem em um mesmo Hardware. Ao se executar múltiplas instâncias de máquinas
físicas implica na redução de custos de infraestrutura física como espaço, energia
elétrica, cabeamento, refrigeração, suporte e manutenção a vários sistemas (BERMAN
et al., 2003).
Reduzindo esses gastos desnecessários, as vantagens trazidas pela
virtualização em relação à infra-estrutura são muito claras. Ela possibilita um
melhor aproveitamento da capacidade dos servidores, reduzindo a
necessidade de máquinas e, conseqüentemente, gerando economia em
espaço e nos gastos com eletricidade e refrigeração de data centers. Além
disso, permite centralizar aplicativos, facilitando o gerenciamento do ambiente,
o suporte e a atualização. Como exemplo desse fator, uma troca de sistema,
que normalmente levaria meses para ser feita máquina por, máquina, pode ser
finalizada em apenas alguns dias em um ambiente virtualizado. Desta forma é
39

possível imaginar que a virtualização oferece uma vasta gama de aplicações que são
relevantes para a Cloud Computing.
3.8 Computação Ubíqua e Pervasiva

A computação pervasiva tem como finalidade tornar transparente o


uso do computador aos usuários, diferentemente de como é na atualidade,
onde é necessário grande interação homem-computador. Na computação
pervasiva, os usuários estariam rodeados de dispositivos micro processados, a
ponto de não mais o percebermos (WEISER,1987).
Deste modo fica clara que é necessário que o computador tenha
uma interface amigável e de simples utilização. Caso a interface seja complexa
de se operar, toda a idéia da computação pervasiva é descaracterizada.
A computação ubíqua e pervasiva surgiu devido à grande interação
entre pessoas e máquinas que rege o mundo atualmente, ao fato de que cada
vez mais os homens trabalham compartilhando informações e que cada vez
mais computadores estão presentes em nosso cotidiano.
A computação ubíqua prevê um mundo com vários tipos de
dispositivos conectados entre si, com redes sem fio em todo lugar com baixo
ou custo ou ate mesmo sem custo. A computação ubíqua afirma que o usuário
não precisa carregar muitas coisas consigo, uma vez que a informação pode
ser acessada em qualquer lugar, e a qualquer momento (WEISER,1987).
A computação ubíqua tem como característica a onipresença, ou
seja os dispositivos computacionais podem e devem estar presentes a
qualquer hora e em qualquer lugar.
A onipresença e a adaptação dos dispositivos portáteis ao cotidiano
nos trazem fortes mudanças de hábito ao ponto de pessoas não se
preocuparem em lembrar as várias atividades de que necessitam, onde os
dispositivos é que lembrarão as pessoas do que e quando teriam que executar
suas tarefas (MILLER, 2008).
Desta forma, fica visível a relação entre computação ubíqua e
computação em nuvem, pois portabilidade proposta pela Cloud Computing fica
eminente na utilização de dispositivos móveis como celulares e PDA’s
propostos pela computação ubíqua e pervasiva.
40

3.9 Utility Computing

Dentro do panorama de conceitos e idéias que vem se desenhando


no mercado de TI, a Utility Computing (computação de utilidade) é mais
componente em destaque entre as novidades difundidas recentemente no
mercado de TI.
Taurion (2009) afirma que trata-se de um modelo que poder ser
classificado como computação sob demanda. O usuário tem a possibilidade de
contratar Software, Hardware e serviços conforme sua necessidade de
utilização e em função de fatores como picos, quedas e conforme o período de
uso. Nesse formato, o processo se assemelha ao modo de comercialização de
serviços como o fornecimento de telefone, luz e água.
Desta forma, a Intel (2009) define a idéia da Utility Computing de
maneira em que o usuário, seja uma empresa ou um indivíduo, possa utilizar
Software como quem abre uma torneira ou acende a luz, concentrando sua
atenção em apenas fazer uso dos recursos de computação, enquanto os
fornecedores se ocupam em investimentos para viabilizar uma infraestrutura
que permita a disponibilidade e ao mesmo tempo, a qualidade dos serviços que
chegam ao consumidor da tecnologia em questão.
Deste modo, nota-se que a compra e o consumo temporário de
capacidades extras de processamento e armazenamento de dados, a
computação de utilidade auxilia as empresas em questões como redução de
custos, controle na utilização de tecnologia e flexibilidade para contratar
serviços e ferramentas de acordo com sua necessidade, sem que para isso
precise adquirir aplicativos que não terão utilidade constante após essa
primeira aplicação. Assim empresas podem ter acesso a equipamentos e
recursos para atender necessidades periódicas, onde seus negócios atingem
maior demanda de tecnologia, diferentemente de outras épocas do ano.

3.10 Conclusão

Este capítulo apresenta as particularidades das tecnologias


adjacentes a este novo modelo computacional com a finalidade de mostrar sua
gama de recursos que as mesmas oferecem.
41

Sob este aspecto fica claro que para a solidificação da Cloud


Computing é necessário que seus componentes estejam amadurecidos,
estruturados, ajustados e sincronizados.

4.5 EUCALYPTUS
O EUCALYPTOS É UM SOFTWARE RESPONSÁVEL PELA
IMPLEMENTAÇÃO E GESTÃO DE UMA NUVEM PRIVADA OU DE UMA
NUVEM DE ACESSO PUBLICO. O EUCALYPTUS É AMAPARADO PELA
LICENÇA GPL. ELE FORNECE UMA PLATAFORMA DE COMPUTAÇÃO EM
NUVEM EC2 COMPATÍVEL COM ARMAZENAMENTO EM NUVEM E
COMPATÍVEIS COM S3
PLATAFORMA. O EUCALIPTO TEM SE TORNADO MUITO POPULAR E É
VISTO COMO UM DOS PRINCIPAIS
PLATAFORMAS EM NUVEM OPEN SOURCE. DESDE EUCALYPTUS
DISPONIBILIZA SEUS SERVIÇOS
ATRAVÉS EC2/S3 APIS COMPATÍVEIS, AS FERRAMENTAS DE CLIENTE
POR ESCRITO AWS PODE SER
USADO COM EUCALYPTUS TAMBÉM.
42

4 CONSIDERAÇÕES FINAIS

A transição do modelo tradicional de computação para o modelo


Computacional em nuvem, pode ser comparada com o advento das
transmissões de energia pública. Durante um algum tempo da revolução
industrial, as grandes companhias tinham de produzir sua própria energia
elétrica, mesmo que essa não fosse sua atividade-fim. Graças a um conjunto
de inovações no final do século 19 tudo mudou de forma radical. As linhas de
transmissão permitiram separar a geração e o uso da eletricidade. "O que
aconteceu com a geração de energia há um século agora acontece com o
processamento de informações" (REESE, 2009).
Assim fica visível que o mercado da tecnologia da informação passa
por um momento de maturação de novas tendências e modelos
computacionais com objetivo de aproveitar melhor os recursos computacionais
existentes.
Desta forma, o respectivo trabalho apresenta os principais conceitos
das tecnologias e tendências existentes na tecnologia Cloud Computing, sendo
43

estes imprescindíveis para o entendimento deste novo paradigma


computacional. Neste contexto, sua finalidade é fornecer conhecimentos
básicos necessários para a simulação pratica de um ambiente em nuvem.
Este estudo destaca o surgimento da Cloud Computing como uma
nova alternativa de modelo computacional totalmente distinto do modelo
tradicional, apresentando novos desafios à comunidade de TI.

REFERÊNCIAS BIBLIOGRÁFICAS

ARMBRUST, M., FOX, A., GRIFFITH, R., JOSEPH, A., D., KATZ, R., H.,
KONWINSKI, A., LEE, G., PATTERSON, D., A., RABKIN, A., STOICA, I.,
ZAHARIA, M. Above the Clouds: A Berkeley View of Cloud Computing.
Disponível em:
<http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html>.
Acesso em: 14 jul. 2009.

AMBUJ, N. My Introduction With Cloud Computing Disponível em:


http://ambuj.wordpress.com/2009/06/15/my-introduction-with-cloud-
computing/>. Acesso em: 18 nov. 2009.

BERMAN, F., HEY, A., J., G., FOX, G., C. Grid Computing: Making the global
infrastructure a reality. 2. ed. England: Wiley, 2003.

CHEDE, C., T. Grid Computing: Um novo paradigma computacional. 2. ed.


Rio de Janeiro: Brasport, 2004.

CIMCORP, White Paper IaaS – Infrastructure as a Service Disponível em:


<05/11/2009http://www.cimcorp.com.br/cimcorp/index.php?
option=com_content&view=article&id=166:IaaS&catid=60:extra&Itemid=122 >.
Acesso em: 21 out. 2008.

FOSTER, I. ZHAO, Y., LU, I., R., S. Cloud Computing and Grid Computing
360-Degree Compared. Disponível em:
44

<http://grid.pku.edu.cn/cloud/Ian%20Foster_Cloud.pdf>. Acesso em: 29 set.


2009.

GARTNER, I. Cloud Computing Confusion Leads to Opportunity.


Disponível em:
<http://www.gartner.com/technology/home.jsp 2009 03/11/2009>. Acesso em:
25 out. 2009.

GIUSTI, T. F., ARAÚJO, G. C., PEZZI, D. C., Arquitetura Orientada a


Serviços (SOA) em Ambientes Corporativos. Disponível em:
<http://under-linux.org/blogs/mcadori/attachments/64d1257953490-artigo-
sobre-cloud-computing-cloud-computing.pdf>. Acesso em: 17 nov. 2009.

GODINHO, A. Clientes espalhados, Servidores distribuídos. Disponível em:


<www.linuxmagazine.com.br>. Acesso em: 29 ago. 2009.

GREENBERG, A., FORBES: Computing In The Cloud. Disponível em:


<http://layeredtech.wordpress.com/2008/03/27/forbes-computing-in-the-cloud-
layered-tech> . Acesso em 22 set. 2009

LASICA, J. D. Identity in the Age of Cloud Computing. Disponível em:


<http://www.aspeninstitute.org/sites/default/files/content/docs/pubs/Identity_in_t
he_Age_of_Cloud_Computing.pdf>. Acesso em: 22 jun. 2009.

MACKENZIE, C. Matthew; et al. Reference Model for Service Oriented


Architecture. OASIS Standard, 12 October 2006.

MILLER, M. Cloud Computing. 2. ed. Idiana: Que, 2008.

REESE, G., Cloud Application Architectures: Building Applications and


Infrastructure in the Cloud, 1 edição, ed. O’Reilly Media, 2009.

SPENCE, C.,SEDAYAO, J., DUNLOP, J. Better Together: Rich Client PCs


and Cloud Computing.
Disponível em:
<http://download.intel.com/it/pdf/Better_Together_RichClientsPCs_and_CloudC
omputing.pdf>. Acesso em: 22 set. 2009.
45

TANENBAUM, A. S., STEEN, M. Distributed Systems: Principles and


Paradigms. 2. Ed. Califórnia: Pearson, 2007.

TAURION, C. Cloud Computing: Transformando o mundo da Tecnologia da


Informação. 1. ed. Rio de Janeiro: Brasport, 2009.

UNICAMP, CLUSTER IC3. Disponível em:


<http://www.students.ic.unicamp.br/cluster.shtml>. Acesso em: 17 nov. 2009.

WEISER, M. The Founder of Ubiquitous Computing. Disponível em:


<http://www.media.mit.edu/resenv/classes/MAS961/readings/weiser_reprint.pdf
>. Acesso em: 15 out. 2009.

Potrebbero piacerti anche