Download - Prazer, computação em nuvem
Um pouco sobre mim…
● Bacharel em Ciência da Computação (2012)○ UNESP-IBILCE ○ Bolsista IC CNPq
■ 2010-2011 e 2011-2012
● Mestre em Ciência da Computação (2015)○ PPGCC da UNESP○ Bolsista CNPq
■ 2013-2015
● Membro do GSPD desde 2009● Grupo de Sistemas Paralelos e Distribuídos
○ Linhas de pesquisa■ Sistemas Distribuídos
● Flexa (SAD)■ Simulação de Sistemas
● RTsim ( Tempo real)● YASC ( gerador de simuladores)● iSPD ( grid e cloud computing)
● Introdução● Origem do termo e do conceito● Características● Tecnologias que permitiram a computação em
nuvem○ Virtualização
● Modelos de Desenvolvimento● Classes de serviço● Exemplos de serviços de nuvem● Mão na massa (Se Murphy permitir!)
Agenda
● Computação em nuvem (cloud computing)● Modelo de computação distribuida que oferece
recursos computacionais (processamento, aplicações, armazenamento) sob demanda através da internet.○ Modelo utilitário■ Paga-se pelo tempo/quantidade de recursos
utilizados■ água, energia elétrica, telefone, etc.
Introdução
● Datacenters são projetados para suportar picos teóricos○ Ficam ociosos na maior parte do tempo■ amadurecimento de várias técnologias
permitiram se aproveitar desses recursos subutilizados
Introdução
● Vantajoso para usuários○ Redução dos gastos com infraestrutura física de
T.I● Vantajoso para provedores de serviço○ Infraestrutura permite atender ampla gama de
usuários com necessidades distintas
Introdução
● Evolução natural dos sistemas de computação○ Século XX ■ Fábricas deixaram de ter estações de energia
próprias para utilizar o sistema de rede elétrica recém criado
○ Hoje■ Empresas reduzem investimentos em recursos
computacionais próprios para utilizar serviços de computação em nuvem
Introdução
● Apresentar conceitos fundamentais sobre computação em nuvem, para que ao fim desta palestra, se possa ter uma visão abrangente sobre esta tecnologia
● Apresentar algumas ferramentas relacionadas a esta tecnologia
Objetivos
● Relatório de negócios da empresa Compaq (1996)○ Discutia o oferecimento de serviços de software
através da internet
Origem do termo “computação em nuvem”
● Atribuído à John McCarthy (1961)○ A computação em tempo compartilhado pode
gerar no futuro um modelo de negócio em que poder computacional e o uso de algumas aplicações serão comercializados de forma utilitária, como ocorre com a água ou a energia elétrica, por exemplo.
Origem do conceito
● NIST (National Institute of Standards and Technology)○ “... um modelo de negócio pay-per-use que permite,
convenientemente, o acesso, por meio de rede, sob demanda, a um arranjo compartilhado de recursos computacionais configuráveis (rede, servidores, armazenamento, aplicações, serviços) que podem ser rapidamente providos e liberados com o mínimo esforço de gerenciamento ou interação do provedor de serviço”
Definição de “Computação em nuvem”
● Autoatendimento● Medição e pagamento por utilização● Elasticidade● Estrutura configurável● amplo acesso
Características
● Conceito exposto em 1961○ Tecnologias existentes incapazes de
implementar esse modelo “futurista”● Anos 2000○ Avanços de diversas tecnologias permitiram o
surgimento da computação em nuvem
Computação em nuvem: Soma de esforços
● Conceito chave de computação em nuvem● Executar múltiplos S.O.s com pilhas de software
arbitrárias em uma mesma infraestrutura física.○ Máquinas virtuais (VMs)
Virtualização de hardware
● Como funciona?○ Camada de virtualização entre o hardware e os
sistemas virtualizados○ Virtual Machine Monitor (VMM) ou hypervisor
■ Controla o acesso das VMs aos recursos físicos do sistema● gerencia o acesso a dispositivos● controla o volume de recursos disponível para
cada VM
Virtualização de hardware
● Alternativa mais leve e portável que a virtualização completa
● uso de contêineres○ aplicações são empacotadas juntamente com
suas dependências.■ Portabilidade
○ A virtualização ocorre no nível de processos■ Contêiner utiliza o kernel do sistema
hospedeiro
Virtualização x “Conteinerização”
● 3 características da virtualização tornaram essa tecnologia atraente para seu uso em computação em nuvem○ Isolamento○ Consolidação○ Migração
Características da virtualização
● Pacotes de software gerenciam o acesso de sistemas virtualizados aos recursos (discos, processamento, rede) dos elementos físicos distribuídos no sistema
■ Virtual Infrastructure Manager (VIM)● Controla os VMMs individuais● Cria VMs, dimensiona e seleciona onde
serão alocadas em quais recursos físicos● balanceamento de carga, etc.
Virtualização de datacenters
● Exemplos de VIMs ○ vmware vSphere e vCloud○ Eucaliptus○ OpenStack○ OpenNebula○ Apache VLC
● Ferramentas amplamente utilizadas para a implementação de nuvens privadas e públicas.
Virtualização de hardware
● Modo como uma infraestrutura de nuvem pode ser implementada.
● esta classificação se refere aos seguintes atores:○ Quem serão os usuários da nuvem?○ Quem serão os provedores de serviço?
Modelos de desenvolvimento
● Nuvem pública○ Oferecer serviços de computação em nuvem de
modo que qualquer indivíduo ou organização possa utilizar■ Paga-se pelo tempo/volume de recursos se
houver custos associados
Modelos de desenvolvimento
● Serviços de nuvem públicas:○ Google Cloud Platform○ Amazon Web Services○ Microsoft Azure Service Platform○ ...
Modelos de desenvolvimento
● Nuvem privada○ Consiste em prover uma infraestrutura de nuvem
para uma única organização, que agrupa um conjunto de usuários
○ O provedor pode ser esta organização ou um terceiro
Modelos de desenvolvimento
● Nuvem Comunitária○ A infraestrutura de nuvem é oferecida à um
conjunto de organizações, que podem possuir interesses e metas em comum
○ O provedor pode ser uma das organizações, um consórcio entre elas ou um terceiro
Modelos de desenvolvimento
● Nuvem híbrida○ A infraestrutura de nuvem é implementada
através da junção de dois ou mais modelos anteriores
○ Comunicação realizada por padronização protocolos e formatos de dados
○ Balanceamento de carga○ Implementa o conceio de “intercloud” (federação
de nuvens)■ Nuvem de nuvens
Modelos de desenvolvimento
● Os serviços oferecidos pela computação em nuvem são divididos tradicionalmente em três classes de serviços:○ IaaS (Infrastructure-as-a-Service)○ PaaS (Platform-as-a-Service)○ SaaS (Software-as-a-Service)
Classes de serviço
● Busca oferecer toda infraestrutura de hardware (processamento, armazenamento, rede, etc) para se hospedar uma infraestrutura de software arbitrária
● Configuração semelhante à servidores físicos● Configura-se um conjunto de intâncias de VMs, e
instala-se a pilha de software desejada○ Configuram-se as redes virtuais e critérios de
acesso
Infrastructure-as-a-Service
● Exemplos de serviços de IaaS○ Google Compute Engine○ Amazon Elastic Computing
Infrastructure-as-a-Service
● Esta classe de serviço oferece plataformas de desenvolvimento e hospedagem de aplicações
● A idéia principal é oferecer um ambiente onde o programador não necessita preocupar-se com a demanda de recursos utilizados pela sua aplicação○ Padronização de linguagens, protocolos,
ferramentas
Platform-as-a-Service
● Exemplos○ Google AppEngine■ Java, Python, PHP, Go
○ Windows Azure Web Apps■ .NET, Python, Java, Node.js, PHP
Platform-as-a-Service
● Esta classe de serviço busca oferecer software de uso rotineiro através de uma interface web acessível.
● Vantajoso por reduzir a necessidade de manter softwares instalados nos recursos físicos
● Classe de serviço muito popular
Software-as-a-Service
● Exemplos○ Google Web Apps■ Drive■ Docs■ Gmail■ Hangouts
○ Microsoft Office 365○ Aplicativos mobile
Software-as-a-Service
● A grande maioria dos provedores de nuvem são pagos :(
● Mas praticamente todos oferecem versões de teste gratuítas :)○ Alguns exemplos a seguir...
Gostei! Quero brincar disso!
● Outros…○ Joyent○ GoGrid○ HP Public Cloud○ CloudSigma○ Dimension Data○ ...
Gostei! Quero brincar disso!