Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fundamentos da Computação em Nuvem

Fundamentos da Computação em Nuvem

Flávio R. C. Sousa

April 23, 2013
Tweet

More Decks by Flávio R. C. Sousa

Other Decks in Technology

Transcript

  1. Universidade Federal do Ceará Campus de Quixadá Fundamentos da Computação

    em Nuvem Disciplina Computação em Nuvem Flávio R. C. Sousa [email protected] @flaviosousa www.es.ufc.br/~flavio
  2. Computação em nuvem  Evolução dos serviços e produtos de

    TI sob demanda  Utility Computing  Objetivo da Utility Computing  Fornecer os componentes básicos como: Armazenamento, Processamento e Largura de banda de uma rede como uma mercadoria Baseada em provedores especializados com um baixo custo unitário 5
  3. Utility Computing  Os usuários não precisam se preocupar: 

    Escalabilidade  A capacidade fornecida é praticamente infinita  Disponibilidade  Acesso a qualquer momento  Desempenho  Tempos de resposta são quase constantes  Backups  Responsabilidade do provedor 6
  4. Utility Computing  Pagamento pela utilização  Sem investimentos iniciais

    em TI  O custo cresce de forma linear e previsível com o uso  Dependendo do modelo do negócio  O provedor de serviços pode repassar o custo de armazenagem, computação e de rede para os usuários finais  Já que é realizado a contabilização do uso 7
  5. Utility Computing  Suponha que você tenha um requisito para

    operar 100 servidores por três anos  Opções: alugar ou comprar?  Alugar  0.40 dólares por instância/horas  Cálculo:  100 servidores * $ 0.40 por instância/horas * 3 anos * 8760 horas/ano = $ 1.051.200 8
  6. Utility Computing  Comprar  Custo para comprar cada servidor:

    $ 750 dólares  Dois funcionários para administrar os servidores pagando 100.000 dólares por ano.  Os servidores exigem 150 watts cada e o custo da eletricidade é de 0.10 por quilowatt-hora  O custo anual para operar os 100 servidores é de 13.140 dólares 9
  7. Utility Computing  Comprar e “administrar”:  Cálculo  100

    servidores * $ 750 + 3 anos * $ 13.140 eletricidade/ano + 3 anos * 2 funcionários *  $ 100.000 salários/ano = $ 714.420  Comparativo  Alugar: $ 1.051.200  Comprar: $ 714.420 10
  8. Utility Computing  Comparativo  Os números apresentados são apenas

    estimativas  Nem todos os custos foram considerados  Se a utilização for de 100%  Melhor comprar  Se a utilização for de 68% ou menor  Melhor alugar  Conclusão  Modelo de Utility Computing é preferível em muitos casos 11
  9. Cluster  Aglomerado de máquinas conectadas em uma rede local

    ou dedicadas  Nível de usuário  Políticas de utilização  Gerenciadores de recursos  Interface com o usuário  Nível de administração  Gerência de hardware  Gerência de software 13
  10. Grade Computacional (Grid)  Uma plataforma para execução de aplicações

    paralelas  Amplamente distribuída, Heterogênea e Compartilhada, sem controle central  Com múltiplos domínios administrativos  Permite a criação de supercomputadores virtuais com recursos já existentes  Organização virtual que permite a aglomeração de recursos que estão distantes geograficamente ou não  Recursos podem ser: clock de CPU, memória, disco, máquinas, dados, etc 14
  11. Grade Computacional  Nível de usuário  Políticas de utilização

     gerenciadores de recursos locais  Gerenciadores de recursos globais  Monitoração  Autenticação  Certificação  Interface com o usuário  Nível de administração (local e global)  erência de hardware  gerência de software  Várias razões  Científicas, Políticas, Econômicas, Sociais 15
  12. Grade Computacional  Execução eficiente de aplicações intensivas em dados

    ou computação  Tipos de ambientes:  HPC (High Performance Computing)  HTC (High Throughput Computing)  HPC  Meteorologia, processamento matemático em geral  HTC  HEP, bioinformática, finanças, etc 16
  13. 18 Grid Nuvem Modelo base Utility Computing Utility Computing Maior

    vangatem Resolver problemas computacionais complexos Fornecer um ambiente escalável para o desenvolvimento de aplicações Distribuição e alocação de recursos Distribuição uniforme de recursos; Negociação e gerenciamento de recursos compartilhados Recursos alocados sob demanda; pagamento baseado no uso Domínios Múltiplos domínios Domínio único Foco Comunidade científica; não- comercial Para todos os usuários, empresas; comercial Desenvolvimento Lote (batch) Orientado a Serviço Grade vs. Cloud
  14. Virtualização  Idea fundamental  Abstrair o hardware de um

    simples computador em diferentes ambientes de execução  Cria a ilusão de que cada ambiente está executando em um computador privado 20
  15.  Hosted  É executado sobre um sistema operacional 

    VirtualBox, Parallels  Hypervisor (bare-metal)  Executado diretamente sobre o hardware  Xen, Microsoft Hyper-V e VMware ESX Tipos de Virtualização CPU Memory NIC Card Hard Disk Hypervisor x86 Architecture Hypervisor CPU Memory NIC Card Hard Disk APP Operating System x86 Architecture 21
  16. Hipervisor  Software que faz com que um servidor suporte

    a implantação de VMs  Responsável por suportar esta abstração, e interceptar e emular algumas instruções emitidas pelas MVs  Provê uma interface que permite ao usuário inicializar, pausar, serializar e desligar múltiplas MVs  Tipicamente chamado de:  Monitor de máquina virtual (VMM - Virtual Machine Monitor)  Hypervisor 22
  17. Dificuldade de virtualização x86  Arquitetura x86  SOs x86

    são projetados para funcionar diretamente sobre o hardware, de modo que, naturalmente, eles assumem que têm o controle total sobre o hardware.  A arquitetura x86 oferece quatro níveis de privilégio, conhecidos como Anel 0, 1, 2 e 3, para SO e aplicativos poderem gerenciar o acesso ao hardware do computador. 23
  18. Dificuldade de virtualização x86  Níveis de privilégio da arquitetura

    x86 Algumas instruções sensíveis não podem ser virtualizadas, pois têm semânticas diferentes quando não são executadas no Anel 0 Capturar e traduzir estes pedidos de instrução sensíveis e privilegiadas, em tempo de execução, foi o desafio que originalmente fez a virtualização da arquitetura x86 parecer impossível 24
  19. Estratégias de Virtualização  Estratégias  Virtualização total (full virtualization)

     Paravirtualização (paravirtualization, PVM)  Virtualização assistida por hardware (hardware-assisted virtualization, HVM)  Principal diferença  Forma como as instruções privilegiadas das VMs chegam de fato ao hardware 25
  20. Estratégias de Virtualização  Virtualização Total  Emulação completa do

    hardware subjacente  Não necessita modificar o SO visitante  Chamadas são interceptadas pelo hipervisor, que as mapeia para o hardware real subjacente  Tradução binária  SO visitante não tem conhecimento de que está sendo executado em hardware virtualizado  Exemplo  Virtual Box 26
  21. Estratégias de Virtualização  Paravirtualização  SO visitante é modificado

    ou use drivers especiais  Envolve a substituição de quaisquer operações privilegiadas por chamadas para o hipervisor  Hiperchamadas (hypercalls)  SO visitante sabe que está sendo executado em hardware virtualizado  Exemplo  Xen 27
  22. Estratégias de Virtualização  Virtualização assistida por hardware  Novas

    CPUs com recursos de virtualização  Tecnologias Intel VT-x e AMD-V  Oferecem extensões necessárias para executar VMs com SO não modificado  Sem as desvantagens inerentes à emulação de CPU da virtualização total  Permite que SO visitante execute instruções privilegiadas diretamente na CPU  Nenhuma tradução para virtualização é necessária  Exemplos  KVM, QEMU, modo HVM do Xen 28
  23. Vantagens da Virtualização  Redução dos custos operacionais  Redução

    do tempo gasto em tarefas administrativas  Facilidade para fazer backup e proteção de dados  Consolidação de servidores  Otimiza a utilização dos recursos  Facilidade de integração, testes e migração  Facilidade para recuperação de falhas 29
  24. Arquitetura Orientada a Serviços  Arquitetura de software que está

    baseada nos elementos de repositório de serviços, barramento de serviços e aplicação frontend  Princípios  Reutilização  Baixo Acoplamento  Autonomia  Composição  Sem Estado  Fácil Localização 33
  25. Principais elementos SOA SOA Serviços (Web Services) Repositório de Serviços)

    Implementação Regras de Serviços / SLA-WS Lógica na Instituição Dados Aplicação Frontend Bus de Serviços Interface 34
  26. Web Services  Serviços Web são aplicações de negócio modulares

     Nele é exposta a lógica de negócio em forma serviços sobre a Internet através de interfaces programáveis  Utiliza de protocolos de Internet com o propósito de fornecer meios para buscar, assinar e acessar esses serviços 35
  27. Tecnologias dos Web Services  XML  Linguagem de Marcação

    Extensível  SOAP  Protocolo de Acesso a Objetos Simples  WSDL  Linguagem de Descrição de Serviços Web  UDDI  Descrição, Descoberta e Integração Universais 36
  28. Arquitetura em camadas de um WS Interface de Serviços com

    o usuário Diálogo com o usuário (Troca de Mensagem) Diretório de Serviços Coordenação dos Serviços XML Schema +WSDL + SOAP WSDL + SOAP Broker (UDDI + WSDL) Broker (UDDI + WSDL) 38
  29. Data Center 41 Classic Data Center (CDC) Virtualize Compute Virtualize

    Storage Virtualize Network Virtualized Data Center (VDC) Fonte: EMC
  30. Data Center 42 Classic Data Center Virtualized Data Center Virtualized

    Infrastructure Virtualized Infrastructure Cloud Services Cloud Fonte: EMC
  31. Complexidade Crescente  Os sistemas são cada vez mais complexos

     Estruturas de TI grandes e heterogêneas  Dificuldades para se gerenciar os sistemas complexos atuais  Existência de poucos profissionais experientes e capacitados  Elevado custo de manutenção  A gestão da complexidade tem custos crescentes:  Intervenção humana e custos de TI 44
  32. Complexidade Crescente  Incerteza de Sistema  Escalas muito grandes

     Estruturas/Comportamentos ad hoc  P2P, gossip,…  Dinamismo  Recursos entram, saem, mudam de comportamento  Heterogeneidade  Capacidades, conectividade, QoS,…  Falta de garantias/SLA  Componentes, comunicação  Falta de conhecimento comum/diretrizes  Número, tipo, localização, disponibilidade, protocolos, semânticas 45
  33. Complexidade Crescente  Incerteza de Informação  Disponibilidade, resolução e

    qualidade da informação  Confiança nos dados  Semântica  Incerteza das Aplicações  Comportamento Dinâmico  Adaptatividade espaço temporal  Interacções dinâmicas e oportunistas  ad hoc, gossip 46
  34. Gestão da Complexidade  Estes níveis de complexidade excedem a

    capacidade humana:  É preciso retirar as pessoas do ciclo  Autonomia  Apesar de globalmente estarmos a caminhar neste sentido, há algum modo sistemático/estruturado de lidar com o problema?  Computação Autonômica 47
  35. Computação Autonômica  Os paradigmas de programação e os métodos

    e ferramentas de gestão têm dificuldade ao lidar com a escala, complexidade e heterogeneidade dos sistemas  Os sistemas naturais/biológicos evoluíram para lidar com ambientes muito mais complexos, heterogêneos e imprevisíveis:  Os seres vivos são arquiteturas autoconfiguráveis, auto adaptativas, autoreparativa, autotimizadas, autoprotegidas e altamente descentralizadas!!! 48
  36. Computação Autonômica  Criar sistemas autogeridos que respondam a estes

    desafios usando orientações de alto nível:  Ao contrário da IA, não se pretende replicar a cognição humana!  Autogerenciamento de sistemas  Utiliza um mínimo de interferência humana  Trata diferentes aspectos  Complexidade  Dinamismo  Heterogeneidade 49
  37. Adaptabilidade nos Sistemas Biológicos  Os mecanismos internos do corpo

    trabalham constantemente de forma integrada de forma a manter um conjunto de variáveis essenciais dentro daquilo que se designa por zona de viabilidade  Duas observações:  O objetivo do comportamento adaptativo é a sobrevivência  Se o ambiente interno ou externo empurram o sistema para fora do estado de equilíbrio (homeostase), este trabalha para retornar a esse equilíbrio 50
  38. Software Auto Adaptativo “...software que avalia o seu desempenho e

    altera o seu comportamento quando a avaliação aponta que os objetivos não estão a ser cumpridos...” (Laddaga, 1997)  Um programa não pode ser tão complexo como o ambiente  Os principais problemas de um sistema auto adaptativo e autogerido são detectar a necessidade de alteração, planeá-la e, em menor medida, executá-la  Três áreas científicas têm dados contributos:  Teoria de controlo de sistemas  Sistemas de planejamento  Sistemas reflexivos ou com percepção do contexto 51
  39. Relevância para a Comp. em Nuvem  A nuvem é

    um sistema autonômico  Gerenciado de forma transparente para os usuários  Diferenças de outros “paradigmas”  Intervenção humana limitada  Carga de trabalho altamente variável  Grande quantidade e variedade de recursos compartilhados 52
  40. Auto Configuração  Adaptar automática e dinamicamente ao ambiente 

    Devem especificar-se objetivos e não mecanismos  Configuração interna  Adicionar/retirar componentes  Configurar automaticamente  Configuração externa  Adaptação à infraestrutura global, ambiente e serviços disponíveis 54
  41. Auto Cura  Corrigir componentes falhados sem perturbar o serviço

     Passos da intervenção:  Detecção  Isolamento  Correção  Reintegração 55
  42. Auto Otimização  Monitorizar e afinar recursos automaticamente:  Operar

    em ambientes imprevisíveis  Maximizar a utilização sem intervenção humana  Alocação de recursos  Balanceamento de carga  Recursos  BDs, armazenamento, redes 56
  43. Auto Proteção  Antecipar, detectar, identificar e proteger o sistema

    de ataques  Especificando e gerindo o acesso aos recursos  Protegendo contra acessos não autorizados  Detectando intrusões e reportando-as à medida que ocorrem 57
  44. Sistema Autonômico  Elemento básico é o loop de controle

     Atua como um gerente de recursos por meio de:  Monitoramento  Análise  Tomada de decisões seguindo políticas de sistema 58
  45. Desenv. Sist. Autônomicos para Nuvem  Sistema autônomo para nuvem

     Desempenho, disponibilidade, elasticidade  Monitorar, modelar e prever o comportamento  Abordagem  Técnicas de sistemas distribuídos  Adaptação e extensão para construir soluções em nuvem  Técnicas de aprendizagem de máquina  Classificar a carga de trabalho  Prever o custo de operações  Melhorar o provisionamento 61
  46. Políticas para Computação em Nuvem  Políticas orientadas ao negócio

     Diferentes níveis de automação  Diferentes abstrações para o usuário  Customização das políticas  Diferentes estratégias  Simples  Métricas de CPU e memória  Complexas  Nível do serviço  Custo/benefício 62
  47. Políticas para Computação em Nuvem  Políticas de alto nível

     Aspectos técnicos  Objetivos do negócio  Abordagem  Desenvolvimento de políticas baseadas em ontologias  Organização do domínio de conhecimento  Descrever componentes e relações 63
  48. Monitoramento de Amb. em Nuvem  Objetivo  Minimizar a

    quantidade de recursos  Reduz custos  Garantir a qualidade do serviço  Qualidade do serviço (SLA)  Disponibilidade, desempenho e penalidades  Gerenciamento autônomo  Gerenciar recursos  Carga de trabalho  Garantir qualidade do serviço 64
  49. Monitoramento de Amb. em Nuvem  Novas técnicas  Adaptativas

    e dinâmicas  Obter dados sobre os elementos  Sensores  Atuadores  Abordagem  Redes de sensores  Gerenciamento dos dados coletados  MapReduce  Processar grandes volumes de dados  Construir uma base de conhecimento 65