Essa palestra foi apresentada durante a edição de 2015 Semana da Computação da UNESP, câmpus de São José do Rio Preto. A idéia foi apresentar, sob um caráter introdutório, os principais conceitos de computação em nuvem. De forma a despertar o interesse de estudantes de graduação para este modelo de computação distribuída que se torna cada vez mais popular e diferencial como conhecimento para possíveis contratações futuras no mercado de trabalho.
2. 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
3. ● 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)
4. ● 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
5. ● 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
6. ● 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
7. ● 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
8. ● 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
9. ● 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
11. ● 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”
12.
13. ● 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
14. ● 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”
15. ● Autoatendimento
● Medição e pagamento por utilização
● Elasticidade
● Estrutura configurável
● amplo acesso
Características
16. ● 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
19. ● 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
20. ● 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
24. ● 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”
25. ● Exemplos de softwares de conteinerização
○ LXC
○ Docker
Virtualização x “Conteinerização”
26. ● 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
27. ● 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
28. ● 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
29. ● 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
30. ● 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
31. ● Serviços de nuvem públicas:
○ Google Cloud Platform
○ Amazon Web Services
○ Microsoft Azure Service Platform
○ ...
Modelos de desenvolvimento
32. ● 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
33. ● 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
34. ● 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
35. ● 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
36. ● 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
37. ● Exemplos de serviços de IaaS
○ Google Compute Engine
○ Amazon Elastic Computing
Infrastructure-as-a-Service
38. ● 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
39. ● Exemplos
○ Google AppEngine
■ Java, Python, PHP, Go
○ Windows Azure Web Apps
■ .NET, Python, Java, Node.js, PHP
Platform-as-a-Service
40. ● 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
41. ● Exemplos
○ Google Web Apps
■ Drive
■ Docs
■ Gmail
■ Hangouts
○ Microsoft Office 365
○ Aplicativos mobile
Software-as-a-Service
43. ● 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!