Computação em nuvem

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

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

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.

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 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; isso permite que os recursos sejam liberados caso não sejam utilizados, evitando um consumo desnecessário.

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.

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 usuário permite a existência de somente um conjunto limitado de recursos explícitos, o que pode restringir consideravelmente a capacidade dos grid.

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.

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).

  1. (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.

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 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.

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.

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.

REFERÊNCIAS

  • http://www.google.com.br/

  • http://www.gta.ufrj.br/ensino/eel879/trabalhos_v1_2009_2/seabra/introducao.html

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.

Comentários