AGENDA DA PALESTRA
Conceitos e Características
Vantagens e Desvantagens
Tipos de Cloud
Modelos de Negócio
Desafios e Oportunidades para provedores de
Cloud
Next Step - Desenvolvendo aplicações para Cloud
ALUGMAS DEFINIÇÕES
Antes de tudo: Não há consenso!
Cloud: um antigo sonho agora se tornando realidade
Tornar a infra-estrutura de TI um fator utilitário para as companhias Acabaria a necessidade de constantes investimentos em
infra-estrutura e principalmente a capacidade de aumentar ou diminuir a escala conforme demanda
Inicialmente Cloud refere-se tanto às aplicações entregues como serviços e também à infra-estrutura (hardware e software básico) nos Datacenters que oferecem tais serviços
ALGUMAS DEFINIÇÕES
“Computação em Nuvem refere-se tanto as aplicações entregues como serviços utilizando a Internet quanto a hardware e software em Centro de Dados que provêm esses serviços.” [Armbrust et al., 2009]
“Tipo de sistema paralelo e distribuído consistindo em uma coleção de computadores interconectados e virtualizados que são dinamicamente fornecidos e apresentados como um ou mais recursos de computação unificado baseado no contrato de nível de serviço” [Buyya et al., 2008]
CENÁRIO SOBRE CLOUD
Do ponto de vista Hardware, temos 3 novos aspectos: A ilusão de um conjunto infinito de recursos
disponíveis sob demanda
A eliminação de um acordo formal por parte dos usuários de Cloud Empresas podem começar “pequenas” e aumentar sua
demanda ao longo do tempo
A habilidade de se pagar para usar recursos computacionais em um curto prazo conforme necessidade
TIPOS DE CLOUD
Public Cloud
Serviços de Cloud Computing disponíveis na forma “pay-as-you-go”
Público em geral pode pagar para usar serviços.
Private Cloud
Em geral usado para referir-se a datacenters internos a uma organização, não sendo disponível para outros usuários
TIPOS DE CLOUD
CARACTERÍSTICAS
Paradigma de computação distribuída especializado
Massivamente escalável
Pode ser encapsulado com uma entidade abstrata que entrega diferentes níveis de serviço ao cliente
Focado em economia de larga escala
Serviços podem ser dinamicamente configurados (via virtualização ou de outra forma) e entregue sobre demanda
Utility Computing
PRÓS E CONTRAS Pontos a Favor
PRÓS E CONTRAS
Computadores pessoais de baixo custo
Usuários finais não precisariam mais de máquinas
potentes e robustas
Tablets ganharão (e já ganham) cada vez mais espaço, já
que tudo está na CLOUD
Desempenho
Alguns aspectos que irritam os usuários finais (como o
tempo de boot da máquina, carregamento de software
“pesado”) podem ser melhorados, uma vez que estes
aplicativos não serão mais instalados
Fator primordial para desempenho rede
PRÓS E CONTRAS
Baixo custo de Infraestrutura de TI
Baixa necessidade de aquisição de servidores, discos,
memória
Poucas ocorrências de manutenção
Falhas físicas são abstraídas e ficam a cargo do
provedor de cloud
Com menor quantidade de servidores na empresa,
menor a ocorrência de falhas
PRÓS E CONTRAS
Menor custo com Software
Possibilidade de aluguel de aplicativos cobrar sobre
uso
Vendas personalizadas de módulos específicos
Atualizações instantâneas
Uma vez que você usa uma aplicação via web,
obviamente você sempre estará usando sua versão
mais recente
PRÓS E CONTRAS
Poder computacional extremamente ampliado
Uma vez que toda a nuvem está a disposição, tarefas que
podem ser realizadas nela jamais seriam capazes de
serem efetivas em um desktop ou workstation
Capacidade de armazenamento ilimitada
Devido à elasticidade é possível agregar cada vez mais
elementos de armazenamento
Aumento da Segurança dos Dados
Dados na Cloud permanecem na Cloud (em algum lugar)
Perdas, Danos ou Falhas em HDs não são
responsabilidade do usuário final
Replicações e redundância
PRÓS E CONTRAS
Aumento da interoperabilidade entre Sistemas
Operacionais
Independente do SO disponível na Cloud, o acesso pode
ser feito por qualquer dispositivo
Colaboração de Grupos
Onipresença facilitando comunicação e CSCW
Acesso universal a recursos
Desvencilhar-se de dispositivos específicos
Tudo na Cloud é acessível via Web, basta uma conexão
PRÓS E CONTRAS Pontos Contra
PRÓS E CONTRAS
Velocidade e Disponibilidade de conexão são pré-
requisitos
De nada adianta ter uma infra-estrutura e aplicativos
disponíveis se não forem alcançáveis pelos usuários
Desempenho da Cloud pode ser comprometido, não pela
infra-estrutura de hardware ou configuração de software,
mas pela conexão do seu usuário com a nuvem
Funcionalidades dos aplicativos pode (e é em
muitos casos) bastante reduzida
Apesar da Web 2.0, HTML 5, controles ativos, as
capacidades de um browser ainda são muito inferiores a
um Desktop ou Workstation
PRÓS E CONTRAS
Dados armazenados podem não ser seguros
Acesso não autorizado aos dados
Como garantir que o provedor não irá tornar disponível
seus dados estratégicos a seus concorrentes?
Como provar que isso foi feito?
Se seus dados forem perdidos, você está
enrascado
Justamente o contraponto de você armazenar ou não
dados localmente. Qual a decisão?
BARREIRAS DA CLOUD
(“A NUVEM NEGRA”)
Questões Técnicas
Temos capacidade de implantar/migrar para Cloud?
Modelo de Negócios
Nosso negócio é compatível com o modelo de Cloud?
Internet – Acesso e Velocidade
Vamos oferecer um recurso que vai ser alcançável pelos usuários?
Segurança
Quem garante que nossos dados estão seguros, acessíveis com
restrições e disponíveis?
Compatibilidade
Mudanças são onerosas e muitas vezes traumáticas – você trocaria
o Word por um Browser?
Aspectos Sociais
As aplicações/dados não estão fisicamente no meu HD. Logo não
aceito isso e não uso
O QUE SE BUSCA EM CLOUD?
Software as a Service (SaaS)
Aplicações para usuários finais via Web
Platform as a Service (PaaS)
APIs, frameworks, linguagens e ferramentas de desenvolvimento para Cloud computing
Implementação pode ser feita via webServices
Infrastructure as a Service (IaaS)
Servidores (máquinas reais ou virtuais), armazenamento
ARQUITETURA DE CLOUD
ARQUITETURA DE CLOUD
E GRID COMPUTING?
Cloud Grid Controle dos Recursos Fornecidos
Usuário Domínio
Infra-estrutura Recursos e Serviços abstratos.Pode utilizar Grid
para gerenciar
Recursos Computacionais e de Armazenamento
Modelo de Negócios Paga-se pelo que é utilizado Usuário possui um certo número de unidades de
serviços (CPU/hora)
Arquitetura Conjunto de recursos computacionais e de
armazenamento. Controle Central
Integração de Recursos Existentes
Recurso – Domínio Administrativo
Interfaces/
Interoperabilidade
Proprietárias/Fraca Públicas/Alta
Benefícios/Malefícios Elasticidade/Segurança Colaboração/
Complexidade
CARACTERÍSTICA FUNDAMENTAL:
ELASTICIDADE
APENAS UM EXEMPLO
Animoto.com Portal para criação de slideshows via web
Fato: Anunciou seu serviços no Facebook.com
Demanda de acesso ao serviço oscilou da necessidade de 50 para 3500 servidores (em momentos de pico) em 3 dias!
Inviável de se implementar em um ambiente real não necessariamente por causa do custo da infra-
estrutura, como também pelo custo operacional de manutenção
E quando opera-se abaixo do pico?
APENAS UM EXEMPLO
TRANSFERÊNCIA DE CUSTO/RISCO
Sub-utilização de recursos computacionais Agora não é mais responsabilidade do operador
e sim do provedor do serviço
“Green Computing” Otimização no consumo de energia elétrica nas
empresas
Perda de usuários Quem assume o risco de usuários que deixam
de utilizar o serviços?
Administração dos recursos computacionais Novamente de responsabilidade do provedor
DESAFIOS E OPORTUNIDADES
Ao todo 10 principais obstáculos e oportunidades
para Cloud Computing
Idéias para criação de soluções tanto comerciais,
como voltadas a pesquisa
#1 – DISPONIBILIDADE DO SERVIÇO
Único provedor de serviço
Integração entre vários provedores
Necessidade de intercâmbio de serviços
DDOS
Quick scale-up pode auxiliar na manutenção
Escala de oferta é aumentada, para que o
software continue sendo oferecido de forma que
os pontos atacados não influenciem sua
operação
#2 – APREENSÃO DE DADOS
Soluções proprietárias podem custar muito aos usuários
Presos ao provedor, ficam à mercê de suas políticas de preço/acesso
Ideal: padronizações
Desafios: padronizar API ou criar camadas que realizem interoperabilidade entre diversos provedores
#3 – CONFIDENCIALIDADE DE DADOS
E AUDITORIAS
Até que ponto deixar dados estratégico sob
armazenamento de terceiros?
Como fazer para garantir o acesso exclusivo e com
garantias?
Como auditar dados para confirmar se foram ou
não corrompidos?
Qual o controle e nível de acesso que temos sobre
quem consulta/altera dados?
#4 – GARGALOS NA TRANSFERÊNCIA
DE DADOS
Certamente um dos principais desafios é
como vencer gargalos de transferência de
dados
Serviços podem ser oferecidos na mesma infra-
estrutura de hardware
Múltiplos servidores virtualizados em uma
única infra-estrutura de hardware
Discos exclusivos?
Canais de comunicação exclusivos?
Otimização de solicitações de I/O?
#5 – DESEMPENHO IMPREVISÍVEL
Tipos distintos de sistemas de armazenamento
Quantidade de servidores virtualizados
HPC
Necessidade de garantir que as threads em uma aplicação de alto desempenho executam simultaneamente
Como escalonar essas aplicações para obterem o máximo de desempenho?
#6 – ARMAZENAMENTO ESCALÁVEL
Como gerenciar a ocupação altamente dinâmica de HDs em um sistema de Cloud Computing?
À medida que o sistema aumenta a demanda, a necessidade de maior quantidade de HDs
E quando a escalabilidade diminui rapidamente?
Como gerenciar esses espaços disponíveis em um curto periodo de tempo?
#7 – BUGS EM LARGA ESCALA
Identificação de bugs em um sistema em que o
usuário não tem controle sobre sua infra-estrutura
Muitos erros em geral não ocorrem em ambientes
de menor escala e são comprovados apenas em
larga escala
#8 – ESCALABILIDADE RÁPIDA
Pay-as-you-go
Reconfigurações muito rápidas de uso de recursos
Como gerenciar essas oscilações sem alterar contratos de níveis de serviços?
Escalonamento de novos serviços em infra-estruturas que tornam-se ociosas rapidamente
#9 – COMPARTILHAR REPUTAÇÃO
Como prever que uma mensagem vinda de um serviço de cloud é confiável ou não Exemplo: EC2 – Amazon
Inserir um IP da Amazon como sendo lista de SPAM pode generalizar de forma negativa a oferta e uso de serviços da Cloud Que podem ser essenciais para a empresa
Uma empresa que envia SPAMs usando infra-estrutura de cloud De quem é a responsabilidade? Quem é o
Spammer?
#10 - LICENCIAMENTO DE SOFTWARE
Muito problemático em relação à escalabilidade
Softwares que operam por licenças limitam a escalabilidade
Desafios: criação de modelos de negócios que quantifiquem o uso do software e não o número de licenças
Métricas para uso de Cloud
ALGUNS USOS DE CLOUD
Uso doméstico
Contas domésticas, orçamento familiar, listas de
compras, atividades da família, planejamento de
férias/feriados, álbuns de fotos (Picasa, Flickr)
Uso comunitário
Serviços e noticiário do bairro, agendas de eventos,
trabalhos colaborativos (envolvendo departamentos de
uma empresa ou mesmo associações), TODO-Lists,
Marketing
ALGUNS USOS DE CLOUD
Corporativo Listas de contatos, ramais e emails da intranet
Agendamentos de reuniões (Doodle)
Compartilhamento de agendas (Google Calendar)
Gerenciamento de Projetos
Aplicativo Spreadsheet do GoogleDocs tem sido amplamente usados para definir tarefas, prazos e cumprimentos
Workflow
Orçamento compartilhado
Vários departamentos inserem numa planilha única suas necessidades para que todos tenham visão de todo planejamento de custos
Integração com ferramentas mobile – Android, IOs
ALGUNS USOS DE CLOUD
CRM
Salesforce.com
Automação da força de vendas
Call centers
Canais com parceiros – uma área global de colaboração
entre parceiros
Marketing – ferramentas de análise de resultados para
decisões estratégicas de marketing
Conteúdos – ferramentas de armazenamento
colaborativo de documentos
Análises – ferramentas de dashboards, BSC, decisão,
alocação de recursos
USOS DE CLOUD
Gerenciamento de Projetos
@task
Ferramenta “estilo” Project
Definição de diagramas de Gantt, dependências, paralelismo,
sincronizações
Integração com API iPhone
Copper Project
Facilidade de uso na própria nuvem ou instalação dentro da
empresa
CLOUD-BASED OPERATING SYSTEMS
ajaxWindows
www.ajaxwindows.com
Interface muito próxima ao MS-Windows
eyeOS
Acompanha suíte de aplicativos de escritórios
compatível com Office
Nilvio
“Windows 2000 nas nuvens”
INFRAESTRUTURA DE CLOUD
Virtualização
Open Nebula
Nimbus
Amazon EC-2
Google App Engine
Windows Azure
Desenvolvimento
Hadoop
Windows Azure SDK
POR QUE ISSO?
De qual lado estarei?
Usuário de cloud?
Provedor de cloud para clientes?
Implantador de private cloud?
Alternativa bastante interessante para oferecer a solução “on
demand” de software para departamentos internos à empresa
Fábrica de software oferecendo sistemas on demand para
clientes dos outros departamentos