32
Computação em Nuvem Conceitos e Estudos de Caso Victor de Almeida Xavier (VX) Outubro de 2010

Apostila Cloud Computing v1.1

  • Upload
    xlilian

  • View
    1.523

  • Download
    11

Embed Size (px)

Citation preview

Page 1: Apostila Cloud Computing v1.1

Computação em Nuvem

Conceitos e Estudos de Caso

Victor de Almeida Xavier (VX)

Outubro de 2010

Page 2: Apostila Cloud Computing v1.1

[Contra-Capa da UFLA]

Page 3: Apostila Cloud Computing v1.1

3

[Sumário]

Page 4: Apostila Cloud Computing v1.1

4

Computação em Nuvem ( Cloud Computing ) Parte I – Conceitos

Partimos da premissa de que serviços de dados e sua arquitetura precisam estar em servidores. Nós chamamos isso de computação em nuvem - esses serviços precisam estar em uma "nuvem" em algum lugar. E, se você tiver o tipo correto de browser e o tipo correto de acesso, não importa se você tem um PC, Mac ou um celular ou smartphone ou o que quer que você tenha - novos dispositivos que ainda estão sendo desenvolvidos - você pode ter acesso a "nuvem". Dr. Eric Schmidt, Google CEO, Agosto de 2006

Page 5: Apostila Cloud Computing v1.1

5

Considerações iniciais

Muito tem se falado sobre computação em nuvem nos últimos anos. É um

assunto que está na agenda de 8 em cada 10 executivos de TI, apesar dos

nomes e referências a essa tecnologia serem diferentes. Uma dificuldade

desses e de muitos outros profissionais de TI é definir corretamente e com a

amplitude necessária esta nova tecnologia baseada em princípios de

computação nem tão novos assim; algo que teve seu início em 1960, com a

advento da virtualização nos computadores mainframei.

Naquela época, a virtualização nasceu como uma necessidade de

compartilhar recursos computacionais muito caros entre vários clientes

(terminais). Era como se cada usuário tivesse um “mainframe” só para si, no

qual pudessem instalar seus aplicativos (poucos e restritos, na verdade) e

armazenar dados em sua quase totalidade em padrão texto (EBCDIC).

Ao longo dos anos, a computação de maneira geral tem evoluído a partir

do ponto de retenção/guarda da informação para o ponto de

disponibilização/utilização dessa informação pelos usuários. Com o advento da

Web 2.0, o paradigma computacional de computadores integrando-se a outros

computadores ou a usuários, mudou para a integração entre pessoas usando a

computação cada vez mais como meio e não como fim em si mesma. Para

usuários de ferramentas baseadas em redes sociais, como orkut, myspace,

facebook, twitter, entre outras, ou que utilizem outros serviços web 2.0 como

youtube, flickr, etc, não importa nem onde nem como seus dados são

armazenados. A maior parte dos usuários não atenta para questões de

segurança ou confidencialidade na utilização da internet de forma geral, mas o

quanto são questionados sobre isso querem apenas se sentir seguros da

correta utilização das informações postadas nos sites de relacionamento que

participam. Onde ficam essas informações e como são armazenadas não é

mais um problema para esse usuário típico.

Na outra ponta, as empresas, por questões legais, econômicas ou

mercadológicas (marca), ainda precisam se preocupar com o “onde” e o “como”

na equação de armazenamento e transmissão de dados de seus usuários.

Aqui, partimos do princípio de que todas prestam algum tipo de serviço a seus

Page 6: Apostila Cloud Computing v1.1

6

usuários, sejam eles internos (colaboradores) ou externos (clientes e parceiros

de negócio).

Conforme apresentado na Figura 1, a nuvem comporta uma ampla

variedade de dispositivos conectados e um fluxo de informações bastante

diversificado. Em linhas gerais, os processos compreendidos nesse fluxo

ocorrem paralelamente e de forma nebulosa.

Componentes da infraestrutura como serviços

Os centros de processamentos de dados das empresas foram forçados a

evoluir ao longo dos anos, para atender a um número cada vez maior de

usuários e um volume de dados desproporcionalmente maior, principalmente

em virtude das novas mídias virtuais. Um documento deixou de ser apenas

texto e passou a ser texto, imagem, som, e ultimamente interação com o

usuário. Dessa forma, os processos de armazenamento e transmissão de

dados tiveram que evoluir junto com a infraestrutura de servidores e com o

conhecimento técnico dos analistas de produção responsáveis por manter os

serviços dos centros de processamento de dados funcionando. Hoje, ao utilizar

a tecnologia de computação em nuvem, os centros de processamento de

dados mudaram para centro de serviços da nuvem, nos quais todos os

componentes de infraestrutura passaram a ser encarados como serviços.

Como exemplo disso, temos IaaS, PaaS, DaaS, CaaS e SaaS.

Figura 1: Diagrama de acesso a nuvem

Page 7: Apostila Cloud Computing v1.1

7

• IaaS - Infrastructure as a Service ou Infraestrutura como Serviço (em

português): quando se utiliza uma porcentagem de um servidor, geralmente

com configuração que se adeque à sua necessidade.

• PaaS - Plataform as a Service ou Plataforma como Serviço (em

português): utilizando-se apenas uma plataforma como um banco de

dados, um webservice, etc. (p.ex.: Windows Azure).

• DaaS - Development as a Service ou Desenvolvimento como Serviço

