• Nenhum resultado encontrado

Desmitificando OpenStack. Filipe Fernandes S B de Matos

N/A
N/A
Protected

Academic year: 2021

Share "Desmitificando OpenStack. Filipe Fernandes S B de Matos"

Copied!
53
0
0

Texto

(1)

Filipe Fernandes S B de Matos

(2)

Objetivo

Apresentar a arquitetura da ferramenta OpenStack e descrever de forma geral seus principais componentes. Apresentar uma breve descrição sobre a API Python de interação com o OpenStack e mostrar alguns exemplos.

Eleger o módulo que mais interessa o público para posteriormente apresentá-lo de forma mais detalhada.

(3)

Prazer em conhecer,

Filipe Fernandes S B de Matos

Professor da Universidade Aberta do Brasil (UECE) Gerente de Projetos (Athomustec)

Mestre em Ciência da Computação (UECE) Tecnólogo em Telemática (IFCE)

(4)

Parte 01 Introdução

Parte 02 OpenStack - Uma Visão Geral Parte 03 OpenStack - A Arquitetura

Parte 04 OpenStack - Os Componentes

Parte 05 E o Python?

Sumário

(5)
(6)

Computação em Nuvens

Computação em Nuvens ou, simplesmente, “a Nuvem” é a entrega de recursos computacionais sob demanda, tudo desde aplicações à datacenters, usando a Internet e com pagamento baseado no uso (pay-for-use).

(7)

Computação em Nuvens

“...entrega de recursos computacionais sob demanda...”Capacidade computacional de acordo com a demanda“...usando a Internet...”

Tudo acessível via a grande rede de computadores“...modelo pay-for-use…”

Pagamento proporcional ao nível de utilização, quanto

(8)

Computação em Nuvens

Service Level Agreement (SLA):

Direitos e deveres para consumidores e provedoresPenalidades em caso de transgressão as regras

Computação é tratada como um serviço:Software como um Serviço (SaaS)Plataforma como um Serviço (PaaS)Infraestrutura como um Serviço (IaaS)

(9)

Principais tipos de serviços

(10)

Infraestrutura como um Serviço

Infraestrutura como um Serviço oferece às empresas recursos computacionais como servidores, redes, armazenamento e espaço dentro do datacenter com pagamento com base no uso (pay-per-use).

(11)

Equipamentos de hardware oferecidos como serviço:Servidores, roteadores, armazenamento...

Tudo oferecido através de máquinas virtuais (VMs):

Instância com processador, memória e interface de redeUma instância lógica do equipamento físico (Host)

Modelos de implantação de IaaS:

Modelo Público, Privado ou Híbrido

(12)

Modelo de implantação

(13)

Infraestrutura como um Serviço

Nuvens Públicas:

Desenvolvidas para serem utilizadas por terceiros

Exemplos: Amazon EC2, IBM Cloud, Microsoft Azure...Nuvens Privadas:

Desenvolvidas por empresas para utilização própriaExemplos: XEN, VMWare, OpenStack...

Nuvens Híbridas:

(14)
(15)

OpenStack

OpenStack é um sistema operacional em Nuvem que controla grandes pools de computação, armazenamento e recursos de rede ao longo de um datacenter, tudo gerenciado através de uma interface web ou de uma API.

(16)

Introdução

Ferramenta open source para gerenciamento de nuvens

Concebido inicialmente pela Rackspace Hosting e pela NASAFoca na escalabilidade do IaaS sem aumentar a complexidadePossui uma arquitetura altamente modularizada:

Cada componente gerencia um tipo de recurso da NuvemComponentes instalados em múltiplas máquinas físicas

(17)

Introdução

Suporte a múltiplos hypervisors e APIs de terceiros:Hypervisors: Xen, KVM, VMWare, Hyper-V…APIs: Amazon EC2 e Rackspace

Um dos projetos open source que mais cresce no mundo:Maior nível de contribuição do que o Linux

(18)

Introdução

(19)

Introdução

(20)

Links Interessantes

Página Oficial: https://www.openstack.org/

Fóruns para discussão: http://forums.openstack.org/Wiki: http://wiki.openstack.org/StartingPage

Documentação oficial: http://docs.openstack.org/Canais no IRC: #openstack e #openstack-dev

(21)
(22)

A Arquitetura

Designada para ser horizontalmente escalável:

Voltada para adição/remoção de servidores sob demandaImplementação simples e grande variedade de soluções

Componentes modularizados e passíveis de clusterização:Recuperação rápida de falhas e sem ponto único de falha3 tipos de serviços base: computação, rede e armazenamento

(23)

A Arquitetura

A forma de organizar os serviços é bastante dinâmica:

Tudo em uma máquina só? Distribuído entre N máquinas?Vai depender daquilo que você espera para sua nuvemComponentes segmentados em três grupos:

