Cloud Computing

Carlos Eduardo de Carvalho Dantas ([email protected]) “Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito”. Aristóteles.

Conectividade no mundo



Velocidade?



Central da copa 2002 – transmissão por satélite → delay 4s

Conectividade no mundo

E se fosse possível concentrar todas as informações do mundo na internet?

Cloud Computing - definição



Modelo no qual os recursos computacionais (processamento, armazenamento e softwares) estão disponíveis em uma rede de computadores e são acessados remotamente;

Cloud Computing - definição



Acredita-se que no futuro ninguém mais precisará instalar nenhum software em seu computador para desempenhar qualquer tipo de tarefa, desde edição de imagens e vídeos até a utilização de programas de escritório (Office), pois tudo isso será acessível através da internet.

Cloud Computing - exemplos







Webmails (usuários que possuem conta de emails não sabem aonde estes estão); Criação e armazenamento online de arquivos: google docs, office web apps, dropbox, etc.. Youtube, picasa, redes sociais, anti-vírus online, etc..

Cloud Computing - exemplos





Chrome os - trabalha exclusivamente com aplicativos web; Não estará disponível como download para instalação, em vez disso, o sistema operacional só virá em hardware específico de fabricação dos parceiros do Google

Cloud Computing - exemplos

 



Uso reduzido dos computadores pessoais; Os computadores passam a ser apenas um meio de solicitar e receber os serviços da nuvem. Quem processa, faz I/O, usa memória, etc.. é o sistema em nuvem acessado via navegador ou outro programa-cliente.

Características



Acesso a rede;



On-demand self service;



Pool de recursos;



Rápida elasticidade;



Serviço mensurado

Modelo de implantação





Privado – nuvens construídas para um único usuário ou empresa. Virtualização de servidores; Público – mantidas por terceiros e disponíveis para o público em geral ou grupo de indústrias;



Comunidade – disponível para todos



Híbrido – combinação entre os níveis acima

Modelos de Serviços



Iaas (infrastructure as a Service) – processamento, armazenamento, rede;



Ex: Amazon Elastic Compute Cloud (EC2);



Simple Storage Service (EC3)

Modelos de Serviços



Paas (Platform as a Service) – serviços para desenvolvimento, testes, publicação, hospedagem e manutenção de aplicações



Ex: Windows Azure



Google App Engine

Modelos de Serviços





Saas (Software as a Service) – sistemas online como webmails, e-commerce, transformando computadores pessoais em canais de comunicação entre a nuvem e o usuário; Saas deve se tornar um grande aliado contra a pirataria

Modelos de Serviços





DaaS – Development as a Service – ferramentas compartilhadas, ferramentas de desenvolvimento web-based e mashups; Caas – Communication as a Service – bem parecido com Saas, mas satisfaz a função de comunicações, como telefonia IP

Prós



Alta escalabilidade e baixo custo;



Muitas opções de escolha e agilidade;



Mudanças e gerenciamento transparentes;



Estar em cloud é sempre estar sob arquitetura de última geração

Contras



Menor segurança;



Menor nível de controle;



Menor confiabilidade;



Imposição tecnológica (API)

Aspectos arquiteturais



1) Escalabilidade



2) Elasticidade



3) Diminuição do custo;



4) Disponibilidade;



5) Segurança e privacidade;



6) Facilidades e flexibilidades de provedores;



7) Portabilidade e vendor lock-in

Escalabilidade







É muito mais fácil fazer uma aplicação crescer ”gigantescamente” usando alguma plataforma de cloud do que arquitetura tradicional; Provedores como Amazon, Google e VMWare possuem provedores com imensos datacenters e milhares de máquinas à disposição; Api reduzida, ex: GAE impossibilita o uso de threads e sistemas de arquivos

Elasticidade







Aumento do uso de máquinas quase instantaneamente quando necessário e liberálas quando não forem mais necessárias; Permite atender a picos repentivos e imprevisíveis sem preocupações e não desperdiçar recursos quando a aplicação está sem grandes acessos; Não precisa comprar máquinas a mais pensando em picos pontuais

Elasticidade







Uma operadora de cartão de crédito tem muitos acessos perto do natal; Ticketmaster quando começa a vender ingressos de shows grandes; Há sistemas distribuídos que quebram envio de emails para evitar que todos acessem ao mesmo tempo

Diminuição do custo









Provedores de cloud cobram baseado no uso do que se faz dos recursos computacionais do ambiente (CPU, memória, banda, etc..); Manutenção do Hardware e com equipe própria para gerenciar as máquinas – custos mais baixos que manter estrutura própria; Provedores possuem bons painéis de acompanhamento de gastos; Não há preocupações como HD queimado ou licenças expiradas de Software

Disponibilidade



Disponibilidade depende 100% do provedor;



100% de disponibilidade é utópico;







É importante possuir sistemas que se recuperem rapidamente de quedas; Provedores possuem equipes especializadas e dedicadas a garantir disponibilidade; Possuem datacenter em diversas cidades, com backup, replicação e redundância

Segurança e privacidade



Confiar informações estratégicas e ultraconfidenciais em terceiros?



Proteção contra ataques externos;



Privacidade com relação ao próprio provedor;

Facilidades e flexibilidades





Na Amazon EC2, o desenvolvedor precisa configurar e se preocupar para a aplicação rodar em vários datacenters. No GAE a replicação é automática; No Amazon EC2, é controlado replicação, load balance, DNS, etc.. no cloudfoundry, é possível até controlar quando de memória deve ser utilizado em cada JVM.

Portabilidade e vendor lock-in





Quanto uma aplicação fica amarrada a um determinado ambiente impedindo a troca de provedor no futuro; Usar datastore privado do GAE impede portabilidade. GAE procura oferecer serviços que sigam especificações oficiais e bem reconhecidas no mercado

Diminuição do custo









Provedores de cloud cobram baseado no uso do que se faz dos recursos computacionais do ambiente (CPU, memória, banda, etc..); Manutenção do Hardware e com equipe própria para gerenciar as máquinas – custos mais baixos que manter estrutura própria; Provedores possuem bons painéis de acompanhamento de gastos; Não há preocupações como HD queimado ou licenças expiradas de Software

FIM