(em português): as ferramentas de desenvolvimento tomam forma em

computação em nuvem como ferramentas compartilhadas, ferramentas de

desenvolvimento baseadas na web e serviços baseados em mashup (forma

pela qual um usuário pode montar seus aplicativos em um mesmo front-

end, no caso em uma página da web) .

• SaaS - Software as a Service ou Software como Serviço (em

português): uso de um software em regime de utilização web (p.ex.: Google

Docs , Microsoft Sharepoint Online).

• CaaS - Communication as a Service ou Comunicação como Serviço

(em português): uso de uma solução de Comunicação Unificada hospedada

em Data Center do provedor ou fabricante (p.ex.: Siemens Enterprise ,

Locaweb).

Page 8: Apostila Cloud Computing v1.1

8

Aspectos Econômicos

Além da evolução natural dos centros de processamento de dados

puxada pela cada vez mais crescente utilização de conteúdos complexos (web

2.0), existem aspectos econômicos que não podem ser esquecidos na hora de

otimizar hardware, software e serviços no atendimento aos usuários.

Toda empresa quer reduzir custos, isto é fato. O problema que as

empresas, de maneira geral, enfrentam é como reduzir o custo total de

propriedade (TCOii) de seu parque de TI. Tradicionalmente o TCO, neste caso,

está intimamente ligado a quantidade de servidores adquiridos, ao número de

licenças de software compradas e ao número de funcionários responsáveis por

manter o parque de TI funcionando. Alguns problemas recorrentes são

encontrados na maioria das empresas:

• A quantidade de servidores ou não consegue atender bem a picos de

utilização, gerando perda de receita, ou está superestimada, o que é

mais comum.

• O controle sobre as licenças de software é falho: muitas expiram sem os

responsáveis saberem, o que pode gerar problemas legais para a

empresa; mas o mais comum ainda é a subutilização do software, seja

por excessivo número de licenças seja pela não implantação de um

projeto que demandou compra de hardware, software e serviços para

Figura 2: Expansão da nuvem

Page 9: Apostila Cloud Computing v1.1

9

começar mas que não chegou ao fim ou foi totalmente abandonado.

• A heterogeneidade de fornecedores sobrecarrega o time de suporte: fora

tecnologias de padrão aberto, a maior parte do hardware, do midleware

(software que serve como plataforma de utilização de outro software) e,

consequentemente, dos serviços não segue padrões de mercado, além

de ser totalmente orientada a projetos/sistemas/caixas.

Com o intuito de sanar tais problemas, busca-se a adequação da infraestrutura

de forma compatível com a demanda estabelecida. Nesse contexto, a Figura 3

apresenta um modelo genérico de evolução de Centros de Processamentos de

Dados, nos quais os aplicativos antes processados em servidores estanques,

agora virtualizam os recursos de diferentes aplicativos de forma combinada e

reportam as informações à um único servidor que atua como banco de dados.

Ações como a utilização de virtualização de servidores e o

provisionamento automático de recursos, ambas presentes na tecnologia de

computação em nuvem, ajudam a sanar quase que totalmente esses e outros

problemas de infraestrutura de TI, reduzindo assim o TCO do parque de TI

Figura 3: Evolução dos Centros de Processamento de Dados

Page 10: Apostila Cloud Computing v1.1

10

como um todo.

Aspectos Ambientais

Além dos aspectos econômicos descritos acima, existe um que também

tem um viés ambiental: a economia de energia elétrica, dentro de um conceito

de otimização dos recursos de TI. A esse processo de otimização que prima

pela economia de energia tanto pela redução do consumo pelos servidores

quanto pela refrigeração, principal vilão dos datacenters, deu-se o nome de TI

Verde (Green ITiii).

De forma geral, essa nova tendência surge como uma resposta crescente

à necessidade de economia de recursos naturais e ainda ao controle climático

mundial. Nesse conceito estão embutidas outras propostas como:

responsabilidade social, adequação ambiental e ainda sutentabilidade. Com

base nesse entendimento, a utilização, por exemplo, de videoconferências em

lugar de reuniões presenciais não representa apenas uma aplicação

tecnológica, mas também uma prática ambiental que resulta na eliminação de

deslocamentos, redução de consumo de combustíveis e emissões de gases

poluentes e principalmente carbono na atmosfera – representa, portanto

economia financeira e otimização dos recursos.

Outra aplicação, mais relacionado com a proposta deste curso, é o uso de

infraestrutura (servidores, monitores, etc) com maior eficiência energética. No

Brasil, a Itautec é uma das empresas que tem se empenhado de forma

significativa no desenvolvimento da TI Verde. Segundo João Carlos Redondo -

gerente de Sustentabilidade da Itautec , há a proposta de adequação à padrões

europeus de sustentabilidade, bem como adoção de equipamentos com

tecnologia que facilite o descarte dos resíduos eletroeletrônicos resultantes do

uso, ao final do ciclo de vida.

Page 11: Apostila Cloud Computing v1.1

11

Existem várias outras iniciativas que tangem um centro de processamento

de dados que queira receber o sele de Centro de TI Verde , como economia de

água e processo de reciclagem de resíduos sólidos (com atenção especial aos

resíduos eletroeletrônicos). Além disso, alguns centros ainda dispõem de

produção própria da energia que consomem, reduzindo drasticamente o risco