Controle (Control)Rede (Network)

(24)

Tipos de Componentes

Controle (Control)

Interface Web, APIs, Banco de Dados e messaging

Rede (Network)

Agentes responsáveis pela criação e isolamento das redes

Computação (Compute)

(25)

Exemplo

Suponha que tenhamos 6 máquinas “de bobeira”:Host1: 2 CPUs, 8Gb RAM, 100Gb Storage, 1 NICHost2: 2 CPUs, 2Gb RAM, 50Gb Storage, 3 NICHost3: 4 CPUs, 16Gb RAM, 500Gb Storage, 2 NICHost4: 1 CPUs, 2Gb RAM, 500Gb Storage, 1 NICHost5: 1 CPUs, 2Gb RAM, 500Gb Storage, 1 NICHost6: 1 CPUs, 2Gb RAM, 500Gb Storage, 1 NIC

(26)

Exemplo

(27)

Exemplo

Fonte: http://docs.openstack.org/juno/install-guide/install/apt/content/ch_overview.html (Editada) Identity service, Image service, Banco de Dados, Messaging, APIs, Console e Dashboard

(28)

Exemplo

Fonte: http://docs.openstack.org/juno/install-guide/install/apt/content/ch_overview.html (Editada) Redes virtuais aos clientes, roteamento, serviços de NAT, DHCP, conectividade com a rede real externa

(29)

Exemplo

Fonte: http://docs.openstack.org/juno/install-guide/install/apt/content/ch_overview.html (Editada) Executa o hypervisor KVM e hospedará VMs dos clientes/usuários

(30)

Exemplo

Fonte: http://docs.openstack.org/juno/install-guide/install/apt/content/ch_overview.html (Editada) Block Storage service, Object Storage

(31)

Atenção!

Perceba que a forma como foi organizada nossa nuvem é apenas uma sugestão, devido sua natureza modular o

OpenStack permite a instalação de múltiplos módulos em uma única máquina. Dessa forma, seria possível fazer do nó de controle um nó de storage ou colocar todos os serviços dentro do nó de computação. Basta que a máquina tenha recursos para prover os serviços!

(32)
(33)

Os Componentes

Horizon (Dashboard)Keystone (Identity)Glance (Image)Nova (Compute)Neutron (Network)Cinder (Block storage)Swift (Object Storage)Ceilometer (Telemetry)Heat (Orchestration)

(34)

Os Componentes

(35)

Horizon (Dashboard)

Interface gráfica web com o usuário/administrador

Executa as mesmas ações via API, porém graficamenteInclui todos os serviços OpenStack e alguns não oficiaisAplicação web stateless e data-less

Muitos provedores de nuvem possuem uma

(36)

Keystone (Indentity)

Componente de gerenciamento de identidade:

Autenticação do usuário e autorização de uso do serviçoArmazena catálogo de serviços e políticas de registro

Autenticação baseada em nome de usuário e senha:Usuário recebe um token com prazo de validadeAnalogia com a autenticação de um jogo onlinePossibilidade de integração com LDAP e PAM

(37)

Glance (Image)

Componente de gerenciamento de imagens:

Imagem de disco especial para inicializar uma VM

Especial? SO instalado e algumas configurações limpasA imagem especial é copiada no nó de computação:

Novas VMs utilizarão a mesma cópia para inicializarPossível criar scripts e executá-los antes do boot da VM:

(38)

Nova (Compute)

Componente de gerenciamento de instancia:

Reserva recursos computacionais junto ao hypervisorFinaliza as máquinas virtuais junto ao hypervisor

Interage diretamente com as APIs dos hypervisors:

Hypervisors? XenServer, KVM, VMware, dentre outros.Gerenciamento de key pairs para conexão SSH

(39)

Neutron (Network)

Componente de gerenciamento de rede

Arquitetura baseada em Redes Definidas por Software (SDN):Cada usuário/instuição possui uma rede virtual isoladaEstas redes podem ser conectadas via roteadores virtuaisUm roteador virtual pode se conectar a um roteador real

Usa o Open vSwitch para orquestrar a rede virtualizada:Possibilita a criação dos switches virtuais das redes

(40)

Cinder (Block Storage)

Componente de armazenamento em bloco (volume):

Um disco, ou parte dele, é designado à máquina virtualTal disco pode ser montado/removido junto à VM

O usuário é o “responsável” por gerenciar seus arquivos:Usuário cria o sistema de arquivos e o trabalha com eleUtiliza-se do LVM (padrão) para gerenciamento de

partições

(41)

Swift (Object Storage)

Componente de gerenciamento de objetos:

Objetos? Fotos, zips, multimídia, texto, imagens...

Usuário responsável por enviar o objeto a ser armazenado:O Swift cuida de todo o resto e faz “a mágica acontecer”Automaticamente faz réplicas dos objetos armazenados

