Vous êtes sur la page 1sur 32

Computação em Nuvem

Conceitos e Estudos de Caso

Victor de Almeida Xavier (VX)

Outubro de 2010
[Contra-Capa da UFLA]
[Sumário]

3
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

4
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

5
usuários, sejam eles internos (colaboradores) ou externos (clientes e parceiros
de negócio).

Figura 1: Diagrama de acesso a nuvem

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.

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

7
Figura 2: Expansão da nuvem

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

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

Figura 3: Evolução dos Centros de Processamento 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

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

10
Figura 4: Esquema de gasto de energia em um datacenter

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

Figura 5: Iniciativas para economia de energia em um datacenter

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.

11
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

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

13
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

14
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

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

16
Diferenças para outros conceitos utilizados em computaçã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.

17
Figura 7: Cliente de computação em Figura 8: Projetos e atividades sendo executados por um
grade rodando localmente cliente de computação em grade

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

18
Figura 9: Exemplo de SaaS: LotusGreenHouse

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

19
Figura 10: Centro de Processamento de Dados Modular da Google

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.

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

21
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

22
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

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

Centro de dados
- Hospeda o software
- Mantém o hardware Trabalhadores locais
do servidor - Acessar aplicações
- Backup diário por meio de PCs

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

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

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

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

25
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

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

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


nuvem

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.

27
Figura 13: Esquema de pilha de serviços.

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

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

29
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

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

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

32

Vous aimerez peut-être aussi