PDF (2)

Propaganda
Instituto de Inovação com TIC
Cloud Computing:
Quando a infra-estrutura se torna programável
Rodrigo Assad
[email protected]
[email protected]
tiwitter.com/rassad
Roteiro
WTF is Cloud Computing?
Tipos de nuvens
Tecnologias habilitadoras
Onde estão os problemas
Atividades proposta
Como assim:
infra-estrutura
programável?
?
WTF IS CLOUD COMPUTING?
WTF is Cloud Computing?
Cloud computing é um modelo que permite acesso
ubíquo, conveniente, sobre demanda, para a
rede ou a um pool de recursos computacionais
(rede, storage, servidor, aplicações, serviços)
que podem ser rapidamente provisionados e
disponibilizados com um esforço mínimo de
gerenciamento do provedor de serviços.
http://csrc.nist.gov/groups/SNS/cloud-computing/
WTF is Cloud Computing?
SaaS
PaaS
IaaS
WTF is Cloud Computing?
(SaaS): O consumidor usa a aplicação, mas não
controla o sistema operacional, hardware e
infra-estrutura de rede na qual esta
funcionando.
WTF is Cloud Computing?
(PaaS): O consumidor usa o ambiente do hosting
para as suas aplicações. O usuário controla a
aplicação que roda no ambiente (e
possivelmente tem algum controle sobre o
ambiente), mas não controla o sistema
operacional, hardware e rede. Tipicamente a
plataforma vira um framework.
WTF is Cloud Computing?
(IaaS): O consumidor usa “os recusros
fundamentais da computação” como consumo
de processamento, storage, componentes de
rede e middleware. O consumidor controla o
sistema operacional, storage, deploy de
aplicações, …..
– Mas não controla a infra-estrutura que controla a
nuvem.
TIPOS DE NUVENS
Tipos de nuvens
Public Cloud: em termos simples, uma nuvem
publica é caracterizada por disponibilizar aos
clientes um serviço através da infra-estrutura de
um terceiro:
– O termo “public” não significa gratis ou livre
– Os dados dos usuários não estão públicos ou
visíveis.
– Fornecedores proveem um mecanismo de controle
de acesso.
– Nuvems publicas provem um custo escalável, efetivo
para o deploy da aplicação.
Tipos de nuvens
Private Cloud: Em uma serviço privado, os
dados e processos são gerenciados pela
organização sem a restrição de banda,
segurança, leis/regras que o usuários esta
sujeito em uma clous publica
Tipos de nuvens
Community Cloud: uma cloud comunitária é
controlada e utilizada por um grupo de
organizações que tenham interesses comuns,
como os requisitos de segurança ou
funcionalidades.Os membros da nuvem
compartilham informações e aplicações.
Tipos de nuvens
Hybrid Cloud: Em uma nuvem Hybrida temos a
combinação de nuvens privadas e
publicas.Normalmente utilizada para vender
serviços de uma nuvem privada sub-utilizada.
Ao mesmo tempo que mantém a as informações
críticas disponíveis.
Tipos de nuvens
Essential Characteristics
–
–
–
–
–
Rapid Elasticity
Measured Service
On-Demand Self-Service
Ubiquitous Network Access
Resource Pooling
Tipos de nuvens: Termos
Interoperability
Portability:
Integration
Service Level
Agreement (SLA)
Federation:
Broker:
Multi-Tenancy
Cloud bursting
Policy:
Governance:
Virtual Machine (VM):
Application
Programming
Interface (API):
TECNOLOGIAS
HABILITADORAS
API específica
Hypervisor e software de virtualização
Protocolos, plataformas e SO
Hardware específico
Tecnologias habilitadoras
Servidores BLADE
WebService, REST
RPC
P2P – JXTA, ....
Filas e assimetria
Tecnologias habilitadoras
GRIDS
– Open Grid Services Architecture WG (OGSA-WG)
– OGF Open Cloud Computing Interface Working
Group
– OGF Document Series
Tecnologias habilitadoras
Hypervisors - virtual machine monitor (VMM)
– XEN
– Windows Azure
– VM-WARE
Tecnologias habilitadoras
Google (GOOG) - Apps Engine
Amazon.com (AMZN) - EC2
Microsoft (MSFT) - Windows Live
Terremark Worldwide (TMRK) - The Enterprise Cloud
Salesforce.com (CRM) - Force.com
NetSuite (N) - Suiteflex
Rackspace Cloud - cloudservers, cloudsites, cloudfiles
Metrisoft - Metrisoft SaaS Platform
ONDE ESTÃO OS
PROBLEMAS
Onde estão os problemas
Arquitetura de software
– A recomendação “era”: decomponha sua aplicação
em pedaços e faça o deploy destes pedaços em
servidores separados facilitando os requisitos nãofuncionais como escalabilidade, gerenciamento,
disponibilidade, segurança, ...
Onde estão os problemas
E agora nas nuvens?
Ficou mais fácil
– Mantemos tudo
separado e fazemos o
deploy virtualizado e
rápido
– Se esta “metodologia”
não poder ser aplicada
então a aplicação não
esta pronta para ir
para as nuvens
Onde estão os problemas
Devido aos problemas e limitações da quantidade
de processadores e memórias em sistemas X86
as aplicações tiveram que ser projetadas para
funcionar em mais de uma CPU
Onde estão os problemas
E agora nas nuvens?
High-performance
computing
Database management
systems
CPU-intensive
processing
Onde estão os problemas
E agora nas nuvens?
Scalability.
Availability.
Reliability.
Security.
Flexibility and agility.
Serviceability.
Efficiency.
Os objetivos continuam os mesmos !!!! 
Onde estão os problemas
A maioria das aplicações tem características
comuns em relação a infra-estrutura. A regra
dos 80-20 se aplica aqui.
Onde estão os problemas
E agora nas nuvens?
Nas nuvens tudo passa
a ser visto como um
componente de uma
solução.
Sistemas Operacionais,
Servidores de BD e
etc passam a interagir
com o sistema
através de API´s.
Onde estão os problemas
E agora nas nuvens?
O importante é o
modelo não a
imagem
Diminuição de custo
Definir API´s e GUI´s
Ambientes
customizados e preprontos para
funcionar.
Onde estão os problemas
E agora nas nuvens?
Deploy
Suporte ao
refatoramento e
reutilização de
ambientes
Onde estão os problemas
Crescimento horizontal
Paralelização
Onde estão os problemas
E agora nas nuvens?
Projetistas das nuvens
precisam se
preocupar com
latência de redes de e
tamanho dos pipes
Projetistas precisam
saber onde colocar
cada componente
Storages
Otimizações
Onde estão os problemas
E agora nas nuvens?
Utilze wrapers e
pointers
REST
SOAP
Onde estão os problemas
E agora nas nuvens?
Encriptação
Autenticação
Autorização
Auditoria
Domínios de segurança
Controle de tráfego
Onde estão os problemas
Onde estão os problemas
Billing
Segurança
Escalabilidade
– São os atuais
Multi-tenancy
Segmentação,isolamento,
governança, niveis de
serviço, billing
Segurança
Primeiro precisamos entender riscos !!
– Quais são?
Segurança - governança
Governança e riscos
Legislação e propriedade da informação
Gerenciamento do ciclo de vida de segurança
Portabilidade e interoperabilidade
Governança
Governança
Governança
Governança
Operacionais
Operacionais
Segurança - operações
Segurança - operações
Segurança tradicional
Operação de datacenter
Respostas a incidentes
Segurança de aplicações
Criptografia
Identidades e gerenciamento de acesso
virtualização
Criando nuvens escaláveis
 Use o Hadoop (Map/Reduce) ou similares para
