Computação em Nuvem (Cloud Computing) Pesquisa & Desenvolvimento Santo André: 20 de fevereiro de 2013
Características de um bom Data Center Bom Desempenho Escalabilidade Alta Disponibilidade Economia Gerência de Recursos 2
Capacidade x Demanda Fonte: M. Armbrust, Above the Clouds: A Berkeley View of Cloud Computing, 2009. 3
Solução: Computação em Nuvem Alocação de recursos sob demanda Recursos virtualmente infinitos Computação como utilidade Elasticidade Atendimento de demandas variáveis Transferência de responsabilidade (terceirização) Eliminação de compromisso financeiro prévio dos usuários 4
Computação em Nuvem Computação em Nuvem se refere a Aplicações usados como serviços pela Internet Sistemas de hardware e software em datacenters que oferece esses serviços O hardware e software de datacenter é o que se chama de Nuvem Pay-as-you-go Problemas: garantia de desempenho (SLA) e segurança Bom para startups e para cloud burst 5
Por que o nome Nuvem? Porque redes (e particularmente a Internet) são frequentemente representadas como nuvens, por motivos de simplificação Numa aplicação de Nuvem, o software não está instalado na máquina cliente nem no servidor, ou os servidores não estão fisicamente instalados na organização 6
O que é Computação em Nuvem? Nuvem = uma camada conceitual sobre uma infraestrutura computacional que disponibiliza os recursos de software e hardware através de uma interface bem definida Infraestrutura computacional Reconfiguração Dinâmica Transparência de Localidade Modelo pague-pelo-uso 7
Agentes Usuários Desenvolvedor Aplicação 1 Aplicação 2 Desenvolvedor Recursos Físicos 8
NIST Definition of Cloud Computing Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction This cloud model is composed of five essential characteristics, three service models, and four deployment models 9
NIST: Essential Characteristics On-demand self-service Broad network access Resource pooling Rapid elasticity Measured service 10
NIST: Service Models Software as a Service (SaaS) Ex.: Google Doc, webmail Platform as a Service (PaaS) Ex.: Google App Engine, Microsoft Azure Ex.: WSO2 Stratos Infrastructure as a Service (IaaS) Ex.: Amazon AWS, Rackspace, Flexiscale Ex.: OpenNebula, Eucalyptus, OpenStack, Nimbus 11
NIST: Deployment Models Private cloud Community cloud Public cloud Hybrid cloud 12
Projeto AltoStratus 13
Projeto AltoStratus AltoStratus: Soluções de Middleware para Composição, Execução e Gerenciamento de Serviços em Nuvens Híbridas e Heterogêneas Subprojeto UFABC/UFPE Especificação e Implementação de Mecanismos de Criação Automática e Execução de Serviços Compostos Virtuais 14
Objetivo Propor, especificar, implementar, implantar e avaliar técnicas e mecanismos de middleware para composição, execução e gerenciamento de serviços em ambiente de nuvens computacionais híbridas e heterogêneas Conjunto de serviços será desenvolvido para um ambiente de nuvens híbridas e heterogêneas Escalonamento, segurança, composição de serviços e gerência de workflows, tolerância a falhas, adaptação de nuvem, implantação de aplicações, gerenciamento de aplicações, criação, execução e gerenciamento de serviços virtuais em nuvem 15
Parcerias Coordenação Geral Coordenadora: Thais Batista (UFRN) Vice-coordenador: Nabor Mendonça (Unifor) Subprojeto UFRN/PUC-Rio Coordenadora Local: Thais Batista (UFRN) Subprojeto UNICAMP/UFRGS Coordenador Local: Nelson Fonseca (Unicamp) Subprojeto UNIFOR/UFPE/PUC-Rio Coordenador Local: Nabor Mendonça (Unifor) Subprojeto UFABC/UFPE Coordenador Local: Carlos Kamienski (UFABC) Coordenador Adjunto: Stenio Fernandes (UFPE) 16
Plano de Trabalho: Ação 4 Especificação e Implementação de Mecanismos de Criação Automática e Execução de Serviços Compostos Virtuais Atividade 4.1: Especificação de uma terminologia e um modelo integrador de composição: serviços, informação, rede, etc. Atividade 4.2: Desenvolvimento de uma ferramenta para criação de serviços baseada na composição de serviços e de informação Atividade 4.3: Desenvolvimento de algoritmos para composição automática de serviços Atividade 4.4: Desenvolvimento de uma ferramenta para execução de serviços compostos Atividade 4.5: Desenvolvimento de um protótipo que integre os componentes desenvolvidos através de um cenário criado com fins didáticos e de avaliação Atividade 4.6: Execução de testes e avaliações 17
Cenário Um empreendedor, usuário de TIC, deseja iniciar um novo serviço na Internet, possuindo apenas uma boa ideia e um cartão de crédito Ele acessa um serviço de criação de novos serviços para a Internet onde tem os recursos necessários para dar vazão à sua criatividade e modelo de negócio Ao final, é gerado um código padrão para o serviço capaz de ser executado em qualquer ambiente que o compreenda 18
Cenário O empreendedor negocia com um serviço de execução de serviços (provedor de nuvem) para que a página da sua empresa entre em operação Também pode ter acesso a um serviço de gerenciamento para acompanhar a execução do serviço A atividades do empreendedor poderão ser realizadas a partir do seu PC e com um mínimo de intervenção de um profissional da área Desde que todos os componentes (sub-serviços) necessários para a criação do seu novo serviço já estejam disponíveis em algum local 19
Criação/Execução/Gerenciamento de Serviços em Nuvem Computacional Service Creation Service Code Bi Se Po Pr Service Execution Service Management 20
Criação/Execução de Serviços em Nuvem Computacional Service Creation Output Service Execution Business Analyst Systems Developer Service Designer Service Guideline Service Builder Service Code Se Bi Pr Po The Internet (Cloud) Front-end Designer GUI Designer Service GUI 21
An Integrated Composition Model for Collaboration in the Cloud IEEE LatinCloud 2012 22
Modelo Integrado de Composição para Nuvem Composição, Colaboração e Virtualização Composição Computacional Mecanismo de colaboração onde diferentes entidades são combinadas para gerar uma nova entidade virtual de valor agregado, que pode ser acessada de maneira transparente através de uma interface única Tipos de Composição Composição de Serviços Composição de Informação Composição de Recursos Composição de Redes Composição de Nuvem 23
Composição de Serviços Orquestração, Coreografia, Fusão Fusão 24
Composição de Informação Modelo de Dados, Modelo de Informação, Modelo de Serviços S S S S S I I D Composed Data Model D 25
Composição de Recursos Máquina, Memória, Armazenamento e CPU Composed Machines (virtual) #1 #2 #3 Server #1 Server #2 Server #3 Cloud #1 Cloud #2 26
Composição de Redes Roteamento, Comutação, Túnel, Controle e Compartilhamento Composed Network - Virtual Cloud #1 Cloud #2 Cloud #3 Cloud #4 27
Composição de Nuvem Computação em Nuvem: Nova Visão Composição de múltiplas entidades computacionais de diferentes classes que colaboram para criar uma nova entidade virtual, oferecida aos usuários como um serviço Cloud Composition Service Composition Information Composition Resource Composition Network Composition 28
Arquitetura de Composição User Middleware SaaS Middleware Cloud Middleware SaaS PaaS Service Composition PaaS Middleware Information Composition IaaS Middleware IaaS Resource Composition Network Composition Resource Middleware 29
Cenário 1 Services Service Composition Orchestration Information Bi Se Po Pr Bi Se Po Pr Resources Netorok Network Composition Tunnel 30
Cenário 2 Service Composition Ink-Merger Information Composition Bi Se Po Pr Information Model Bi Se Po Pr Network Composition Roteamento 31
E2ECloud: Protótipo para Criação e Execução de Serviços Compostos Virtuais Fim a Fim Demo no IEEE LatinCloud 2012 32
Cenário de Uso Service Developer Service Creation (SaaS) Se Cloud #1 Bi Pr (IaaS / SaaS) Po Service Code User 1 User 2 User 3 Cloud #2 (IaaS) Cloud #3 (IaaS) 33
Arquitetura do Protótipo Service Creation Tool Service Code Bi Se Po Pr Cloud Middleware Placement & Elasticity Services self-configuration self-optimization self-healing UFABC private cloud UFPE private cloud Load Generator Amazon public cloud Google public cloud Cloud Infrastructure 34
Ferramenta de Criação de Serviços COMPOSER GERADOR DE CÓDIGO CONTAS DE USUÁRIO Servidor (Tomcat7) BASE REPOSITÓRIO GERAL (Serviços e Entidades) INTERFACE GRÁFICA (Servidor) BASE-GUI GWT RPC INTERFACE GRÁFICA (Cliente) Cliente (Navegador) 35
Ferramenta de Criação de Serviços 36
Middleware: Visão Geral 37
Middleware: Arquitetura 38
Posicionamento: OpenNebula O OpenNebula realiza o posicionamento FrontEnd faz o posicionamento dos Worker Nodes A implementação do deploy de um serviço composto, no entanto requer vários procedimentos Criar VMs para o serviço composto (workflow BPEL) Pegar endereços IP para cada uma Chamar OpenNebula para realizar posicionamento Iniciar monitoramento para elasticidade 39
Elasticidade e Balanceamento de Carga Elasticidade realizada no nível de OpenNebula e Xen deve ficar visível para a aplicação Algumas soluções: DNS, Aplicação (Apache...) 40
Elasticidade Todos os sub-serviços são monitorados em um serviço composto Métricas: uso de CPU e memória Uso de técnica de histerese para evitar oscilação Criação e remoção de VMs demora algum tempo e não pode oscilar muito Problemas com o tempo de criação de VMs Cenário: Geradores de código rodando na Amazon 41
Outros Projetos Flexibilizando o Datacenter com Computação em Nuvem e Redes Definidas por Software CNPq: Edital Universal 2012 Desenvolvimento de Serviços em Nuvem Computacional CNPq: Bolsa PQ 2011 Gerenciamento Autonômico de Rede Elétrica Inteligente na Nuvem Computacional UFABC: Projeto de mestrado 42
Computação em Nuvem (Cloud Computing) Santo André: 20 de fevereiro de 2013