Outubro de 2010
[Contra-Capa da UFLA]
[Sumário]
3
Computação em Nuvem (Cloud Computing)
Parte I – Conceitos
4
Considerações iniciais
5
usuários, sejam eles internos (colaboradores) ou externos (clientes e parceiros
de negócio).
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.
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.
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
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.
12
Em que consiste a 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.
16
Diferenças para outros conceitos utilizados em computação em
nuvem
Computação em Grade
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
18
Figura 9: Exemplo de SaaS: LotusGreenHouse
Computação paralela
19
Figura 10: Centro de Processamento de Dados Modular da Google
Modelagem
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
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
Monitoramento
22
adequam a picos e vales de utilização do serviço em específico e da
infraestrutura como um todo.
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
Fonte: http://www.mylinestream.com/cloud-computing.html
24
Computação em Nuvem (Cloud Computing)
25
Considerações Iniciais
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.
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.
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.
28
em 100 empresas.
29
Estudo de Caso - Google
30
a necessidade de se obter uma nova máquina (anão) e todo os processo de
aquisição que a acompanha.
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