OCEL001 Comércio Eletrônico Módulo 9_4: OpenStack Prof. Charles Christian Miers e-mail: charles.miers@udesc.br
OpenStack OpenStack é um projeto de computação em nuvem criado em julho de 2010, fruto de uma iniciativa entre a RackSpace e a NASA Serviço de computação em nuvem que possa ser executado em hardware de servidores padrão Atualizações e correções em períodos curtos de tempo A partir da quinta versão do OpenStack ficou estabelecido o período de seis meses Modelo de Serviço: IaaS Modelo de implantação: variado, depende do consumidor Licença: Apache 2.0 https://www.openstack.org/ 2
OpenStack O projeto OpenStack é uma coleção de componentes de código aberto utilizados por organizações para configurar e gerenciar nuvens de computação Projeto visa construir uma comunidade Open Source com pesquisadores, desenvolvedores e empresas, que compartilham um objetivo comum: Criar uma nuvem simples de ser implementada, altamente escalável e com vários recursos avançados Versão anterior: Havana 17/Outubro/2013 Versão atual: Icehouse 17/Abril/2014 3
OpenStack: Alguns colaboradores 4
OpenStack: Alguns usuários 5
OpenStack Foundation http://www.openstack.org Comitê técnico: Responsável pela administração técnica do OpenStack Corpo diretor: Realiza a organização lógica e financeira da fundação Três níveis: Platinum, Gold e Individual Comitê de usuários: Defesa do usuário e retorno (feedback) 6
OpenStack Foundation (Cont.) 7
Arquitetura Bexar/Cactus/Diablo (2011) 8
Arquitetura Essex (2012) 9
Arquitetura Folsom (2012) 10
Arquitetura Grizzly (2012) 11
Arquitetura Havana (2013) 12
Arquitetura Havana (2013) 13
Arquitetura Icehouse (2014) 14
Icehouse (2014) +1200 contribuintes de mais de 120 organizações + 300 novos recursos + 8000 commits de código Quase 3000 Bugs Corrigidos Top empresa contribuintes: Red Hat, Canonical, Yahoo! e Samsung Horizon já está disponível em 16 idiomas 15
Icehouse (2014) Trove: Database as a Service Banco de dados em nuvem que é escalável e confiável com uma funcionalidade de provisionamento de serviços para bancos de dados relacionais e não relacionais Permite aos usuários controlar o ciclo de vida de instâncias banco de dados (BD) Inclui redimensionamento (volume + sabor) Fornece o estado Drivers para MySQL, Redis, MongoDB, Cassandra e Couchbase Recursos de backup e restauração Transmissão para OpenStack Swift Edição de configuração e versões Já é utilizado em produção em várias grandes nuvens 16
OpenStack: Resumo das versões Nome Data Componentes inclusos Austin 21/10/2010 Nova, Swift Bexar 03/02/2011 Nova, Glance, Swift Cactus 15/04/2011 Nova, Glance, Swift Diablo 22/09/2011 Nova, Glance, Swift Essex 05/04/2012 Nova, Glance, Swift, Horizon, Keystone Folsom 27/09/2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Grizzly 04/04/2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Havana 17/10/2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder, Heat, Ceilometer Icehouse 17/04/2014 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder, Heat, Ceilometer, Trove Juno 16/10/2014 + Ironic? 17
APIs Openstack Fornecem uma interface para que o mundo exterior interaja com a infraestrutura da nuvem No Openstack o gerenciamento é feito através de Web Services simplificados (Rest), utilizando uma API compatível com a da Amazon (EC2) ou também uma API própria da OpenStack 18
Componentes: OpenStack Havana 19
Componentes: OpenStack Havana 20
OpenStack Havana: APIs e interfaces Todos os serviços oferecidos pelo OpenStack podem ser configurados e manipulados por meio de APIs: Block Storage Service API: para gerenciamento de volumes e snapshots Compute API: utilizada para inicializar VMs a partir de um snapshot ou de imagens armazenadas em volumes persistentes Identity Service API: lida com tokens de autenticação que permitem o acesso à Compute API Image Service API: permite a criação, edição e exclusão de metadados associados a uma imagem, bem como o compartilhamento das imagens entre usuários Networking API: provê os serviços de redes virtuais entre dispositivos gerenciados pelo nó de computação / criação de redes e sub-redes, alocação de blocos de IP, e demais configurações das redes do Neutron Object Storage API: utilizada para gerenciar contas, contêineres e objetos do sistema Object Storage Orchestration API: provê uma linguagem modelo para orquestração dos serviços do OpenStack Telemetry API: gerencia as operações de telemetria da nuvem 21
Keystone Identity (codinome Keystone): Responsável por validar as credenciais e conceder acesso aos usuários Fornece um diretório central para usuários acessarem os serviços Openstack Atua como um sistema de autenticação comum 22
Nova Infraestrutura computacional (codinome Nova): Gerenciador da infraestrutura computacional de uma nuvem OpenStack Controla todas as necessidades de recursos computacionais, rede, autorização, e escalabilidade da nuvem 23
Nova (Cont.) É o componente mais distribuído e complicado do OpenStack Possui um grade número de processos que cooperam para transformar as requisições API dos usuários finais em máquinas virtuais 24
Nova: Funções e funcionalidades Gerenciamento do ciclo de vida das instâncias de máquinas virtuais Gerenciamento dos recursos computacionais Rede e Autorização API REST Comunicação assíncrona "eventualmente consistente" 25
Nova API Nova-API: aceita e responde as APIs do usuário final Suporta: API do Amazon EC2 API especial para que os administradores possam realizar as ações administrativas Sua própria API 26
Glance Gerenciamento de Imagens (codinome Glance): É um sistema de busca e armazenamento de imagens de máquinas virtuais 27
Glance Pode ser configurado para usar um dos seguintes serviços de armazenamento: Swift Amazon S3 diretamente Amazon S3 com Swift como intermediário Gluster 28
Glance API Aceitas chamadas de API de imagens para: Procura de imagens Armazenamento de imagens Recuperação de imagens 29
Neutron Rede de relacionamentos (Codinome Neutron): OpenStack Networking (Neutron) é um sistema de gerenciamento de redes e endereços IP do Openstack 30
Neutron-server Aceita as requisições API e as encaminha para o plugin adequado para a ação / 1 31
Horizon É uma aplicação web que fornece uma interface de acesso aos componentes do OpenStack aos usuários finais e administradores 32
Swift Estrutura de armazenamento (Codinome Swift): Usado para armazenar grande quantidade de dados de forma eficiente e segura É equivalente ao serviço S3 da Amazon É capaz de armazenar bilhões de objetos distribuídos através dos nodos 33
Swift: Funções e funcionalidades Armazenamento de um grande número de objetos Armazenamento de objetos de grande tamanho Redundância de Dados Capacidade de Arquivamento Repositório de dados para máquinas virtuais e aplicações Capacidade de streaming de mídia Armazenamento seguro de objetos Função de Backup 34
Swift Proxy Server Os clientes interagem com o Swift através de um Proxy Server ("servidor proxy") O proxy responde as requisições feitas via OpenStack API do Swift ou HTTP Aceita arquivos para upload, modificações em metadados ou criação de novos contêineres Também lida com falhas das entidades 35
Cinder Fornece dispositivos de armazenamento em nível de bloco para uso das instâncias de máquinas virtuais criadas pelo Nova Gerencia a criação, anexação e liberação dos dispositivos de bloco para os servidores Os volumes de armazenamento de bloco são integrados com o Nova e o Horizon 36
Cinder Cinder-API: Aceita requisições API Após, encaminha para o Cinder-volume Cinder-volume: Age de acordo com as requisições escrevendo ou lendo na base de arquivos do Cinder (Database) 37
Heat Serviço de orquestração e gerenciamento 38
Ceilometer Telemetria / Telemetry Coletar dados de medição para monitoramento e medição Contabilidade aprimorada no Icehouse Distribuído por todos os componentes Registrar os dados a utilização: Uso de instâncias Monitorar o desempenho: analisar o consumo de recursos Medir demanda para obter mais recursos Disponibilizar dados via API para sistemas externos E.g., faturamento 39
Ceilometer 40
Relação: Serviço x Componente OpenStack 41
Criando uma Máquina Virtual no OpenStack 42
Criando uma VM no OpenStack O usuário fornece ao Keystone as credenciais O Keystone retorna ao usuário um token 43
Criando uma VM no OpenStack Assim o usuário fornece seu token e solicita a VM, que é encaminhada para o Nova O Nova verifica o token do usuário no Keystone 44
Criando uma VM no OpenStack Se o token estiver correto, é enviado um pedido de imagem para o Glance Este verifica novamente o token no Keystone 45
Criando uma VM no OpenStack O Nova se conecta com a rede (Neutron) checando novamente o token e o usuário Após todo o processo, e se tudo correr bem, é fornecido ao usuário uma mensagem de sucesso 46
Criando uma VM no OpenStack: Processo completo 47
Arquiteturas simples de dois nós 48
Arquiteturas simples de três nós 49
TryStack É um serviço gratuito Uma maneira fácil de experimentar OpenStack Possibilidade de experimentar e testar aplicativos 50
TryStack: Acesso Acesso pela URL: http://www.trystack.org/ 51
TryStack: Acesso (Cont.) Participar do grupo TryStack no Facebook: 52
TryStack: Acesso (Cont.) Fazer o login com a sua conta do Facebook 53
TryStack: Acesso (Cont.) Uma instância estará disponível ao usuário A instância é apagada depois de 24 horas O TryStack é apenas para experimentar o OpenStack 54
TryStack: Dúvidas No grupo os próprios usuários se comunicam a fim de sanar as dúvidas Há alguns administradores que podem fornecer informações detalhadas 55
TryStack: Dúvidas (Cont.) O site principal possui um campo de perguntas frequentes 56
TryStack: Criando uma VM 57
TryStack: Criando uma instância 58
TryStack: Criando uma instância 59
TryStack: Criando uma instância 60
TryStack: Criando uma instância 61
TryStack: Criando uma instância 62
TryStack: Criando uma instância 63
TryStack: Criando uma instância 64
TryStack: Criando uma instância 65
TryStack: Criando uma instância 66
TryStack: Criando uma instância 67
TryStack: Criando uma instância 68
TryStack: Criando uma instância Tutorial: https://www.youtube.com/watch?v=epzpzxsypl4 69
70
71
Leitura recomendada Documentação oficial: http://www.openstack.org http://docs.openstack.org/ 72
Parte destas transparências foram elaboradas na Ação Computação em Nuvem, do Programa de Extensão Socialização de Software e Hardware Livre (Colméia) Colaboração: André Rover Campos, Glauber Cassiano Batista e Charles Christian Miers Este trabalho está licenciado sob uma licença Creative Commons Atribuição-Compartilhamento pela mesma licença 2.0 http://creativecommons.org/licenses/by-sa/2.0/br/ 73