3. Computação em Nuvem
● A ideia é que serviços básicos e essenciais são
todos entregues de uma forma transparente
● Paradigmas:
– Ideia antiga: Software como um Serviço (SaaS);
● Entrega de aplicações através da Internet.
– Recentemente: “[Hardware, Infraestrutura,
Plataforma] como um serviço”
● “X como um serviço”
5. Computação em Nuvem
● Nuvem [Buyya et al. 2009]
– É uma metáfora para a Internet ou infraestrutura de
comunicação entre os componentes arquiteturais,
baseada em uma abstração que oculta a
complexidade de infraestrutura.
6. Computação em Nuvem
● Evolução dos serviços e produtos de TI sob demanda:
– Utility Computing.
● Objetivo da Utility Computing:
– Fornecer os componentes básicos como:
● Armazenamento, CPUs e largura de banda de uma rede como
uma mercadoria através de provedores especializados com
um baixo custo unitário (sob demanda).
7. Utility Computing
● Os usuários não precisam se preocupar:
– Escalabilidade:
● A capacidade fornecida é praticamente infinita.
– Disponibilidade:
● Acesso a qualquer momento.
– Desempenho:
● Tempos de resposta são quase constantes;
– Backups:
● Responsabilidade do provedor.
8. Computação em Nuvem
● Definição [NIST 2009]
– Computação em nuvem é um modelo que possibilita acesso, de
modo conveniente e sob demanda, a um conjunto de recursos
computacionais configuráveis que podem ser rapidamente
adquiridos e liberados com mínimo esforço gerencial ou
interação com o provedor de serviços.
● Modelo de nuvem do NIST é composto:
– Cinco características essenciais;
– Três modelos de serviço;
– Quatro modelos de implantação.
10. Software as a Service
● Software com propósito específico que está disponível
por meio da Internet;
● Acesso:
– Interface thin client: navegador web;
● Transparência na disponibilidade do serviço;
● Exemplo de SaaS:
– Google Drive.
11. Platform as a Service
● Infraestrutura de alto nível para implementar e testar
aplicações na nuvem;
● PaaS fornece:
– SO, ambientes de desenvolvimento, suporte à bibliotecas e
linguagens de programação, rede, etc.;
● PaaS disponibiliza ambientes escaláveis (transparente)
● Exemplos de PaaS:
– Google App Engine;
– Microsoft Azure.
12. Insfrastructure as a Service
● Objetivo:
– Tornar mais fácil e acessível a disponibilização de recursos:
●
Servidores, rede, armazenamento.
● Virtualização
– Uso eficiente de recursos;
● Exemplos de IaaS:
– O Amazon EC2 (Elastic Cloud Computing);
– Eucalyptus;
– OpenNebula.
24. Resumo
● Alto investimento inicial
● Alto custo de manutenção
● Quant. fixa de recursos
● Dificuldade de
escalabilidade
● Dificuldade para se
recuperar de falhas
● Pagamento pelo uso
● Menor custo de manutenção
● Quant. irrestrita de recursos
● Escalabilidade linear
● Tolerância a falhas
● Sob demanda
25.
26. Como surgiu a AWS?
● Como surgiu a AWS?
– O tamanho do website da Amazon estava grande
demais para utilizar técnicas de desenvolvimento
de uma aplicação (web) convencional;
– Em 2004 a equipe da AWS começou a trabalhar
fortemente nesse objetivo;
– O problema de tamanho foi resolvido, e a Amazon
foi gradualmente se transformando de um “simples”
site de compras em uma infraestrutura de cloud.
27. Como começar?
● Criar uma conta Amazon =)
– Não custa muito pra começar a usufruir de seus
serviços. Por exemplo, não será preciso comprar um
servidor físico e instalar na sua empresa.
– Amazon Free Usage Tier: 1 ano grátis em alguns
serviços da Amazon
● http://aws.amazon.com/pt/free/
– Startup ou grande empresas: vale a pena!
30. Simple Queue Service - SQS
● Importante para a comunicação entre os componentes de um Sistema Distribuído:
desacoplamento.
● QoS (Quality of Service)
● Pode ser utilizada como buffer, e de forma elástica.
– Quando nosso sistema tiver grandes picos, uma opção seria processá-las a medida em
que nosso sistema pudesse (sem escalonamento). Seria possível que seu componente de
processamento pudesse trabalhar nas requisições o dia inteiro.
– 0,50 USD por cada 1 milhão de solicitações do Amazon SQS
31. Simple Storage Service - S3
● “Designed to provide 99.999999999% durability and 99.99%
availability of objects over a given year.”
– De acordo com o Evangelista Amazon Jeff Barr, esses
vários 9's querem dizer que, “If you store 10,000 objects
with us, on average we may lose one of them every 10
million years or so.”
● Alguns valores:
– 1 TB / mês is $0.095 por GB;
– 500 TB / mês is $0.065 por GB;
– Transferência de dados até 10 TB / mês é $0.120 por GB.
36. Elastic Cloud Computing - EC2
● Nova categoria de cloud: IaaS;
– Apesar de virtualização de servidores já existir por um
tempo, não existia a ideia de se comprar uma hora de
poder de computação em servidores Linux/Windows.
● Infraestrutura elástica para suas aplicações;
– Websites dirigidos a eventos podem ampliar (scaling out)
sua capacidade momentos antes do evento, e rodar em
baixa capacidade no resto do tempo;
● Alguns valores:
– Instâncias On-Demand Micro - $0.020 por hora.
37. Regiões e Zonas de Disponibilidade
Zonas de Disponibilização
(Availability Zone)
Projetadas para serem independentes.
Separadas fisicamente. Porém com
conectividade rápida dentro da mesma
região.
Regiões
Um conjunto isolado de Data Centers
em determinada Geografia.
38. Elastic Load Balancing - ELB
● Todo o hardware tem o seu limite, e muitas vezes o mesmo serviço
tem que ser repartido por várias máquinas, sob pena de se tornar
congestionado.
● Balancear a carga é uma técnica para distribuir carga de trabalho
uniformemente para dois ou mais computadores, links de rede,
CPUs, discos rígidos, ou outros recursos, com o intuito de obter
utilização otimizada de seus recursos, maximizando vazão e
minimizando tempo de resposta, para evitar sobrecarga.
● Pode também aumentar confiabilidade através de redundância.
39. Elastic Load Balancing - ELB
● Elastic Load Balancing distribui automaticamente o tráfego web de
entrada para as múltiplas instâncias EC2.
● Com o ELB é possível adicionar e remover instâncias EC2 de forma
transparente, pois não há necessidade de remodelar qualquer
componente.
● Se uma instância falha, o ELB automaticamente encaminha as
requisições para servidores em pleno funcionamento.
40. Auto Scaling
● O Auto Scaling permite escalar a capacidade de seu Amazon EC2 para cima ou
para baixo, automaticamente, de acordo com as condições que você definir.
Com a confiabilidade do Auto Scaling, o número de instâncias de Amazon EC2
que está usando aumenta facilmente durante picos de demanda para manter o
desempenho e diminui automaticamente durante quedas de demanda para
minimizar custos. O Auto Scaling é especialmente útil para aplicativos que
experimentam variabilidade de uso por hora, dia ou semana. O Auto Scaling é
ativado pelo Amazon CloudWatch e é disponibilizado sem custo adicional além
das taxas do Amazon CloudWatch.
41.
42. Referências
● Cloud Computing. NIST - National Institute of
Standards and Technology.
http://www.nist.gov/itl/cloud/index.cfm (Acessado
em: abril/2013)
● Slides do Professor Flávio R. C. Sousa.
“Introdução a Cloud Computing”. Sistemas
Distribuídos. Universidade Federal do Ceará.
● Baseado nos slides de José Papo. “AWS –
Introdução”