Upload
trinhcong
View
216
Download
0
Embed Size (px)
Citation preview
III CBSoft – Congresso Brasileiro de
Software: Teoria e Prática
Natal-RN, 27 de setembro de 2012
* Prof. Frederico Lopes (UFRN)
* Prof. André Almeida (IFRN)
* Profa. Thais Batista (UFRN)
* Everton Cavalcante (UFRN)
* Renato Gondim (UFRN)
* Thomas Diniz (UFRN)
* Thiago Cesar (UFRN)
* Arthur Cassio (UFRN)
2 / 130
* Introdução
* Conceitos básicos sobre Computação em Nuvem
* Algumas plataformas de Computação em Nuvem
* Amazon Web Services (AWS)
* Management Console
* Criação e manipulação de máquinas virtuais
* Criação e manipulação de banco de dados no Amazon RDS
* Implantando aplicações com BeanStalk
* Armazenando arquivos com S3
* OpenStack
* Implantação do OpenStack
*Criação e manipulação de máquinas virtuais
* Conclusão
3 / 130
* Introdução
* Conceitos básicos sobre Computação em Nuvem
* Algumas plataformas de Computação em Nuvem
* Amazon Web Services (AWS)
* Management Console
* Criação e manipulação de máquinas virtuais
* Criação e manipulação de banco de dados no Amazon RDS
* Implantando aplicações com BeanStalk
* Armazenando arquivos com S3
* OpenStack
* Implantação do OpenStack
*Criação e manipulação de máquinas virtuais
* Conclusão
4 / 130
* 1970s
* Monolítico
* Mainframes
* 1980s
* Cliente-servidor
* Computadores pessoais
* 1990s
* Internet
* 2000s
* SOA e Serviços Web
* Computação móvel
* Alta diversidade de
dispositivos móveis
* Processadores potentes
* 2010s
* Computação em nuvem
5 / 130
* Era atual da Computação
Poderosos processadores
multicore
Metodologias de software
Poder da virtualização
sobre hardware
Maior largura de banda para comunicação
Proliferação de
dispositivos
Explosão de domínios de aplicações
Fonte
: Ram
am
urt
hy a
nd M
adura
i. W
ipro
Chennai 2011
6 / 130
Computação em Nuvem
modelo computacional para acesso conveniente,
sob demanda e de qualquer localização, a uma
rede compartilhada de recursos computacionais
(redes, servidores, armazenamento, aplicativos e
serviços) que possam ser prontamente
disponibilizados como serviços e acessados com um
esforço mínimo de gestão ou de interação com o
provedor de serviços
P. Mell and T. Grance (2011) The NIST Definition of Cloud Computing. NIST, EUA.
7 / 130
Computação em Nuvem
A nuvem é um grande reservatório de recursos virtualizados
facilmente utilizáveis e acessíveis (como hardware, plataformas
de desenvolvimento e/ou serviços). Esses recursos podem ser
dinamicamente reconfigurados para ajustar a carga (escala)
variável do sistema, permitindo também um uso ótimo dos
recursos. Tal reservatório é geralmente explorado por um
modelo pay-per-use no qual as garantias são oferecidas por um
Provedor de Infraestrutura por meio de SLAs (Service Level
Agreement - Acordo de Nível de Serviço)
L.M. Vaquero et al., “A break in the clouds: towards a cloud definition”,
ACM SIGCOMM Computer Communication Review, 2008
8 / 130
* Google Docs/Drive
Documentos, planilhas e apresentações sem precisar
instalar software, acessados via browser (pode ter
computador de baixo custo)
9 / 130
* Google Docs/Drive
* Edição de documentos,
criação de pastas, etc.
* Compartilhamento on-line
* Acesso via web
* Atualização em tempo real
10 / 130
* O que há de novo?
*Modelo de aquisição
* Baseado na aquisição de serviços
*Modelo de negócios
* Pay-per-use
*Modelo de acesso
* Qualquer dispositivo através da Internet
*Modelo técnico
* Escalabilidade, elasticidade, dinamicidade, ...
11 / 130
* O usuário não precisa ter o hardware, ele aluga da
nuvem
* Consumo de recursos realizado através de serviços
* Armazenamento
* Processamento
* ...
* Necessidade de um modelo de gestão e
comercialização de serviços
12 / 130
* Quebra de paradigma
recursos
computacionais
proprietários
recursos
computacionais
em outro local
13 / 130
* Datacenter
14 / 130
* Apresentar:
*Conceitos básicos de Computação em Nuvem
*Detalhes de uso de serviços das plataformas
* Amazon Web Services (AWS) – nuvem pública
* OpenStack – nuvem privada
* Relação com o Minicurso 8
* Foco na implantação de uma aplicação real em
diferentes plataformas de nuvem
15 / 130
* Introdução
* Conceitos básicos sobre Computação em Nuvem
* Algumas plataformas de Computação em Nuvem
* Amazon Web Services (AWS)
* Management Console
* Criação e manipulação de máquinas virtuais
* Criação e manipulação de banco de dados no Amazon RDS
* Implantando aplicações com o BeanStalk
* Armazenamento de arquivos no Amazon S3
* OpenStack
* Implantação do OpenStack
*Criação e manipulação de máquinas virtuais
* Conclusão
16 / 130
* Características essenciais (NIST)
* Serviço sob demanda
* Consumidor deve provisionar os recursos de
computação automaticamente e de acordo com a
necessidade
*Amplo acesso à rede
* Recursos disponíveis através da rede
* Uso a partir de diferentes dispositivos
(PC, tablets, smartphone, etc.)
17 / 130
* Características essenciais (NIST)
*Agrupamento de recursos
* Recursos agrupados e dinamicamente atribuídos para
atender múltiplos consumidores
* Serviço mensurado
* Recursos controlados, otimizados
* Transparência para fornecedor e consumidor
18 / 130
* Outras características
* Elasticidade rápida
* Recursos podem ser provisionados e liberados
elasticamente, de acordo com a demanda
up- and down-scaling
19 / 130
* Aspectos econômicos
*Redução de custos
* Menos custos com hardware, software, técnicos, ...
*Pay-per-use
* Cliente paga pelo que usa
* Semelhante às nossas contas de água, luz, e telefone
*Meio ambiente
* Menor consumo de energia
* Menos hardware subutilizado
20 / 130
* Modalidades de serviços
* IaaS – Infrastructure as a Service
*PaaS – Platform as a Service
* SaaS – Software as a Service
Fonte: Ibm.com
Fonte: Ibm.com
21 / 130
* Modalidades de serviços
* IaaS – Infrastructure as a Service
* VMs, rede, armazenamento, etc.
* Virtualização
* Elasticidade e balanceamento de carga
* Cliente detém controle dos recursos
* Ex.: AWS, VirtualBox, VMWare, OpenStack, ...
Fonte: Ibm.com
22 / 130
* Modalidades de serviços
*PaaS – Platform as a Service
* Controle sobre aplicações instaladas
* Servidores de aplicação, SGBDs, etc.
* Clientes usam linguagens e
ferramentas proprietárias
* Aplicações dependentes de plataforma
* Ex.: Google App Engine (GAE),
Azure, Facebook platform
Fonte: Ibm.com
23 / 130
* Modalidades de serviços
* SaaS – Software as a Service
* Alto nível de abstração
* Fornece aplicações e não recursos
computacionais
* Sem gerência e controle da infraestrutura da nuvem (redes, VMs, SOs, etc.)
* Cliente não precisa instalar e administrar software
* Ex.:
*Genéricos: Dropbox, Google Calendar, Yahoo Mail, Gmail, ...
* Coorporativos: Salesforce.com, Sugar CRM, ...
Fonte: Ibm.com
24 / 130
25 / 130
* Modalidades de instalação
*Nuvem privada
*Nuvem pública
*Nuvem comunitária
*Nuvem híbrida
Fonte: Ibm.com
26 / 130
* Nuvem Privada
*Uso exclusivo de uma
organização
* Nuvem Pública
*Disponibilizada
livremente e acessada
por qualquer cliente
Fonte: Ibm.com
27 / 130
* Nuvem Comunitária
*Compartilhamento de uma
nuvem entre diversas
empresas
* Comunidade específica
* Ex: Uma nuvem do governo
federal pode ser compartilhada
entre os ministérios
Fonte: cerch.org
28 / 130
* Nuvem Híbrida
*Composição de duas ou
mais nuvens
* Públicas e/ou privadas
e/ou comunitárias
Fonte: Ibm.com
29 / 130
* Objetivos similares
* Redução de custos
* Aumento de flexibilidade e confiabilidade via uso
de hardware hospedado por terceiros
* Distinções
* Alocação de recursos
* Foco
* Modelo de programação
* Segurança
30 / 130
GRID NUVEM
Distribuição uniforme de
recursos
Recursos alocados sob
demanda
Foco na comunidade científica Foco mais comercial
Grids em geral usam o modelo
de programação em lotes
(batch)
Baseado em serviços
Segurança baseada no
protocolo GSI
(Grid Security Infrastructure)
Segurança sem modelo
definido
31 / 130
Fonte
: The F
utu
re o
f Clo
ud C
om
puti
ng.
Technic
al re
port
.
Info
rmati
on,
Socie
ty a
nd M
edia
Euro
pean C
om
mis
sion
32 / 130
* Introdução
* Conceitos básicos sobre Computação em Nuvem
* Algumas plataformas de Computação em Nuvem
* Amazon Web Services (AWS)
* Management Console
* Criação e manipulação de máquinas virtuais
* Criação e manipulação de banco de dados no Amazon RDS
* Implantando Aplicações com BeanStalk
* Armazenamento de arquivos no Amazon S3
* OpenStack
* Implantação do OpenStack
*Criação e manipulação de máquinas virtuais
* Conclusão
33 / 130
34 / 130
35 / 130
* A Amazon foi pioneira da
Computação em Nuvem, em 2006
* A empresa contava com uma grandiosa
infraestrutura para atender a períodos sazonais
como o Natal, infraestrutura essa que ficava ociosa
nos outros meses
* Iniciou os serviços de Computação em Nuvem para
alugar o parque de hardware ocioso:
* S3 (Simple Storage Service) – armazenamento de arquivos
* EC2 (Elastic Compute Cloud) – máquinas virtuais em Linux
36 / 130
* Acessar aws.amazon.com
* Clicar em Sign UP e seguir as instruções de
cadastramento
* Para cadastramento é necessário fornecer
número de cartão internacional
* O usuário é cobrado apenas pelo que utiliza
* Ao final o usuário receberá uma ligação
telefônica para finalizar o cadastramento
37 / 130
* Serviços de processamento
*Amazon EC2
* Capacidade Computacional
*MapReduce
* Processamento intensivo (Data Mining, Indexing,
Machine Learning)
*Amazon Elastic Load Balancing
* Balanceamento personalizado
38 / 130
* Serviços de bancos de dados
*Amazon RDS
* Banco de dados relacional (SQL Server, Oracle e
MySQL)
*Amazon DynamoDB e Amazon SimpleDB
* Banco de dados NoSQL (não relacional)
*Amazon ElastiCache
* Gerenciamento de memória do tipo cache em nuvem
39 / 130
* Implantação e gerenciamento
*Amazon Identity and Access Management (IAM)
* Gerenciamento de acesso e identidades
*Amazon CloudWatch
* Monitoramento personalizável de recursos de nuvem
*Amazon BeanStalk
* Implantação de aplicações em nuvem
*Amazon CloudFormation
* Configuração de recursos AWS para serem oferecidos
40 / 130
* Mais alguns serviços:
*Rede
* Virtual Private Cloud (VPC) – Criação de infraestrutura para uso em termos de nuvem privada
* Route 53 - DNS
*Armazenamento
* Amazon S3
* Serviços de aplicação
* Amazon SWF – uso de workflows
* Amazon SES – envio de e-mails
41 / 130
* Cada serviço possui sua própria tabela de
custo, que podem variar, de tráfego de
acesso, horas de instância, número de
implantações
* Para novos usuários a AWS criou a Free Tier,
que permite o uso gratuito de alguns serviços,
com limitações
*Detalhes: http://aws.amazon.com/free/
42 / 130
* Implantar o Joomla!
* Criar máquina no Amazon EC2 para instalação
* Configurar acesso a banco de dados
* Realizar a implantação da aplicação
43 / 130
* Software para gerenciamento de conteúdo
* Escrito em PHP
* Disponível em:
http://www.joomla.org/download.html
* Versão instalada: 2.5.6
44 / 130
* O Amazon EC2 utiliza o conceito de imagens:
* na imagem definimos o sistema operacional e o
software que pode vir pré-instalado
* O usuário deve escolher qual o tipo de imagem
deseja criar (algumas tem custo de utilização)
* Exemplos
* Lamp Stack – Imagem com infraestrutura para
desenvolvimento de aplicações PHP
* https://aws.amazon.com/marketplace/pp/B007IX7AEG/ref
=brs_res_product_title
45 / 130
* Para consultar os preços e configurações de
imagens disponíveis, acessar o AWS
Marktplace
* http://aws.amazon.com/marketplace
* Iremos utilizar a instância básica oferecida
pela Amazon, sem custo de utilização da
imagem
46 / 130
* Para acessar as máquinas criadas é necessário
definir um par de chaves para acesso.
*Par de chaves (pública e privada) que permitem
realizar a autenticação do usuário ao acessar a
máquina virtual (instância)
* Definição do par de chaves de acesso:
*Acessar o EC2 Console
* Escolher a opção Key Pairs -> Create Key Pair
* Será iniciado o download da chave de acesso
47 / 130
48 / 130
* Região
* Define em qual região será implantado a máquina,
onde os preços variam de acordo com a região
* Escolheremos a região US EastVirginia
* Amazon disponibilizou a região São Paulo, porém
possui preços mais altos do que os praticados nos
estados americanos
* EC2 Type
* Escolheremos o tipo mais básico (t1.micro)
* Usaremos a chave criada
49 / 130
* EC2 Management Console
DNS público
50 / 130
* Conectar-se à instância usando SSH
*Comando:
* ssh –i <chave>.pem ec2-user@<dnspublico>
*Para conectar via browser, indicar o local onde
está armazenada a chave
*A chave precisa ter as permissões restringidas,
para não permitir acesso indevido
* chmod 400 <chave>.pem
51 / 130
* Ao conectarmos iremos instalar os pacotes
necessários para nossa aplicação funcionar
* Comandos
* sudo yum install httpd
* sudo yum install php php-mysql php-xml
* sudo yum install mysql-server mysql
* sudo apachectl restart
52 / 130
* Copiar o arquivo do Joomla para a pasta
/var/www/html
* Descompactar na pasta joomla
* Para acessar pelo browser:
* use o DNS público da instância criada
* Antes de proceder com a instalação, deve-se
criar o banco de dados
53 / 130
* Amazon RDS
* Serviço para armazenamento de banco de dados
relacional
*Como o Amazon EC2, preço cobrado por hora
DB Instance Class (On-Demand)
Micro DB Instance $0.025
Small DB Instance $0.105
Large DB Instance $0.415
Extra Large DB Instance $0.830
High-Memory DB Instance Class
Extra Large DB Instance $0.585
Double Extra Large DB Instance $1.170
Quadruple Extra Large DB Instance $2.340
54 / 130
* Amazon RDS
*Antes de criar o banco de dados:
* criar um grupo de segurança, que define a política de
acesso ao banco de dados
* opções disponíveis para permissão:
* (1) estabelecimento faixa de IP com acesso;
* (2) associar algum grupo de segurança do EC2, liberando as
instâncias para acesso
* Para que o Joomla acesse o banco de dados,
utilizaremos o grupo de segurança do EC2
55 / 130
* Amazon RDS
*Acessar Services->Database->RDS->Security
Group
* Security Group->Create DB Security Group
*Em seguida podemos aplicar as regras de acesso
* Liberar por faixa de IP
* Associar grupo de segurança do EC2
56 / 130
57 / 130
* Amazon RDS
*Criar uma instância
* DB Instances -> Launch DB Instance
*Preencher as seguintes informações:
* Tipo de instância
* escolher micro para evitar cobranças altas
* Espaço alocado
* Usuário e senha de acesso ao banco de dados
58 / 130
59 / 130
60 / 130
* Ao final do processo é criada uma instância com o
banco de dados
* Para conectar ao banco, usar o endpoint fornecido
* Para continuar a instalação do Joomla:
* acessar: <dnsinstancia>/joomla
* os passos para instalação do Joomla são explicados pelo
assistente de instalação
* Informar na seção de banco de dados, as informações
para conexão (endereço do banco de dados, usuário e
senha)
61 / 130
* Amazon Elastic BeanStalk
*Permite a implantação direta de aplicações,
sem a necessidade de configuração de
instâncias do Amazon EC2
* Suporte atual para implantação de aplicações
Java, PHP e Python
*Processo para implantar o Joomla! pelo Amazon
Elastic BeanStalk
62 / 130
* BeanStalk
*Possui processo diferenciado de cobrança em
comparação com EC2
*Utilizável pela faixa gratuita
63 / 130
* BeanStalk
* Services -> Deployment and Management ->
BeanStalk
* Upload da sua aplicação
(PHP em formato .zip, em Java .war)
* Ao escolher a aplicação, selecionar o local
onde está arquivo compactado do Joomla
64 / 130
65 / 130
66 / 130
* BeanStalk
*Definir o tipo de instância que a aplicação irá
rodar e a chave de acesso, caso se deseje
acessar a instância
*Após concluir o assistente, a instância EC2 é
carregada, tornando-se possível o acesso a
aplicação implantada
*No caso de aplicações Java, por exemplo,
implantamos o arquivo WAR
67 / 130
* BeanStalk
*Uma vez que a aplicação foi implantada
podemos atualizar a versão da aplicação e
controlar o ambiente no qual ela está sendo
executada
*Podemos criar um domínio próprio e
redirecionar para aplicação implantada
68 / 130
* Serviço de armazenamento
* Através do uso da API, podemos utilizar o espaço de armazenamento
* Permite arquivos de até 5 terabytes
* Uso de buckets
*Buckets representam unidades de armazenamento, para efeito de gerenciamento dos arquivos
* Define regras de acesso para upload e download dos arquivos armazenados
69 / 130
* Os preços estão vinculados ao espaço
utilizado, número de requisições e
transferência de dados
* Para aplicações que não possui alta demanda,
a faixa livre cobre os usos
* Mais detalhes: http://aws.amazon.com/s3/
70 / 130
* Acesso: Services -> Storage -> S3
71 / 130
72 / 130
73 / 117
* Pioneira na oferta de recursos computacionais
no modelo de cloud
* Grande diversidade de serviços
* Acesso unificado através de serviços web ou
interfaces de fácil manipulação
* Região São Paulo disponibilidade
recentemente
* Em constante atualização
* Introdução
* Conceitos básicos sobre Computação em Nuvem
* Algumas plataformas de Computação em Nuvem
* Amazon Web Services (AWS)
* Management Console
* Criação e manipulação de máquinas virtuais
* Criação e manipulação de banco de dados no Amazon RDS
* Implantando Aplicações com BeanStalk
* Armazenamento de arquivos no Amazon S3
* OpenStack
* Implantação do OpenStack
*Criação e manipulação de máquinas virtuais
* Conclusão
74 / 130
75 / 130
* Uma coleção de projetos de software open-
source que as empresas/serviços provedores de
nuvens podem utilizar para implantar sua nuvem
de computação e/ou de armazenamento
* Inicialmente composto por partes do projeto Cloud
Files da Rackspace (armazenamento) e da plataforma
Nebula da NASA (computação).
76 / 130
* Em julho de 2010, a Rackspace e a NASA anunciaram
a criação do projeto OpenStack
* Em outubro de 2010 foi disponibilizado o primeiro
“Code Release” com o nome de Austin
77 / 130
Disponível em: http://www.openstack.org/software/
78 / 130
79 / 130
NOVA API
... ...
* Servidor de APIs: fornece uma
interface de interação com a
infraestrutura da nuvem.
* O gerenciamento é realizado por Web
Services compatíveis com EC2 da Amazon e
OpenStack API.
80 / 130
* É a principal interface para o serviço
Glance
* É responsável por encaminhar solicitações
de clientes para registros ou para as stores
S3, Swift e HTTP
Glance API
... ...
81 / 130
* Armazena, processa e recupera
metadados sobre as imagens
(tamanho, tipo, etc.)
GLANCE-
REGISTRY
82 / 130
* Faz comunicação para upload
de imagens em serviços de
armazenamento (S3, Swift)
STORE
ADAPTER
83 / 130
* Escalonador: realiza o
mapeamento das chamadas
feitas às APIs aos componentes
apropriados do OpenStack
* Distribuição e balanceamento de carga.
NOVA SCHEDULER
84 / 130
* Fila de mensagens: faz a
comunicação entres os
componentes (e.g. API, VOLUME,
COMPUTE, etc.) via AMQP
(Advanced Message Queue Protocol)
* Utiliza comunicação assíncrona, evitando com
que as pontas da comunicação fiquem
bloqueadas por muito tempo
QUEUE
85 / 130
* Componente responsável pelo
gerenciamento do ciclo de vida
das instâncias de máquinas virtuais
* Recebem os pedidos de gerenciamento pelo AMQP
e as operações correspondentes são executadas
* Utiliza algoritmo de escalonamento
NOVA COMPUTE
86 / 130
* Volume: são utilizados para a
gestão de volumes das instâncias
baseados em Logical Virtual
Manager (LVM)
* Operações:
* Criação
* Deleção
* Conexão
* Desconexão
NOVA VOLUME
87 / 130
* Armazenamento de objetos:
repositório de objeto binário
grande
* Responsável pelo armazenamento,
recuperação e deleção dos objetos
OBJECT STORE
88 / 130
* Controlador de rede:
responsável pela configurações de
rede
* Operações realizadas pelo
controlador:
* Atribuir de endereços IP
* Configurar de VLANs para projetos
* Implementar de grupos de segurança e redes para
configuração de nós
NOVA NETWORK
89 / 130
90 / 130
* Controlador estrutural de computação
que gerencia todas as atividades
necessárias para suportar o ciclo de vida de
instâncias dentro da nuvem OpenStack
Componente Módulo
API Server nova-api
Message Queue rabbit-mq server
Compute Workers nova-compute
Network Controller nova-network
Volume Worker nova-volume
Scheduler nova-scheduler
91 / 130
* Forma distribuída
* Armazenamento virtual de objetos
* Similar ao Amazon S3
*Armazenamento de um grande número de
objetos
*Redundância de Dados
*Capacidade de streaming de mídia
* Escalável
92 / 130
* Responsável pelo gerenciamento
de volumes do tipo LVM
* Funcionamento semelhante a um
“HD Externo”
93 / 130
* Políticas de identidade e acesso
para todos os componentes no OpenStack
* Elementos do Keystone:
Serviço Conceito
Endpoints URL dedicada a cada serviço
Regions Define uma localização física da Nuvem
User Usuário autenticado
Services Qualquer componente ligado via keystone
Role Regras de Acesso
Tenant Associa EndPoints, Roles e usuários
KEYSTONE
94 / 130
* Forma distribuída
armazenamento virtual de objetos
* Similar ao Amazon S3
*Armazenamento de um grande número de
objetos
*Redundância de Dados
*Capacidade de streaming de mídia
* Escalável
SWIFT STORAGE
95 / 130
* Interface Web de Gerenciamento
HORIZON
96 / 130
Desenvolvedor
Dashboard
WinScp
Putty
Nuvem
Instância da Aplicação
Instância do Banco
97 / 130
* Abordagens
* Single-host
* Multi-host
* Virtualização vs Físico
* Virtualização
* Nativo: Xen, VMware
* Modelo híbrido: VirtualBox, Vmware player, Parallels
* Físico
* Servidor físico com duas interfaces de rede
98 / 130
* Virtualizado no VirtualBox
*Criar 3 interfaces
* Ex.: Eth0, Eth1 e Eth2
* Eth0: NAT 1:1 com o VirtualBox
* Eth1: rede pública
* Eth2: rede privada
* Se optarmos pelo modelo Físico
*Necessita de 2 interfaces
* Ex.: Eth0 e Eth1
99 / 130
* Atualizando repositório do apt-get
* add-apt-repository ppa:openstack-core/trunk && apt-get update
* Instalando pacotes necessários
* apt-get install -y [pacotes] mysql-server mysql-client novnc memcached python-memcache qemu unzip euca2ools python-dateutil python-mysqldb rabbitmq-server libvirt-bin tgt open-iscsi open-iscsi-utils apache2 libapache2-mod-wsgi ntp
100 / 130
Pacote Função
mysql (server, client), Persistir dados do Openstack
novnc Cliente VNC usado no Dashboard
memcached,pyton-memcached,
python-dateutil, python-mysqldb
Pacotes para suporte ao Pyton. O
Openstack foi escrito em Pyton.
qemu Emulador usado caso não tenha um
hypervisor instalado.
euca2ools Modulo que usa a api EC2 como
interface com os serviços Openstack.
libvirt-bin, tgt, apache2,
libapache2-mod-wsgi, ntp
Softwares de suporte a serviços gerais*
open-iscsi, open-iscsi-utils Auxiliam na criação de volumes
101 / 130
* Instalando pacotes necessários
Pacotes Função
nova-api Interface de interação com a nuvem
nova-scheduler Escalonador de mensagens
nova-objectstore Prover Compatibilidade com api S3(img)
nova-network Responsável por controlar a rede
nova-compute Gerenciar ciclo de vida das instancias
nova-consoleauth, nova-console Necessário para configurar VNC (noVNC)
nova-volume Gerenciar os volumes
nova-common python-nova
python-novaclient
Necessário para instalação dos demais
scripts
102 / 130
* Editar arquivos
* Informando por exemplo tipo de virtualização(qemu ou kvm), tamanho da rede, as interfaces pública e privada, usuário e senha do mysql, ip do glance entre outros.
* Configurando nova-api: /etc/nova/nova.conf
* Informando o tipo de virtualização(qemu ou kvm)
* Configurando nova-compute:
/etc/nova/nova-compute.conf
* Informando o IP e o nome do inquilino do serviço: /etc/nova/api-paste.ini
103 / 130
* Instalando pacotes necessários:
* apt-get install -y glance glance-api glance-client
glance-common glance-registry python-glance
Pacote Função
glance Gerencia imagens
glance-api api de interação com o glance
glance-common
glance-registry
python-glance
Pacotes de suporte ao serviço glance
104 / 130
* Editar os arquivos: * /etc/glance/glance-api.conf
* /etc/glance/glance-api-paste.ini
* /etc/glance/glance-cache.conf
* /etc/glance/glance-cache-paste.ini
* /etc/glance/glance-registry.conf
* /etc/glance/glance-registry-paste.ini
* /etc/glance/glance-scrubber.conf
* /etc/glance/glance-scrubber-paste.ini
* Informando administrador da nuvem, usuário e senha. O registry-paste tem que estar de acordo com o api-paste. Adicionar a conexão mysql com o glance entre outros.
105 / 130
* apt-get install -y keystone python-keystone
python-keystoneclient
Pacote Função
keystone Autenticação e políticas de acesso
python-keystone
python-keystoneclient
Pacotes de configuração com o
Python
106 / 130
* Editar arquivo:
*/etc/keystone/keystone.conf
* Informando os usuários e o que eles
estão autorizados a fazer.
107 / 130
* apt-get install -y openstack-dashboard
108 / 130
* Editar arquivo
* Adequando a informação da variável
Cache_backend com a do arquivo
memcached.conf
* /etc/openstack-dashboard/local_settings.py
109 / 130
* Obtendo imagens:
* wget http://uec-
images.ubuntu.com/releases/NOME/release/DISTRI
BUIÇÃO-VERSÃO-server-cloudimg-
ARQUITETURA.tar.gz
* wget http://uec-
images.ubuntu.com/releases/12.04/release/ubuntu
-12.04-server-cloudimg-amd64-disk1.img
* Visualizar lista de imagens carregadas
* nova image-list
110 / 130
* Eliminando as variáveis
*unset SERVICE_TOKEN
*unset SERVICE_ENDPOINT
* Definindo variáveis do OpenStack
* Exportando as credenciais e acesso para EC2
* Executando o euca2ools
*Ex.: euca-describe-images
111 / 130
* Solução para armazenamento de objetos
* /etc/swift/swift.conf
* Criar arquivo
* /etc/swift/proxy-server.conf
* Criação de conta, contêineres e objetos
* swift-ring-builder (account.*, container.*,
object.* )
* Iniciar o servidor proxy
112 / 130
* Acessar via browser:
http://[IP_SERVER]/
113 / 130
* Criando keypair: acessar o dashboard na
parte de keypair e clicar “add new keypair”.
114 / 130
* Acessar menu [Images]/[SnapShots].
* Clicar no link [launch] para iniciar a execução
da instância.
115 / 130
* Preencher os campos
Server Name e User Data
* Selecionar o Flavor e a
Key Name
* Selecionar o Security
Groups
* Clicar em Launch
Instance
116 / 130
* Acessar o menu Instances.
* Anotar o [ip da instância].
117 / 130
* Utilizando o Putty (Cliente SSH baseado em
linha de comando), acessar o nó controlador
da nuvem
118 / 130
* Copiar o arquivo .pem para o nó controlador
(usar o WinSCP).
* Executar o comando ssh -i [Arquivo].pem
ubuntu@[IP_INSTANCIA], acessando a
instância.
119 / 130
* Quando a instância é iniciada ela recebe um
ip da faixa privada da nuvem do OpenStack
* Para que ela seja acessada por um ip da faixa
pública faz-se necessário associá-la a um
Floating IP
120 / 130
* Acessar o Dashboard
* Clicar no menu Access & Security
121 / 130
* Clicar no link Associate to instance
* Selecionar a instância
* Clicar em Associate IP
122 / 130
* O gerenciamento via dashboard está sendo
melhorado, por isso ainda há comandos
disponíveis apenas linha de comando
* A instalação/ configuração ainda não é tão trivial,
a documentação e os tutoriais estão evoluindo
* Para melhorar a escalabilidade das aplicações e
recomendado criar instancias dedicadas à certos
serviços e uso de volumes.
* Ex: ins-tom-cat, ins-mysql
123 / 130
* A cada “release” as configurações/gerenciamento
têm ficado mais simples.
* Existe a possibilidade de incluir extensões as
funcionalidades através da NOVA-API Extensions.
124 / 130
* Introdução
* Conceitos básicos sobre Computação em Nuvem
* Algumas plataformas de Computação em Nuvem
* Amazon Web Services (AWS)
* Management Console
* Criação e manipulação de máquinas virtuais
* Criação e manipulação de banco de dados no Amazon RDS
* Implantando Aplicações com BeanStalk
* Armazenamento de arquivos no Amazon S3
* OpenStack
* Implantação do OpenStack
*Criação e manipulação de máquinas virtuais
* Conclusão
125 / 130
* Algumas vantagens do uso da Computação em
Nuvem
* Usuário não se preocupa com SO e hardware usados
* Diminuição de custos
* Evita compra de servidores
* Não é necessário pagar por uma licença integral de software
* Evita contratação de técnicos para manter servidores
* Acesso fácil aos dados
* Independente da localização do cliente e dos dados
126 / 130
* Alguns desafios
* Interoperabilidade entre plataformas
*Privacidade e segurança
*Virtualização, elasticidade e balanceamento de cargas
* Legislação
* Leis diferentes entre país do cliente e país no qual a infraestrutura de nuvem está instalada
*Garagalo de conexão
* Especialmente no Brasil
127 / 130
* Neste minicurso apresentamos:
*os conceitos básicos de Computação em Nuvem
*os detalhes de utilização de serviços das
plataformas AWS e OpenStack
* apresentamos a implantação de uma nuvem OpenStack
128 / 130
129 / 130
Autor e-mail
Prof. Frederico Lopes (UFRN) [email protected]
Prof. André Almeida (IFRN) [email protected]
Profa. Thais Batista (UFRN) [email protected]
Everton Cavalcante (UFRN) [email protected]
Renato Gondim (UFRN) [email protected]
Thomas Diniz (UFRN) [email protected]
Thiago Cesar (UFRN) [email protected]
Arthur Cassio (UFRN) [email protected]
III CBSoft – Congresso Brasileiro de
Software: Teoria e Prática
Natal-RN, 27 de setembro de 2012
131