da operação (Figuras 4 e 5).

O supercomputador, MareNostrum (Figura 5), instalado no Centro

Nacional de Supercomputação em Barcelado e fabricado pela IBM, tem uma

capacidade máxima de 94.21 TeraFlops, ocupa um dos primeiros lugares no

ranking de supercomputadores mais potentes do mundo e é o mais poderoso

da europa. Uma das vantagens do MareNostrum é o fato de poder trabalhar

simultaneamente para várias pesquisas.

Figura 4: Esquema de gasto de energia em um datacenter

Figura 5: Iniciativas para economia de energia em um datacenter

Page 12: Apostila Cloud Computing v1.1

12

Apresentando algumas especificações técnicas, esse supercomputador,

tem capacidade de processamento de 42, 44 teraflops; 9,6 terabytes de

memória principal; 128 terabytes de disco externo; 10.240 processadores

PowerPC 970 a 2,33 Ghz. Sistema operacional Linux, rede de interligação

Myrinet com uma largura de banda máxima de 250 MB (duplex completo) e

uma latência de 6 micro-segundo, consumindo cerca de 600 KW de energia.

Hoje o MareNostrum atua em pesquisas de ponta da biotecnologia como

o genoma humano, pesquisas climáticas e pesquisa sobre novas drogas com

significativa eficiência térmica e elétrica.

Assim, o modelo de computação em nuvem como uma abstração de

acesso a recursos computacionais veio de encontro a ambas as necessidades,

tanto dos usuários finais quanto das empresas, no tocante a como

disponibilizar informações de forma segura, eficiente, confiável, flexível e

expansível.

Figura 6: Evolução do Centro de Processamento de Dados Corporativo

Page 13: Apostila Cloud Computing v1.1

13

Em que consiste a computação em nuvem ?

Não devemos confundir o conceito de computação em nuvem com outros

conceitos que podem ser parte ou alternativa a essa tecnologia, como

computação em grade (grid computing), computação autonômica,

virtualização, computação paralela, entre outras.

Por ser muito uma tecnologia muita ampla, a computação em nuvem pode

ter várias definições, de acordo com o componente ou ponto do ciclo de vida do

serviço da nuvem. Porém, acredito que uma definição que melhor descreva

seus aspectos gerais seria:

A Computação em Nuvem é um paradigma de computação

emergente onde dados e serviços residem em centros de dados

(data centers ) - ao mesmo tempo escaláveis e geograficamente

abrangentes - e que podem ser acessados de forma tr ansparente por

qualquer dispositivo conectado a uma rede.

A partir dessa definição podemos destacar alguns conceitos e

características de computação em nuvem:

Transparência A localização física e detalhes da infraestrutura necessária para sua

implementação são transparentes para o usuário final.

O usuário final não precisa saber (e muitas vezes lhe é vedado saber) sobre os

detalhes de implementação daquele serviço que ele está consumindo da

nuvem. Aspectos de implementação do serviço que não são de conhecimento

do usuário incluem: como onde os dados serão armazenados, tanto

geograficamente quanto em que tipos de mídias eletrônicas, como será feito o

controle de acesso, quais e que tipos de servidores serão utilizados na cadeia

de disponibilização do serviço, quais e que tipos de software serão utilizados

na implementação e monitoramento do serviço, entre outras.

Page 14: Apostila Cloud Computing v1.1

14

O que importa na verdade é qual o nível de serviço (SLAiv) que ele espera

obter ao utilizar um serviço da nuvem, ou seja, com que nível de confiança,

tempo de espera, e segurança ele acessará o serviço. Com isso, ele espera

obter um ponto de conexão a nuvem cujas regras de acesso sejam definidas

pelo publicador do serviço e claramente disponibilizadas para os usuários

através de contratos de serviço.

Escalabilidade Trata-se da habilidade para processar grandes cargas de dados e

serviços complexos de forma fracionada através de uma infraestrutura

expansível incrementalmente.

A escalabilidade de uma nuvem é essencial para atender um dos

principais problemas de um parque de TI convencional: pico de utilização. Os

picos de utilização podem estressar a infraestrutura a ponto de gerar perdas de

receita por serviço negado (DoS) de requisições de usuários. Não se trata

apenas de perdas financeiras como deixar de vender um produto ou serviço,

mas também de perdas na imagem da empresa, que pode ser medida através

do valor da(s) sua(s) marca(s).

Para implementar funções de escalabilidade de maneira eficiente, uma

nuvem delega a um serviço de provisionamento automático de hardware e

software a tarefa de criar e/ou expandir a infraestrutura de TI de modo a

atender o pico de demanda e, não menos importante, liberar os recursos tão

logo o pico deixe de existir. Como estratégia de provisionamento automático

desta tecnologia destaca-se a clonagem de recursos e virtualização do sistema

operacional através de supervisores de processos (hypervisorsv)

compartilhados, como na vmware, virtualbox, xen, entre outros.

Eficiência A eficiência da computação em nuvem deve-se em grande parte a

arquitetura orientada a serviços (SOA) aplicada ao provisionamento dinâmico e

compartilhamento de recursos computacionais.

A automatização dos processos de monitoramento e implementação dos

Page 15: Apostila Cloud Computing v1.1

15

serviços de uma nuvem são vitais para seu sucesso, tanto em termos de

utilização quanto em termos econômicos. Como exemplo, a nuvem implantada

