Computação em nuvem
-
Upload
lipe-noise -
Category
Documents
-
view
15 -
download
0
Transcript of Computação em nuvem
ESCOLA TÉCNICA ESTADUAL “LAURO GOMES”
ENSINO TÉCNICO - QUÍMICA
COMPUTAÇÃO EM NUVEM
SÃO BERNARDO
2010
ESCOLA TÉCNICA ESTADUAL “LAURO GOMES”
ENSINO TÉCNICO - QUÍMICA
COMPUTAÇÃO EM NUVEM
Turma: 2º F
Amanda Martins Jordão 03
Giselaine Alves dos Santos 18
SÃO BERNARDO
2010
2
INTRODUÇÃO..................................................................................................4
1 – DEFINIÇÃO.................................................................................................5
2 – HISTÓRIA...................................................................................................7
3 – GRID x NUVEM...........................................................................................8
4 – COMPONENTES........................................................................................9
4.1 – Virtualização..................................................................................9
4.2 – Serviços Básicos da Internet.........................................................10
4.3 – Modelo Pay-per-use......................................................................11
4.4 – Software Livre................................................................................12
5- ARQUITETURA............................................................................................13
5.1 – Atores............................................................................................13
5.2 – Camadas.......................................................................................14
REFERÊNCIAS.................................................................................................15
CONCLUSÃO....................................................................................................16
3
INTRODUÇÃO
Essa seção tem o objetivo de introduzir o tema de computação nas nuvens,
apresentando a definição do termo, sobre a qual ainda há muitas controvérsias, e a uma
breve história desse novo paradigma da computação. Nas seções seguintes, é realizada
uma comparação entre um grid e uma nuvem, e são mostrados os componentes
principais, os elementos da arquitetura, as vantagens e os desafios enfrentados e as
pesquisas atuais da área.
4
1 – DEFINIÇÃO
O termo computação nas nuvens (do inglês cloud computing) está associado a um
novo paradigma na área de computação. Basicamente, esse novo paradigma tende a
deslocar a localização de toda a infra-estrutura computacional para a rede. Com isso, os
custos de software e principalmente de hardware podem ser consideravelmente
reduzidos.
Embora este assunto esteja sendo amplamente discutido nos dias de hoje, ainda
não há uma definição completa do termo. Na literatura, podemos encontrar uma infinidade
de definições que em algumas vezes podem ser semelhantes, e em outras podem
apresentar conceitos diferentes. Por exemplo, alguns autores defendem que a
escalabilidade e o uso otimizado dos recursos são características chave da computação
nas nuvens, enquanto outros discordam, afirmando que esses elementos não são
características, e sim requerimentos de uma infra-estrutura que suporta esse novo
paradigma da computação.
A definição universal que foi elaborada considera principalmente três conceitos:
virtualização, ou seja, a criação de ambientes virtuais para os usuários, escondendo as
características físicas da plataforma computacional; escalabilidade, que diz respeito à
capacidade de aumento ou redução do tamanho dos ambientes virtuais, caso seja
necessário; e, por último, modelo pay-per-use , em que o usuário só paga por aquele
serviço que consome. Essa definição encontra-se a seguir:
“Computação nas Nuvens, como o próprio nome sugere, engloba as chamadas nuvens, que
são ambientes que possuem recursos (hardware, plataformas de desenvolvimento e/ou
serviços) acessados virtualmente e de fácil utilização. Esses recursos, devido à
virtualização, podem ser reconfigurados dinamicamente de modo a se ajustar a uma
determinada variável, permitindo, assim, um uso otimizado dos recursos. Esses ambientes
são, em geral, explorados através de um modelo pay-per-use.”
De modo que a infra-estrutura computacional se localize na rede, os aplicativos e
os dados dos computadores pessoais e portáteis são movidos para grandes centros de
processamento de dados, mais conhecidos como data centers. Os sistemas de hardware
e software presentes nos data centers provêem aplicações na forma de serviços na
Internet. Cria-se, assim, uma camada conceitual que esconde a infra-estrutura e todos os
recursos, mas que apresenta uma interface padrão que disponibiliza uma infinidade de
5
serviços. Uma vez que o usuário consiga se conectar a Internet, ele possui todos os
recursos a sua disposição, sugerindo um poder e uma capacidade infinita.
Figura 1. A nuvem é uma camada conceitual que engloba todos os serviços disponíveis, abstraindo toda a infra-
estrutura para o usuário.
Em suma, podemos destacar três principais aspectos que são novos na
computação nas nuvens, em relação aos modelos anteriores:
A ilusão da disponibilidade de recursos infinitos, ilimitados: o conceito da
nuvem sugere que o usuário tem em suas mãos toda a Internet e os seus serviços;
A eliminação de um comprometimento com antecedência por parte dos
usuários: uma empresa pode começar usando poucos recursos de hardware, e, à
medida que for crescendo, ou seja, à medida que for necessário, pode ir
aumentando a quantidade de recursos usados, sem que haja um comprometimento
anterior em relação a essa quantidade; a escalabilidade é uma das características
responsáveis por esse aspecto;
A habilidade de pagar pelo uso dos recursos à medida que eles são
utilizados: o modelo pay-per-use pode usar, por exemplo, uma métrica de
processadores por hora, ou de armazenamento por dia, para cobrar pelos serviços;
6
isso permite que os recursos sejam liberados caso não sejam utilizados, evitando
um consumo desnecessário.
7
2 – HISTÓRIA
O conceito de disponibilizar serviços de software e hardware por uma rede global
não é novo. Já podemos encontrar raízes desse conceito na década de 60, quando
Joseph Carl Robnett Licklider, um dos responsáveis pelo desenvolvimento da ARPANET
(Advanced Research Projects Agency Network), já havia introduzido a idéia de uma rede
de computadores intergaláctica. A sua visão era a de que todos deveriam estar
conectados entre si, acessando programas e dados de qualquer site e de qualquer lugar.
Ainda na década de 60, John McCarthy, um famoso e importante pesquisador da
área da informática, propôs a idéia de que a computação deveria ser organizada na forma
de um serviço de utilidade pública, em que uma agência de serviços o disponibilizaria e
cobraria uma taxa para seu uso.
Porém, um dos primeiros marcos para a computação nas nuvens só apareceu em
1999, com o surgimento da Salesforce.com, a qual foi a pioneira em disponibilizar
aplicações empresariais através da Internet. A partir de então, o termo “computação nas
nuvens” passou a ganhar mais espaço, e outras empresas também começaram a investir
nessa área, como a Amazon, a Google, a IBM e a Microsoft. A seção de Pesquisa e
Desenvolvimento apresenta mais informações referentes aos projetos dessas empresas.
8
3 – GRID x NUVEM
Um grid é um sistema que coordena recursos que não estão sujeitos a um controle
centralizado, usando protocolos e interfaces de maneira a garantir um nível elevado de
qualidade de serviço. Dessa forma, a computação nas nuvens e a computação em grid
compartilham alguns objetivos similares, como reduzir os custos de computação e
aumentar a flexibilidade ao usar hardware operado por terceiros. Porém, apesar do
que pode parecer, elas diferem em alguns pontos cruciais, os quais devem ser
claramente esclarecidos. Alguns desses pontos mais importantes são apresentados a
seguir.
Alocação dos recursos: enquanto a computação em grid realiza um
compartilhamento por igual dos recursos entre os usuários, a computação nas
nuvens só aloca um recurso a um determinado usuário caso ele queira usá-lo;
logo, isso sugere a idéia de que o recurso é totalmente dedicado àquele usuário;
além disso, não ocorre propriamente um compartilhamento de recursos na
computação nas nuvens, devido ao isolamento realizado através da virtualização;
Virtualização: ambos realizam a virtualização de dados e aplicativos, escondendo
a heterogeneidade dos recursos existentes; todavia, a computação nas nuvens
também possui a virtualização dos recursos de hardware;
Plataformas e dependências: as nuvens permitem que os usuários usem
softwares independentes de um determinado domínio; ou seja, os softwares rodam
em ambientes customizados, e não padronizados; os grids, ao contrário, só
aceitam aplicações que sejam executáveis em seu sistema (aplicações que sejam
“gridified”);
Escalabilidade: tanto os grids como as nuvens lidam com as questões de
escalabilidade; nos grids, o usuário manualmente habilita a escalabilidade através
do aumento do número de nós utilizados; nas nuvens, por outro lado, a
escalabilidade é automática, requerendo uma reconfiguração que seja dinâmica.
Já existem algumas abordagens que combinam grids e nuvens em um mesmo
sistema. Porém, na computação nas nuvens, o elevado nível de abstração para o
9
usuário permite a existência de somente um conjunto limitado de recursos explícitos, o
que pode restringir consideravelmente a capacidade dos grid.
10
4 – COMPONENTES
Os principais componentes sobre os quais a computação nas nuvens se baseia
não são idéias ou conceitos novos, mas sim tendências que já haviam sido
previamente estabelecidas. Portanto, com base nesses componentes, a computação
nas nuvens não é algo novo. Porém, por outro lado, ela é inovadora no sentido de
reunir todos esses componentes em uma infra-estrutura maior com características
singulares.
Os principais componentes são apresentados a seguir.
4.1. Virtualização
Um dos componentes chave da computação nas nuvens é a virtualização. A
virtualização diz respeito à criação de ambientes virtuais, conhecidos como máquinas
virtuais, a fim de abstrair as características físicas do hardware. As máquinas virtuais, por
exemplo, podem ser usadas para emular diversos sistemas operacionais em uma única
plataforma computacional. Assim, forma-se uma camada de abstração dos recursos
dessa plataforma, alocando-se um hardware virtual para cada sistema.
Na computação nas nuvens, os data centers provêem uma rede de serviços que
são utilizados à medida que são requeridos. Logo, a distribuição desses serviços entre os
usuários pode ser rapidamente alterada, o que exige um suporte para tal dinamismo. A
virtualização é o componente responsável pela característica dinâmica dos data centers.
Ou seja, ela permite que os ambientes virtuais de cada usuário possam ser ampliados ou
reduzidos dinamicamente de maneira a atender aos recursos solicitados. A escalabilidade
está diretamente relacionada com essa característica: os recursos são facilmente
escaláveis graças a esse dinamismo. É importante verificar que, com a virtualização, as
aplicações e os serviços podem ser desenvolvidos e implantados sem que haja a
preocupação em relação à camada física dos servidores. As máquinas virtuais são ditas
serem as interfaces de mínimo denominador comum entre os prestadores de infra-
estrutura e os desenvolvedores.
É válido lembrar que a quantidade de data centers presentes na nuvem é muito
grande. Logo, a virtualização ajuda a criar uma camada de abstração que engloba todos
esses data centers, evitando que eles sejam tratados como sistemas discretos, o que
impediria a alocação dinâmica dos recursos.
11
Dois tipos de virtualização devem ser suportados na computação nas nuvens:
paravirtualização, que permite que um único servidor físico possa ser tratado como
diversos servidores virtuais, e clustering, que permite que múltiplos servidores físicos
possam ser tratados como um único servidor virtual. A Figura 2 apresenta ambos os
tipos de virtualização (os servidores virtuais estão representados através das linhas
pontilhadas).
(a) (b)
Figura 2. Há dois tipos de virtualização que devem ser suportados na computação nas nuvens: (a) paravirtualização e
(b) clustering.
4.2. Serviços Baseados na Internet
A questão de como fornecer as aplicações e os recursos para todos os usuários
conectados às nuvens é resolvida através da utilização de serviços baseados na Internet
(do inglês Internet-based services), ou seja, serviços que ficam disponíveis pela Internet.
Muitas organizações empresariais já utilizavam, e ainda utilizam, aplicações com
interfaces na Internet direcionadas não só aos seus consumidores, como também aos
seus funcionários e sócios, por exemplo. Como esses serviços podem ser acessados de
qualquer lugar e a qualquer hora, dependendo somente de uma conexão de boa
qualidade com a Internet, eles tornaram-se elementos fundamentais para a computação
nas nuvens.
12
Os serviços que as empresas utilizam em seu cotidiano, em geral, usam o
protocolo criptografado SSL (Secure Socket Layer), em conjunto com uma autenticação
forte, a fim de garantir a segurança das comunicações. Entretanto, quando se trata de
computação nas nuvens, o assunto deve ser analisado com um maior cuidado. Alguns
prestadores de serviços, por exemplo, não oferecem a criptografia dos dados. Além disso,
quando se usa criptografia, a grande questão é quem fica responsável pelo
gerenciamento das chaves. É importante lembrar que a quantidade de usuários
conectados uma nuvem é muito grande, e questões de segurança tornam-se essenciais.
A sessão de Vantagens e Desafios apresenta o tema da segurança em computação nas
nuvens com maiores detalhes.
4.3. Modelo Pay-per-use
A computação nas nuvens trabalha sobre o modelo pay-per-use (também
conhecido como pay-as-you-go), que remove o comprometimento, por parte do usuário,
de reservar por uma quantidade exata de recursos. Como o próprio nome já diz, o usuário
paga por aquilo que usa, ou seja, se for necessário, ele tem a possibilidade de aumentar a
quantidade de recursos reservados sem grandes esforços. Com isso, uma aplicação pode
existir por apenas alguns minutos, como também pode existir por um tempo muito mais
longo, provendo serviços aos usuários. A cobrança é baseada no consumo dos recursos,
como, por exemplo, a quantidade de horas utilizadas de CPU e o volume de dados
armazenados.
A virtualização é a principal responsável pela possibilidade de uso desse modelo.
Graças a ela, os recursos são facilmente escaláveis – os ambientes virtuais podem ser
rapidamente ampliados, reduzidos e copiados –, como já foi explicado anteriormente.
Além disso, o custo desses ambientes não é grande devido ao fato de eles poderem
coexistir nos mesmos servidores físicos.
Uma conseqüência muito importante do modelo pay-per-use é a redução dos riscos
de subutilização e de saturação. A subutilização está relacionada ao fato de usar uma
quantidade menor de recursos do que a que foi reservada a priori. Isso acaba gerando
recursos que não são consumidos e que, portanto, ficam ociosos. A saturação ocorre
quando há um excesso de utilização sobre os recursos reservados, o que pode gerar
serviços mais lentos e baixas qualidades de serviço, prejudicando os usuários. Como no
13
modelo pay-per-use o usuário paga somente por aquilo que consome, reservando,
portanto, somente o necessário, essas questões são evitadas.
4.4. Software Livre
O software livre (open-source) desempenha um papel muito importante na
computação nas nuvens [SUN 2009a]. Ele permite que os elementos básicos, como as
imagens de máquinas virtuais, sejam criados a partir de ferramentas que são facilmente
acessíveis. Dessa forma, o desenvolvimento das aplicações nas nuvens fica mais simples
de ser realizado e mais bem difundido. Conseqüentemente, a quantidade de
componentes criados tende a aumentar, facilitando o nível sobre o qual os
desenvolvedores programam nas nuvens.
Um exemplo claro dessa importância é o Hadoop, uma implementação de código
aberto do MapReduce. O MapReduce é um arcabouço desenvolvido pela Google cujo
objetivo é permitir a execução de um programa em paralelo. No ambiente da computação
nas nuvens, havia a necessidade de se implementar um algoritmo similar ao MapReduce,
a fim de haver execuções de um conjunto de dados usando paralelismo. Essa
necessidade automaticamente impulsionou o desenvolvimento do Hadoop, que hoje está
sendo amplamente usado nas nuvens por diversos programadores. Ferramentas como
essa ajudam e incentivam o desenvolvimento de novas ferramentas e aplicação nas
nuvens.
14
5 – ARQUITETURA
Os elementos principais da arquitetura sobre a qual a computação nas nuvens se
baseia encontram-se mais bem explicados a seguir.
5.1. Atores
A computação nas nuvens é composta por três atores principais: os prestadores
de serviços, mais conhecidos como SPs (do inglês Service Providers), os usuários dos
serviços e os prestadores de infraestrutura, mais conhecidos como IPs (do inglês
Infrastructure Providers). Os SPs são aqueles que desenvolvem e deixam os serviços
acessíveis aos usuários através de interfaces baseadas na Internet. Esses serviços, por
sua vez, necessitam de uma infraestrutura sobre a qual estarão instalados; essa
infraestrutura é fornecida na forma de um serviço pelos IPs. A Figura 3 demonstra essa
relação entre os atores.
15
Figura 3. Os prestadores de serviços possuem uma relação de desenvolvimento e gerenciamento com a interface da
infra-estrutura e com os serviços; os usuários, por sua vez, são aqueles que utilizam os serviços instalados na infra-
estrutura.
5.2. Camadas
A arquitetura da computação nas nuvens pode ser dividida em três camadas
abstratas. A camada de infraestrutura é a camada mais baixa. É através dela que os
prestadores de infraestrutura disponibilizam os serviços de rede e armazenamento da
nuvem. Dessa forma, fazem parte dela servidores, sistemas de armazenamento, como os
data centers, e roteadores, por exemplo. A camada de plataforma possui uma abstração
mais elevada e provê serviços para que as aplicações possam ser desenvolvidas,
testadas, implantadas e mantidas no ambiente da nuvem pelos prestadores de serviços.
Finalmente, a camada de aplicação é a de mais alto nível de abstração, e aquela que
oferece diversas aplicações como serviços para os usuários.
Figura 4. Os principais atores que estão relacionados com as camadas de aplicação, de plataforma e de intra-estrutura
são, respectivamente, os usuários, os prestadores de serviços e os prestadores de infra-estrutura.
É importante lembrar que a nuvem esconde toda a infraestrutura para o usuário. O
elemento Interface da Infra-estrutura é o responsável por fazer a ligação entre a infra-
estrutura e os prestadores de serviços. É através dele que tanto a infra-estrutura como a
plataforma é oferecida como serviços, de modo que haja o desenvolvimento das
aplicações que serão disponibilizadas aos usuários.
16
REFERÊNCIAS
http://www.google.com.br/
http://www.gta.ufrj.br/ensino/eel879/trabalhos_v1_2009_2/seabra/introducao.html
17
CONCLUSÃO
A navegação em nuvem tem vantagens plausíveis, quando relacionada a Sistemas
Operacionais, sendo de mais fácil acesso e de baixo custo. Ela não precisa de
computadores potencializados para funcionar. Basta que o mesmo possua acesso à
rede.
Todos os programas que um Sistema Operacional pode oferecer, a computação
em nuvem também oferece, com uma área mais abrangente e sem ocupar mais
espaço em um HD. Além de proporcionar mais facilidades para o usuário que poderá
estar em contato com os seus arquivos de qualquer lugar que contenha Web, também
torna mais seguro o armazenamento dos seus arquivos desde que não há risco de
perdas por inutilidade do micro.
Mesmo sendo bastante recomendada, a navegação em nuvem ainda é uma
tecnologia em fase de desenvolvimento.
18