Objetos são indexados a partir de códigos hash

(42)

Cinder Vs. Swift

(43)

Ceilometer (Telemetry)

Componente de monitoramento do sistema:

Originalmente concebido para tarifação do usuárioColeta períodica de métricas dos recursos do sistema

Tais coletas podem ser utilizadas para alarmes no sistema:Limiar atingido, alarme é engatilhado para o OpenStackOferece suporte a Notificações e RPCs

(44)

Heat (Orchestration)

Componente responsável pela orquestração de instânciasUm template define quem (e o que) será lançado:

Definida a ordem de lançamento de cada instânciaDefinidas todas as depêndencias por instância

Definidos dados a serem trocadas entre as instânciasSemelhante ao papel de um maestro:

Não toca nenhum instrumento, mas é o responsável por

(45)

Existem outros módulos?

Trove* (Database)Zaqar* (Messaging)Barbican* (Key Management)Designate* (DNS)Ironic (Provisioning)Sahara* (Elastic Map)

(46)
(47)

Clientes OpenStack

Projecto que inclui uma CLI e APIs de desenvolvimentoLinguagens Suportadas: C/C++, JAVA, ,NET, GO,

Python...

APIs desenvolvidas: Keystone, Glance, Nova, Neutron e SwiftAPIs em desenvolvimento: Cinder, Ceilometer, Heat

APIs com suporte ao Python 2.6 e 2.7:

Exceto a OpenStack (CLI) que suporta o Python 3.4Executa as mesmas ações da interface web e da CLI

(48)

Script de Exemplo

Keystone

from keystoneclient.v2_0 import client

kclient = client.Client(username=’user’, password=’pass’,

tenant_name=’tenant’,auth_url=’http://0.0.0.0:5000/v2.0’)

kclient.users.create(name=’Filipe’, password=’123’, email=’lipe@a.com’)

i_am = kclient.users.find(name=’Filipe’) kclient.users.delete(i_am)

(49)

Script de Exemplo

Nova

from novaclient.v1_1 import client

nvclient = client.Client(username=’my_user’, api_key=’my_pass’,

project_id=’my_tenant’,auth_url=’http://0.0.0.0:5000/v2.0’)

my_image = nvclient.images.find(name=’Ubuntu-15.10’)

nvclient.images.delete(my_image) nvclient.flavors.list()

(50)

Script de Exemplo

Neutron

from neutronclient.v2_0 import client

neclient = client.Client(username=’user’, password=’pass’,

tenant_name=’tenant’,auth_url=’http://10.129.4.227:35357/v2.0’) new_net = {‘network’:{‘name’:’MY_NET’, ‘admin_state_up’: True}}

neclient.create_network(body=new_net) neclient.list_networks()

(51)

Script de Exemplo

Swift

from swiftclient import client

sclient = client.Connection(user=’user’, key=’pass’, auth_version=’2.0’

tenant_name=’tenant’,auth_url=’http://0.0.0.0:35357/v2.0’)

objects = sclient.get_container(‘my_container’)[1]

content = sclient.get_object(‘my_container’, ‘my_object’)

(52)

#ficaadica :D

(53)

Qual o próximo passo?

Horizon (Dashboard)Keystone (Identity)Glance (Image)Nova (Compute)Neutron (Network)Cinder (Block storage)Swift (Object Storage)Ceilometer (Telemetry)Heat (Orchestration)

Referências

Documentos relacionados

2001, foi dada ênfase apenas ao alongamento dos músculos isquiotibiais, enquanto o tratamento por meio da RPG alongou todos os músculos da cadeia posterior e, por meio do

jogo marcado pe- las excelentes exibições dos guarda-redes João Gonçalves e António Madaleno, no terreno da concretização desta- golos de de juvenis iniciaram

obediência, em grego hypakoe , e cinco vezes o verbo obedecer. A palavra é formada da palavra akoe , que significa audição, escuta, atenção, como em latim oboedire, obedecer,

Mário Jabur Filho, conforme dispõe a legislação vigente, comunica que estarão abertas as inscrições para seleção dos candidatos para preenchimento de vaga para Médico

Exposição no Átrio do Auditório Municipal de Mesão Frio Exposição dos trabalhos feitos nas Oficinas de Origamis para alunos, promovida no dia 13 de Abril de 2011 na

Observe o gráfico gerou os dados conformes as chaves, onde neste exemplo tenho 16 filiais onde todos vendem os 3 materiais, para cada matéria contém os valores (volume)

Diante das consequências provocadas pelas intempé- ries climáticas sobre a oferta de cana-de-açúcar para a indústria, a tendência natural é que a produção seja inferior

quantificar os benefícios para efeito de remunerar o seu gerador. A aprovação da idéia e a autorização para sua implementação dependem da alta administração,