pela Amazon como serviço de hospedagem de software tem mais de 40 mil

servidores (máquinas virtuais) conectados e apenas um grupo de 6 técnicos de

TI para monitorá-las.

Além disso, verificamos a implementação do ciclo de vida de um serviço

na nuvem através de práticas SOA, o que faz toda a diferença na otimização

da disponibilidade do serviço para o usuário final. O ciclo de vida de um

processo baseado em SOA, com modelagem, montagem, publicação e

monitoramento, se realizado de forma automática, gera ganhos de eficiência

mensuráveis, o que reforça os aspectos econômicos envolvidos em uma

solução de computação em nuvem.

Flexibilidade A tecnologia de computação em nuvem pode servir a uma variada gama

de tipos de dados e serviços, tanto corporativos quanto para usuários finais.

Atrelado a isso, serve cada vez mais a uma gama cada vez maior de

dispositivos, de computadores pessoais a celulares e smartphones, passando

por dispositivos menos ortodoxos como geladeiras, carros, centrais

inteligentes, etc.

Com o acesso ao serviço na nuvem padronizado, torna-se quase trivial a

conexão de dispositivos heterogêneos, com picos de utilização diferentes,

características e tratamento de dados diferentes, enfim, a aspectos diversos

porém como uma interface (pelo menos) padronizada e comum a todos os

dispositivos conectados na nuvem.

Segurança As informações precisam ser disponibilizadas para quem de direito,

independentemente do meio de transmissão ou consumo dessas informações.

Isso verifica-se mais nas redes corporativas (nuvens internas a organização) ou

nos serviços disponibilizados contendo um contrato de utilização que reforcem

esses aspectos. Como exemplos podemos citar contratos de utilização de sites

Page 16: Apostila Cloud Computing v1.1

16

de serviços bancários.

Para tanto, alguns aspectos de infraestrutura devem ser levados em

consideração ao se implementar um serviço na nuvem, já que este poderá ser

acessado de qualquer lugar a qualquer hora por qualquer usuário. Um técnica

muito utilizada é a de impersonalização, na qual as credenciais de um usuário,

após checadas contra o serviço de segurança da informação da nuvem, cria

um novo processo para atender a requisição do usuário, contendo os direitos

de acesso que o usuário possui. Porém o dono (owner) desse processo é o

servidor que recebeu a requisição do usuário em primeira instância, ficando

responsável pela utilização (chamadas) dos outros serviços da nuvem para o

atendimento a requisição original do usuário. Isso evita que um usuário tenha

acesso direto a serviços internos da nuvem, o que poderia expor a segurança

da nuvem como um todo.

A perspectiva das equipes de TI

Em computação em nuvem as unidades de TI, os analistas de suporte

responsáveis por gerir o parque de TI das empresas passam a trabalhar em

outro nível – o da monitoração em exceção . Esse processo de trabalho pode

ser verificado na maior parte dos centros de processamento de dados que já

adotaram a tecnologia de computação nuvem e consiste em administrar os

desvios do processo principal – totalmente automatizado. Casos como quebra

de máquinas e problemas com disponibilização de serviços são e devem ser

tratados como exceção por essas equipes.

Page 17: Apostila Cloud Computing v1.1

17

Diferenças para outros conceitos utilizados em comp utação em

nuvem

Ao entrevistar profissionais de TI dos mais variados graus de experiência,

nota-se que existe uma confusão ao se tratar o tema de computação em

nuvem. Outros conceitos relacionados ou que fazem parte dessa tecnologia

são tomados muitas vezes como o todo. Aqui vão alguns exemplos:

Computação em Grade

Computação em grade nasceu como uma alternativa ao processamento

de grandes quantidades de dados em servidores de grande porte de

processamento e, por isso, muito caros e de acesso controlado (vide restrições

ao mainframe CRAIG para cálculos para a bomba atômica). A ideia é bastante

simples: dividir o processamento de um dado complexo em pedaços e delegar

a uma grade de computadores de menor porte o processamento de cada um

dos pedaços. Um servidor de maior porte ficaria responsável apenas pela

totalização (ou junção) dos pedaços processados.

O projeto mais famoso de que se tem notícia sobre processamento em