realizar testes de performance em uma
aplicação de armazenamento de dados




Escalabilidade
Facilidade de deploy
Testes do CESAR para a Amazon
Amazon para Amazon
 Armazenamento na amazon
Como aplicar estes conceitos !!!
IaaS
Modelo mais simples
Defina uma maquina virtual base
Instale nelas os diversos ambientes que você
deseja
Proveja uma maneira de fazer um setup inicial
eficiente
Modelo mais simples
Defina um modelo de mensuração para cobrar
– Uso dedicado
– Uso compartilhado
– Uso sobre demanda
Segurança
Como fica?
Quem irá garantir o ambiente?
Como fica os softwares?
Gerenciamento
Este é o lado que salva o provedor
Garantia dos SLA´s acertados
Definição dos parâmetros de gerenciamento
– Quais seriam?
Como funciona
Segurança
VM
VM
VM
VM
Hypervisor
Hardware
VM
Gerenciamento
SLA
Backup
VM
Billing
Pool
VM
PaaS
Solução PStorage
A solução usto.re consiste de uma plataforma para
cloud storage de baixo custo que permite a
montagem de sistemas de armazenamento de
massa, utilizando ou não a recursos já
existentes permitindo a criação de nuvens
públicas ou privadas.
Visão geral
A ferramenta usto.re pode ser vista como um
conjunto de peers agrupados de acordo com o
seu papel.
– Este agrupamento dinâmico permite a criação de
sistemas escaláveis
– A garantia da disponibilidade e replicação dos dados
é ofertada pelo sistema.
Visão geral
Super Peer Rendezou
Relay
Super Peer Rendezou
Relay
Super Peer Rendezou
Relay
Troca de Mensagens
Server
Server
Proxy
No-SQL Database
Proxy
SQL Database
Troca de Mensagens
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Visão arquitetural
Acesso ao sistema
TOMCAT
Estrutura
Tomcat-Base
conf
server.xml
logs
webapps
bin
ROOT
myApp1
myApp2
work
common
lib
Tomcat-users.xml
JAR files
WEB-INF
web.xml
lib
JAR Files
classes
Clusters
As soluções são implementadas em Hardware ou
Software
– Hardware
• http://www.f5.com/products/availability.html
• http://www.cisco.com/en/US/products/hw/switches/ps708/ind
ex.html
Clusters
– Software
• Microsoft NLB
http://www.microsoft.com/technet/prodtechnol/windows2000s
erv/deploy/confeat/nlbovw.mspx
• Linux LVS http://www.linuxvirtualserver.org/
• Linux HA http://linux-ha.org/
Clusters
Mas e aplicações WEB? Quais os problemas?
–
–
–
–
O protocolo HTTP não tem sessão
Usamos Cookies para isso
Mas as sessões estão em um servidor
Elas precisão ser replicadas
• Banco de dados
• Arquivos
• Multicasting
Clusters
Implementando Alta Disponibilidade com o Tomcat
– Replicação de sessão
– Balanceamento de carga
Bilhetagem
Quanto custa a infra de TIC?
• Definir uma estratégia para calcular a infraestrutura de TIC
– Data bases
– Servidores
– Separação de custos
Contigência
Como usar cloud para contingência
Programar para nuvens para montar infraestruturas redundantes e seguras para nuvens
– Custo reduzido
– Planejamento a solução
– Valor entre 20% e 30%
Gerenciamento
Desafios para BD
• Como escalar os sistemas de banco de dados a
baixo custo?
• Sistemas Multi-tenant?
• Como tratar o (¨%¨&$%¨#$) do mapeamento
objeto relacional?
• Quando usar Bancos de Dados No-SQL e SQL?
Escalabilidade com baixo custo
• Redistribuir e crescer sistemas de banco de
dados dinamicamente sem a necessidade de
alteração no código da aplicação.
• Diminuição da carga no SGBD’s
• Crescimento elástico
Escalabilidade com baixo custo
• Sistema de provisionamento baseado nos
princípios de cloud computing
• Identificação da unidade de segmentação do
SGBD
• Fornecedor? Produto? Cliente?
Escalabilidade com baixo custo
Sistemas Multi-tenant
APP
APP
APP
APP
APP
Sistemas multi-tenant
• Como escalar ?
• Será que pensamos em sistema para funcionar
em 100 maquinas ?
• Como implementar ?
• Será que posso utilizar o mesmo código
desenvolvido?
Multi-tenant Futuro
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
APP
Multi-tenant – Como torna-lo em um serviço
Segurança
VM
VM
VM
VM
Hypervisor
Hardware
VM
Gerenciamento
SLA
Backup
VM
Billing
Pool
VM
Como tratar o mapeamento objeto-relacional
• As chaves estrangeiras sumiram !!
• Será mesmo?
• Porque?
• Quem disse para não utiliza-las?
Quando utilizar No-SQL e SQL
• Regra do 80-20
• Coloque as informações “valiosas” para o seu
negócio no BD relacional, as demais, no no-sql
• Bancos de dados no-sql escalam mais
facilmente, porém a que custo?
• Bancos de dados relacionais são mais custoso
para escalabilidade, porém mais confiáveis.
Certo?
TUDO ISSO
JUNTO
Arquitetura Preliminar
DATABASE
- Uso de bancos de dados diferentes para
tarefas diferentes, de forma que se possa utilizar o banco de
dados mais adequado para determinada tarefa.
MySQL para dados transacionais, utilizado por fornecer
garantia de transações.
Apache HBase, um mecaniso de armazenamento de
grandes tabelas com alta taxa capacidade de atualização
de linhas, em grande massa de dados. Utilizado em
aplicações que armazenam grande quantidade de dados e
que precisam de resposta em tempo real.
Apache Cassandra, devido a sua capacidade de indexar
grande quantidade de dados, é utilizado para buscas por
dados em mensagens;
Haystack para o armazenamento de fotos e anexos de emails;
Arquitetura Preliminar
CACHE - Criação de camadas de cache para tornar o acesso a
dados repetitivos mais rápido. As camadas de cache irão se
aplicar ao acesso a dados e ao acesso às páginas web;
Memcached (memcached.org) - sistema de cache distribuído
de memória. Usado
para armazenar dados e aliviar a
carga das consultas no banco de dados;
Varnish Cache (varnish-cache.org) - sistema de cache para
otimizar requisições de páginas, reduzindo a quantidade de
acessos as
servidor quando a mesma página é
requisitada;
DataWarehouse - Processamento e geração de dados
consolidados multidimensionais. Os dados são processados
previamente, tornando possível obter dados consolidados
com um baixo tempo de resposta. Um exemplo do uso destas
informações é indicações de amigos a serem adicionados a
rede de amizade de um usuário;
Arquitetura Preliminar
WEBSERVER - Utilização de servidores separados para
gerenciar conteúdo estático e dinâmico, em conjunto com
soluções de cache e otimizações para geração das páginas.
Servidores web de conteúdo estático serão separados dos
servidores web de conteúdo dinâmico, com isto é possível
isolar e otimizar cada tipo de servidor para o seu
propósico, como também segmentar a rede;
Utilização do Tornado Web Server nas funcionalidades que
precisam de respostas em tempo real, como os feeds.
Utilização de HipHop for PHP e seu web server para
fornecer a maioria do conteúdo we. O HipHop é utilizado
na transformação de páginas PHP em C++, podendo
aumentar o desempenho na geração de páginas e reduzir o
uso de CPU no web server em média 50%, a depender da
página;
Arquitetura Preliminar
Apache Thrift para permitir a comunicação entre software
construídos com linguagens heterogêneas, sejam estas
aplicações locais ou remotas;
Scriber para gerenciamento dos logs de diferentes origens;
Utilização de Hadoop para o acesso a grande quantidade de
dados distribuidos;
Uma solução de gerenciamento de execução de tarefas, que
podem ser distribuidas de acordo com a disponibilidade dos
trabalhadores(workers). A proposta é utilizarmos o Gearman
ou outra solução semelhante;
Social Computing Environment
Self-Deployable Application Factory
Business Domain Creator
Plugins Repository
DSL
Creation
Groovy
Interface
Template
Business
Plugins
Framewor
ks
Grails
Templates
Infrastruc.
Plugins
Self-Deployable Execution Platform
Execution Environment
Billing
Monitoring
Cloud App
Deployment
Security
Provisioni
ng
Data Cloud Platform
Business
Manag.
Não esquecer !!!
Passo-a-passo
ATIVIDADE PROPOSTA
Atividade proposta
Instale o XEN, Windows Azure ou VM-WARE
Monte uma VM Linux ou Windows com o SGBD a
sua escolha
Escreva uma serie de scripts/programas que
quando esta VM for colocada no ar ele procure
um servidor e faca a configuração de rede
Atividade proposta
Utilizando a tecnologia qualquer tecnologia que
seja implemente um gerenciador que permita a
inclusão de 20 BD em paralelo como serviço.
Atividade proposta
Consiga repetir este procedimento no mínimo três
vezes.
Cloud Computing:
Quando a infra-estrutura se torna programável
Rodrigo Assad
[email protected]
[email protected]
tiwitter.com/rassad
Rodrigo Assad
[email protected]
55 81 3425.4700
@rassad
Download