grade é o SETI @home (busca por sinais de vida extraterrestre:

http://setiathome.berkeley.edu/). Neste projeto, cada computador pessoal

conectado a grade recebe, de acordo com sua capacidade de processamento,

uma ou mais “tarefas” contendo dados de satélite para serem analisados. Ao

término do processamento de cada tarefa, um resultado é enviado para o

servidor central para análise e disponibilização dos resultados para os

pesquisadores do projeto SETI.

Porém, outros projetos de computação em grade como o World

Computing Grid (http://www.worldcommunitygrid.org/) têm objetivos mais

imediatos, como a análise de proteínas para a produção de novos

medicamentos.

Podemos dizer que trata-se de um modelo cliente-servidor inverso, no

qual o cliente processa os dados e os repassa a um servidor consumidor. Nas

Figuras 8 e 9, exemplos de clientes de computação em grade são

apresentados.

Page 18: Apostila Cloud Computing v1.1

18

Software como Serviço (SaaS)

Software como Serviço (Software as a Service, SaaS) é um modelo de

negócios para a disponibilização de software, principalmente middleware vi, na

base de cobrança sobre a utilização e não sobre o direito de uso, como no

modelo de venda de software tradicional. Como ele, existem outros

relacionados a cada componente da infraestrutura necessária a

disponibilização de um serviço na nuvem, como plataforma, servidores

(hardware), canal de comunicação, etc. Dentro da tecnologia de computação

em nuvem, o conceito por trás de SaaS é fornecer o modelo ideal de

contratação para os serviços disponibilizados pela nuvem, já que todo o

software utilizado na solução disponibilizada pelo serviço não é de

conhecimento do usuário final. Este paga por um serviço prestado pela nuvem.

A Figura 10 apresenta um exemplo de um software disponibilizado utilizando-se

o modelo aqui apresentado.

Figura 7: Cliente de computação em grade rodando localmente

Figura 8: Projetos e atividades sendo executados por um cliente de computação em grade

Page 19: Apostila Cloud Computing v1.1

19

Computação paralela

Computação paralela é uma técnica de computação que permite a um

processo rodar de forma integrada em várias máquinas ao mesmo tempo, com

o objetivo de reduzir o tempo total de processamento e/ou diminuir a incidência

de falhas através de redundância. Contudo, os programas precisam ser

escritos para trabalharem dessa forma, utilizando o máximo de recursos que

essa técnica de processamento pode prover.

Verificamos a aplicação de computação paralela em vários níveis, desde

software básico de sistemas operacionais desenvolvidos com propósito

específico (servidores para computação científica, servidores de alta

capacidade de processamento, servidores de alta capacidade de

tratamento/transmissão de dados, entre outros), até sistemas de banco de

dados, aplicativos de pesquisa (engenho de pesquisa do Google, por exemplo)

e aplicativos de controle com alto nível de redundância e tempo de

disponibilidade (pelo menos maior que 99,9999%).

Figura 9: Exemplo de SaaS: LotusGreenHouse

Page 20: Apostila Cloud Computing v1.1

20

Ciclo de Vida de um Serviço da Nuvem

Um serviço disponibilizado na nuvem tem seu ciclo de vida definida por

aspectos SOA: modelagem, montagem, publicação e monitoramento. Porém,

no caso de computação em nuvem cada um desses passos sofre algum nível

de automatização, de forma a manter as características descritas acima.

Modelagem

A modelagem de um serviço começa na área de negócios, tendo como

base uma necessidade do usuário a ser atendida pelo novo serviço. Esse novo

serviço pode ser baseado, como ocorre na maioria das vezes, em serviços

básicos (internos) já disponibilizados pela área de TI para serem utilizados em

composições. Como exemplos, temos serviços de provisionamento automático,

serviços de transmissão e armazenamento de dados, entre outros.

Figura 10: Centro de Processamento de Dados Modular da Google

Page 21: Apostila Cloud Computing v1.1

21

Um outro ponto importante é a definição do contrato de nível de serviço

(SLA) para o novo serviço e como suportá-lo no nível do parque de TI. Para

tanto, criamos templates de utilização , que nada mais são do que a

formalização dos cenários de utiização daquele serviço, que plataformas ele

atenderá, que tipos de dispositivos conectados ele suportará, etc. Esses

templates facilitam o trabalho de escolha do usuário no momento da

contratação do serviço a ser utilizado.

Montagem

A montagem de um novo serviço na nuvem passa necessariamente pela

sua configuração dos recursos computacionais utilizados pelo serviço. Como

exemplo, para ser disponibilizado como serviço, um sistema precisa ser

instalado em uma infraestrutura, que por sua vez precisa ser montada em cima

de hardware e software básico (sistema operacional e midleware). Os centros

de processamento de dados utilizam tradicionalmente um batalhão de analista

de suporte para controlar a entrada de um sistema em produção e monitorar

seu comportamento nesse ambiente. Porém, antes disso, eles precisam ter

onde instalar o sistema, precisam de servidores (tanto para processamento

quanto para armazenamento de dados) e de sistemas operacionais e

midleware (servidores de aplicação) que permitam a utilização dos recursos

disponíveis nos servidores. Ainda sim, fora o problema da aquisição de tudo

isso, existe o problema da sua utilização em larga escala estar sujeita a picos

de utilização e problemas que geram indisponibilidade em um ou mais

componentes da solução.

Dessa forma, a tecnologia de computação em nuvem utiliza ferramentas

para provisionamento automático de hardware e software. O analista, ao invés

de trabalhar máquina a máquina, montando e instalando tudo, acessa um portal

de serviços no qual ele provisiona a quantidade necessária de processadores,

memória e disco, sistema operacional, midleware embarcado (opcional), além

de aspectos de redundância e resiliência. O sistema de provisionamento

seleciona dentro de um conjunto (pool) de máquinas previamente cadastradas

e ligadas, as que irão atender a solicitação postada pelo analista de suporte.

Page 22: Apostila Cloud Computing v1.1

22

Após executar as tarefas de instalação e configuração das máquinas, o sistema

envia um e-mail para o analista de suporte com todas as características

solicitadas por ele e um ip, usuário e senha de acesso ao novo ambiente

provisionado para ele.

Publicação

A publicação de um serviço ocorre quanto o mesmo passa a integrar um

diretório de serviços disponibilizado pelo site/empresa. O diretório de serviços

é um banco de dados no qual estão cadastrados os serviços e seus contratos

de utilização. O acesso a esse diretório pode se dar de várias formas, mas a

mais comum é termos um portal de auto-serviço para a pesquisa e consumo

(utilização) de um ou mais serviços.

Após ser publicado, um serviço da nuvem pode ser consumido de várias

formas. Uma das melhores, seja pelo aspecto prático de acesso seja pela

variedade de dispositivos atendido, é através de uma chamada RESTvii em um

browser ou similar. Uma chamada REST permite ao publicador disponibilizar

uma funcionalidade em um sistema ou um recurso (dados, arquivos, etc). Isso

facilita sobremaneira a execução de tarefas em outras etapas do ciclo de vida,

como o Monitoramento do serviço em tempo real.

Monitoramento

O monitoramento de um serviço é realizado por ferramentas

automatizadas que garantem o pleno funcionamento de todos os componentes

(de hardware, de software e de serviços) envolvidos na solução que

implementa e disponibiliza o serviço em questão. Conforme mencionado

anteriormente, o monitoramento ocorre em esquema de exceção, ou seja,

apenas os problemas recebem intervenção manual quando ocorrem. O

provisionamento das máquinas necessárias ao atendimento ao serviço, bem

como outros aspectos relevantes como tempo de latência de uma requisição do

usuário e taxa de transmissão de dados, são totalmente automatizados e se

Page 23: Apostila Cloud Computing v1.1

23

adequam a picos e vales de utilização do serviço em específico e da

infraestrutura como um todo.

Resumo dos conceitos apresentados

Cloud Computing (ou Computação em Nuvem) é um novo paradigma de

informática em que dados e serviços residem em enormes centros de

processamentos de dados que podem ser acessados livremente por

dispositivos na Internet. Na visão do usuário dos serviços o processamento

acontece em algum lugar da Internet. Para o provedor de serviços, a

infraestrutura é construída de tal forma que centenas de máquinas possam ser

adicionadas rapidamente para atender a um aumento de demanda. Essa

abordagem permite que aplicações consigam atender a milhões de usuários e

processar enormes volumes de dados. Exemplos de aplicações desse tipo são:

serviços como indexação da Google, e-Bay, GMail, You-tube, Flickr, Face-book

entre outras aplicações Web 2.0.

Vários fatores contribuem para o interesse nesse novo paradigma. De um

lado o número potencial de usuários acessando qualquer aplicação cresce

vertiginosamente devido ao acesso ampliado a dispositivos conectados a

Internet (celulares, computadores baratos, centros de inclusão digital, etc).

Como consequência, aplicações e serviços devem ser construídos de forma

que possam crescer rapidamente. Não é incomum que o número de usuários

comece com poucos milhares de usuários e atinjam em pouco tempo milhões

de pessoas.

Outro aspecto do maior uso de TI é um aumento nos volumes de dados

gerados. Esses dados precisam ser armazenados, processados, e tratados.

Enquanto 10 anos atrás alguns giga-bytes era considerado muita informação,

hoje usuários domésticos já usam milhares de giga-bytes de dados. Em

empresas e instituições governamentais os volumes de dados são milhares a

milhões de vezes maiores do que isso. Essas magnitudes requerem super-

computadores ou estratégias de usar milhares de máquinas menores. A

tendência é que o volume continue crescendo, ao passo que os processadores

individuais parecem estar atingindo seus limites. O resultado é que o

Page 24: Apostila Cloud Computing v1.1

24

processamento deverá ser feito usando novas técnicas.

A necessidade de atender e compreender esses requisitos cria um

enorme interesse por parte de empresas, instituições de pesquisa e governos.

O uso efetivo desse paradigma passa necessariamente pelo domínio das

tecnologias subjacentes e do desenvolvimento de praticas e processo para

usar de forma eficiente o poder computacional hoje disponível. Esse processo

de inovação é fundamental para inserção futuro da tecnologia da informação. A

Figura 12 apresenta os pontos de acesso que podem ser utilizados nesse

paradigma de computação juntamente com o centro de dados onde o software

utilizado na computação em nuvem é armazenado.

Figura 11: Acesso à nuvem a partir de pontos distintos.

Fonte: http://www.mylinestream.com/cloud-computing.html

Centro de dados - Hospeda o software - Mantém o hardware do servidor - Backup diário

Trabalhadores em casa - Acessar aplicações por meio de PCs padrões com banda larga

Trabalhadores remotos - Acessar aplicações por meio de PCs com banda larga em hotéis, cafés, outros locais

Trabalhadores locais - Acessar aplicações por meio de PCs

Page 25: Apostila Cloud Computing v1.1

25

Computação em Nuvem ( Cloud Computing ) Parte II – Estudos de Caso

Hoje você pode e deve escolher a melhor alternativa , seja software pago ou gratuito. Mas, a maio vantagem de computação em nuvem é que eu não sou mais dependente da máquina e posso desfrutar as ações que demandam compartilhamento, como criação de textos. Cezar Taurion, IBM, 2010.

Page 26: Apostila Cloud Computing v1.1

26

Considerações Iniciais

Atualmente, todos os grandes players de TI tem uma ou mais soluções de

computação em nuvem as quais abrangem todo o ciclo de vida ou parte dele.

Na parte II desta apostila, apresentaremos um resumo das principais iniciativas

de cada uma das grandes empresas de TI (IBM, Google, Microsoft, HP) e de

outras empresas ou iniciativas que merecem destaque como Amazon e

VMWare.

Estudo de Caso - IBM

A IBM, por fazer parte da história de TI, não podia deixar de ter papel

importante na revolução empregada por computação em nuvem. Tudo

começou com a virtualização implantada pelos computadores mainframe nos

idos de 1960. Naquela época, um mainframe era muito caro até para empresas

de grande porte. Daí a necessidade de otimizar ao máximo os recursos

computacionais disponíveis, medidos em MIPS, ou unidades de

processamento.

Com a virtualização era possível aos usuários “criarem” máquinas

independentes dentro do mainframe, particionando seu processamento, sua

memória e seu storage – discos rígidos. Tudo isso é muito comum hoje em dia,

mas a época a maioria dos usuários ainda trabalhava com computadores

baseados em cartões perfurados e no sistema um -de-cada-vez.

Atualmente, as soluções IBM contemplam todas as etapas do ciclo de

vida de disponibilização de um serviço na nuvem, seja ela baseada na internet

ou em nuvens corporativas.

IBM Academic Initiative

A IBM, Google e seis universidades norte americanas se uniram para criar

três nuvens distintas (uma na IBM, uma na Google, e uma na Universidade de

Washington). Alunos e professores das universidades envolvidas usam as

nuvens para fins acadêmicos, explorando as tecnologias de computação

Page 27: Apostila Cloud Computing v1.1

27

paralela desenvolvidas pela Google. A Figura 13 apresenta uma visão geral da

iniciativa. Além do hardware, a IBM contribui com a gestão automática dos três

ambientes.

Dublin Cloud Computing Center

A IBM está criando na Irlanda uma nuvem para oferecer recursos

computacionais e software para empresas e instituições que queiram usar esse

recursos para projetos de inovação por meio do aluguel de infraestrutura.

O modelo de aplicação e cobrança é o mesmo e se baseia na pilha de

serviços providos pela nuvem, apresentada na Figura 14.

Figura 12: Iniciativa acadêmica da IBM para fomentar o desenvolvimento de aplicativos em nuvem

Page 28: Apostila Cloud Computing v1.1

28

Wuxy Cloud

Essa nuvem está sendo criada pela pelo município de Wuxi na China. O

objetivo é fornecer às empresas da região recursos computacionais para o

desenvolvimento de software usando tecnologias Rational.

O principal objetivo do centro é a criação rápida de ambientes de

desenvolvimento para até 200.000 desenvolvedores de software espalhados

Figura 13: Esquema de pilha de serviços.

Page 29: Apostila Cloud Computing v1.1

29

em 100 empresas.

Com isso, reduz o custo com a infraestrutura compartilhada e a cobrança

passa a ser feita baseada no uso dos recursos, trazendo grande economia para

as empresas participantes.

VISTA Inovation Portal:

É um portal de colaboração visando o fomento da inovação entre

universidades e centros de pesquisa do Vietnam. O portal congrega

professores, alunos e pesquisadores no trabalho colaborativo de desenvolver

idéias e inovação. O portal foi criado Ministério de Ciência e Tecnologia do

Vietnam usando o Portal de Inovação da IBM (Idea Factory) em uma nuvem

computacional mantida em um laboratório da IBM nos Estados Unidos.

Estudo de Caso – Amazon

Dentre as empresas que não são originariamente de TI mas que

despontam como futuras provedoras de serviços na web, a Amazon, atrás do

seu portal de serviços AWS (Amazon Web Services), foi uma das primeiras

portas de entrada para o mundo da computação em nuvem acessado via web,

antes mesmo da IBM.

O portal de serviços da Amazon (http://aws.amazon.com/) é uma maneira

fácil e rápida de disponibilizar serviços na web através de utilização de uma

máquina virtual (AVI), provisionada e disponibilizada com software Linux. Após

contratar o serviço de hosting, por exemplo, o usuário recebe um e-mail com o

IP da nova máquina e um usuário e senha de acesso a ela. A partir daí a

máquina passa a ser dele para disponibilizar seus próprios serviços na web.

Page 30: Apostila Cloud Computing v1.1

30

Estudo de Caso - Google

A Google é um empresa muito jovem, 10 anos apenas. Porém, seu

estrondoso sucesso deve-se em parte ao modelos de negócio inovadores

lançados pelo empresa nos últimos anos, aliados a tecnologia de ponta.

Uma das próximas frentes de ataque da Google é na computação em

nuvem. Hoje a empresa oferece todos os seus serviços web baseados em um

nuvem própria de serviços, como o pesquisador Google, o GoogleDocs e o

GoogleTranslator, só para citar alguns exemplos. Esses serviços estão

disponíveis na web, mas rodam em algum lugar dentro da nuvem Google. A

Google ganhou muita experiência nos últimos anos ao projetar e fabricar

centros de processamento de dados baseados em containers (vide figura

acima). Com isso, a empresa ganhou escala e possibilidade de entrar como um

grande publicador de serviços de hosting de máquinas virtuais – a chamada

EC2 (Elastic Cloud).

Estudo de Caso - Microsoft

A Microsoft foi uma das últimas das grandes empresas de TI a aderirem a

conceitos de computação em nuvem e a lançar uma plataforma (Azure)

específica para isso. Apesar de mais ampla e voltada para empresas, a Azure é

uma plataforma que oferece os principais serviços básicos de provisionamento

na nuvem (IaaS, PaaS e SaaS).

A ideia por traz da iniciativa da Microsoft é reforçar a presença dos

sistemas operacionais da família Windows para servidores, que vem perdendo

terreno nos últimos anos para os baseados em Linux. A situação encontrada

nas pequenas e médias empresas ainda é de uma floresta de anões , nome

carinhosamente dado pelos analistas de suporte para os parques de TI

baseados em muitos servidores de pequeno porte (alguns tão ou menos

potentes quanto estações de trabalho mais novas). Em função disso, é

importante termos uma plataforma que integre todos esses servidores e que

possa rodar um sem-número de aplicações baseados em Windows, porém sem

Page 31: Apostila Cloud Computing v1.1

31

a necessidade de se obter uma nova máquina (anão) e todo os processo de

aquisição que a acompanha.

Web Office (http://office.live.com) Depois de muito relutar, a Microsoft lançou recentemente uma versão do

seu pacote de serviços Office (Word, Excel e PowerPoint) para a internet, que

pode ser usado gratuitamente (por enquanto apenas em inglês).

i Um mainframe é um computador de grande porte, dedicado normalmente ao

processamento de um volume grande de informações. Os mainframes são capazes de oferecer serviços de processamento a milhares de usuários através de milhares de terminais conectados diretamente ou através de uma rede. (O termo mainframe se refere ao gabinete principal que alojava a unidade central de fogo nos primeiros computadores.).

ii O termo TCO (Total Cost of Ownership) vem sendo amplamente utilizado no meio acadêmico, na mídia, em conferências, workshops e mesas redondas. No nosso caso ele é utilizado para avaliar os serviços de mobilidade do ponto de vista de valor agregado.

iii A computação verde (Green IT) refere-se a computação ambiental sustentável. No artigo sobre TI Verde: Os princípios e as práticas, San Murugesan define o campo da computação verde como "o estudo e a prática de projetar, manufaturar, usar e dispor computadores, monitores, impressoras, dispositivos de armazenamento e sistemas de rede e comunicações, com mínimo ou nenhum impacto no meio ambiente."

iv Um acordo do nível de serviço (abreviado frequentemente como SLA) é uma parte de um contrato de serviço onde o nível de serviço seja definido formalmente. Na prática, os SLAs são usados para definir o contratante (do serviço) ou o desempenho. Como um exemplo, os provedores de serviços do Internet incluirão geralmente acordos do nível de serviço dentro dos termos de seus contratos com clientes para definir os níveis de serviço que estão sendo vendidos , como uma definição técnica nos termos do MTTF, do MTTR, de várias taxas de dados, etc.

v Na computação, um hypervisor, igualmente chamado monitor da máquina virtual (VMM), permite que múltiplos sistemas funcionem simultaneamente em um computador anfitrião, uma característica chamada virtualização da console. O hypervisor apresenta aos sistemas convidados uma plataforma virtual de funcionamento e monitora a execução destes no sistema anfitrião. Um exemplo de um hypervisor é PR/SM, um tipo assim chamado - 1 hypervisor, que aloca recursos de sistema através de divisões lógicas de recursos físicos tais como os processadores centrais, os dispositivos de armazenamento do acesso direto e a memória. O PR/SM foi introduzido pela IBM no princípio dos anos 70 com os processadores do sistema IBM/370. Estes conceitos assentaram bem em uma parte importante da técnica conhecida como virtualização.

Outros sistemas, mais atuais, utilizam outros níveis ou tipos de hypervisors, como vmware, xen e virtualbox.

vi Middleware é o software de computador que conecta componentes de software ou usuários e suas aplicações. O middleware consiste em um conjunto de serviços que permite múltiplos processos funcionarem em uma ou várias máquinas para interagir.

Page 32: Apostila Cloud Computing v1.1

32

Esta tecnologia evoluiu para prever a interoperabilidade na sustentação do movimento às arquiteturas distribuídas coerentes, que são as mais usadas frequentemente ao suportar e simplificar aplicações distribuídas complexas. Inclui web server, servidores de aplicações e ferramentas similares que suportam o desenvolvimento de aplicações e sua instalação. A computação distribuída é especial integral à tecnologia da informação moderna baseada em XML, em SOAP, em serviços web e na arquitetura orientada a serviços. A computação distribuída fica "no meio" entre o software de aplicação e o de sistemas operacionais.

vii A Transferência de Estado Representacional (Representational State Transfer) ou somente REST é uma técnica de engenharia de software para sistemas distribuídos na web. O termo se originou no ano de 2000, em uma tese de doutorado sobre a web escrita por Roy Fielding, um dos principais autores da especificação do protocolo HTTP que é utilizado por sites da internet.

O termo REST se referia, originalmente, a um conjunto de princípios de arquitetura, mas que atualmente se usa no sentido mais amplo para descrever qualquer interface web simples que utiliza XML e HTTP (ou YAML, JSON, ou texto puro), sem as abstrações adicionais dos protocolos baseados em padrões de trocas de mensagem como o protocolo de serviços SOAP. É possível desenhar sistemas de serviços web de acordo com o estilo arquitetural REST descrito por Fielding, e também é possível desenhar interfaces XMLHTTP de acordo com o estilo de RPC mas sem utilizar SOAP. Estes usos diferentes do termo REST causam certa confusão em discussões técnicas, onde RPC não é um exemplo de REST.