SlideShare une entreprise Scribd logo
1  sur  134
Télécharger pour lire hors ligne
UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS
UNIDADE ACADÊMICA DE GRADUAÇÃO
CURSO DE SEGURANÇA DA INFORMAÇÃO
MARCELO DIEDER
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA
PARA A INFRAESTRUTURA DE COMPUTAÇÃO NAS NUVENS UTILIZANDO
SOLUÇÕES DE CÓDIGO ABERTO
São Leopoldo
2012
MARCELO DIEDER
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA
PARA A INFRAESTRUTURA DE COMPUTAÇÃO NAS NUVENS UTILIZANDO
SOLUÇÕES DE CÓDIGO ABERTO
Trabalho de Conclusão de Curso
apresentado como requisito parcial para a
obtenção do título de Tecnólogo em
Segurança da Informação na
Universidade do Vale do Rio dos Sinos -
UNISINOS
Orientador: Prof. Ms. Jeferson Prevedello
São Leopoldo
2012
Dedico totalmente este trabalho para a minha família, que me deu forças para
conseguir superar minhas dificuldades e serenidade para continuar a trilhar pelos
caminhos obscuros.
Aos meus pais e à minha irmã, que desde meus primeiros momentos de vida
me transmitiram ensinamentos e caráter de vida, tão importante nesta atual fase da
minha vida.
Agradeço muito à minha esposa e à minha filha, pelo apoio incondicional que
me proporcionaram nos momentos difíceis e que, com simples sorrisos, conseguiam
me motivar ainda mais em busca de melhores resultados.
AGRADECIMENTOS
Primeiramente a Deus, por mostrar-me os melhores caminhos a
seguir e à minha família que sempre me acolheu e me aconselhou
durante a fase de estudos.
Ao meu orientador Jeferson Prevedello, que soube me criticar
construtivamente em minhas dúvidas e anseios.
. Aos meus colegas de curso, que me possibilitaram a troca de
conhecimentos durante todos estes anos de estudo. Ao pessoal das
comunidades openstack e openstack-br, que estavam prontamente
disponíveis para tirar dúvidas e trocar ideias.
Por fim, gostaria de agradecer a todos aqueles que me ajudaram
diretamente ou indiretamente no desenvolvimento deste trabalho.
"Nossas dúvidas são traidoras e nos fazem perder o que, com frequência,
poderíamos ganhar, por simples medo de arriscar."
(William Shakespeare)
RESUMO
O conceito de Computação nas Nuvens é um grande salto tecnológico após o
surgimento da Internet. Na necessidade de buscar soluções que possam reduzir
custos e agregar mais segurança e desempenho para as aplicações, surge o modelo
de entrega de serviços computacionais sob demanda. Por meio de uma pesquisa
bibliográfica, este trabalho buscou entender os principais conceitos da computação
nas nuvens, seus principais problemas e os limites impostos pela nova tecnologia. A
pesquisa também abordou os sistemas de IaaS Eucalyptus e OpenStack,
apresentando suas principais características e descrevendo o modelo de arquitetura
de cada plataforma. Além disso, utilizando uma abordagem experimental, o sistema
OpenStack foi implantando com o intuito de entender melhor o seu funcionamento e
obter respostas quanto a seu nível de maturidade atual. A partir da implantação do
sistema OpenStack, foi possível entender na prática seu funcionamento, revelando
ser uma plataforma robusta e estável, e que pode ser utilizado para orquestrar uma
infraestrutura heterogênea que possua um conjunto de diferentes sistemas e
equipamentos. Este trabalho também poderá ser utilizado como base para futuros
projetos de pesquisa, que buscam o desenvolvimento de uma solução para a
computação nas nuvens ou mesmo para corporações que desejam executar seu
próprio modelo de nuvem pública ou privada.
Palavras-chave: computação nas nuvens, Openstack, serviços sob demanda.
ABSTRACT
The concept of Computing in the Clouds is a great technological leap after the
advent of the Internet. The need to seek solutions that can reduce costs and add
more security and performance for applications, the model appears to deliver on-
demand computing services. Through a bibliographical survey, this study sought to
understand the key concepts of cloud computing, its main problems and the limits
imposed by the new technology. The research also addressed the IaaS systems
Eucalyptus and OpenStack, presenting their main characteristics and describe the
architectural model of every platform. Furthermore, using an experimental approach,
the OpenStack system was implemented in order to better understand their operation
and get answers about their current maturity level. Upon deployment of the
OpenStack, in practice it was possible to understand its operation, proving to be a
robust and stable plataform and can be used to orchestrate a heterogeneous
infrastructure that has a large set of different systems and equipment. This work may
also be used as a basis for future research projects aimed at developing a solution to
the cloud, or even for corporations that want to run their own model of public or
private cloud.
Keywords: cloud computing, openstack, on-demand services.
LISTA DE FIGURAS
Figura 1 - Arquitetura do modelo de computação nas nuvens........................27
Figura 2 - Camadas da Computação nas Nuvens..........................................31
Figura 3 – Visão Global da Computação nas Nuvens. ...................................33
Figura 4 - Limites entre IaaS, PaaS, SaaS .....................................................37
Figura 5 - Pesquisa sobre Computação nas Nuvens......................................41
Figura 6 - Responsabilidades entre modelos computacionais da nuvem .......48
Figura 7 - Tipos de arquitetura de virtualização..............................................53
Figura 8 - Arquitetura principal do Eucalyptus. ...............................................64
Figura 9 - Arquitetura conceitual do Openstack..............................................67
Figura 10- Arquitetura de serviços do Openstack Compute (Nova)................69
Figura 11 - Arquitetura de rede do nova-network. ..........................................73
Figura 12 - Arquitetura do nova-volume..........................................................74
Figura 13 - Fluxograma do processo de decisão do nova-scheduler. ............76
Figura 14 - Exemplo de arquitetura do OpenStack Swift. ...............................78
Figura 15 - Exemplo de anel utilizado no OpenStack Swift. ...........................80
Figura 16 - Arquitetura lógica do OpenStack Glance......................................81
Figura 17 - Processo para criação de um serviço validado pelo Keystone.....86
Figura 18 - Tela de gerenciamento de instâncias do Horizon.........................88
Figura 19 - Estrutura externa do ambiente proposto. .....................................92
Figura 20 - Estrutura externa do ambiente proposto. .....................................93
Figura 21 - Gráfico do resultado da análise dos dados de rede. ....................96
Figura 22 - Gráfico de desempenho das operações de leitura e escrita.........98
LISTA DE QUADROS
Quadro 1 - Comparativo de opções de infraestrutura em TI...........................28
Quadro 2 - Soluções para gerenciamento de ambientes IaaS. ......................59
Quadro 3 - Filtros para utilização no nova-scheduler. ....................................75
Quadro 4 - Estados de uma imagem no Glance.............................................82
Quadro 5 - Tipos de imagens suportados pelo Glance...................................83
Quadro 6 - Tipos de containers suportados pelo Glance................................84
Quadro 7 - Comparativo de características entre OpenStack e Eucalyptus. ..89
Quadro 8 - Requisitos dos servidores para a estrutura...................................91
Quadro 9 - Gráfico de desempenho das operações de leitura e escrita.........99
LISTA DE TABELAS
Tabela 1 - Versões de lançamento do Openstack ..........................................66
Tabela 2 - Tipos de instâncias pré-definidas pelo EC2...................................77
Tabela 3 - Lista de serviços ativos e inativos do Nova. ..................................95
Tabela 4 - Tabela do resultado da análise dos dados de rede. ......................96
Tabela 5 - Valores de desempenho das operações de leitura e escrita. ........97
LISTA DE ABREVIATURAS E SIGLAS
AMQP Advanced Message Queuing Protocol
API Application Programming Interface
ARP Address Resolution Protocol
AWS Amazon Web Services
CIFS Common Internet Filesystem
CLC Cloud Controler
SC Storage Controller
CC Cluster Controller
CMAAS Compliance as a Service
CPU Central Processing Unit
CSA Cloud Security Alliance
DAS Direct Attached Storage
DHCP Dynamic Host Configuration Protocol
EBS Elastic Block Store
EC2 Amazon Elastic Compute Cloud
FC Fibre Channel
GPL General Public License
HP Hewlett-Packard
ICMP Internet Control Message Protocol
HTTP HyperText Transfer Protocol Secure
I/O Input/Output
IAAS Infrastructure as a Service
IBM International Business Machines
IDAAS Identity as a Service
IDC International Data Corporation
IP Internet Protocol
ISCSI Internet Small Computer System Interface
JSON Javascript Object Notation
KVM Kernel-based Virtual Machine
LAN Local Area Network
LDAP Lightweight Directory Access Protocol
LUN Logical Unit Number
12
LVM Logical Volume Manager
LXC Linux Containers
MTBF Mean Time Betwenn Failures
NAS Network Attached Storage
NASA National Aeronautics and Space Administration
NBR Normas Brasileiras de Regulação
NC Node Controller
NFS Network File System
PAAS Platform as a Service
PATA Parallel Technology Attachment
PCI Payment Card Industry
PCI DDS PCI Data Security Standard
RAID Redundant Array of Independent Disks
REST Representational State Transfer
S3 Amazon Simple Storage Service
SAAS Software as a Service
SAN Storage Area Network
SAS Serial Attached SCSI
SAS 70 Statement on Auditing Standards No. 70
SATA Serial Advanced Technology Attachment
SC Storage Controller
SCSI Small Computer System Interface
SPI SaaS PaaS IaaS
SSH Secure Shell
STAAS Storage as a Service
TCP Transmission Control Protocol
TCP/IP Transmission Control Protocol / Internet Protocol
TI Tecnologia da Informação
UML User Mode Linux
VLAN Virtual Lan
VM Virtual Machine
VMM Virtual Machine Monitor
VNC Virtual Network Computing
13
VPN Virtual Private Network
XFS High-Performance Journaling File System
XML Extensible Markup Language
SUMÁRIO
1 INTRODUÇÃO .......................................................................................................18
1.1 DEFINIÇÃO DO PROBLEMA..............................................................................18
1.2 OBJETIVOS ........................................................................................................21
1.2.1 Objetivo Geral.................................................................................................21
1.2.2 Objetivos Específicos ....................................................................................21
1.3 JUSTIFICATIVA ..................................................................................................22
1.4 DELIMITAÇÃO DO TEMA...................................................................................23
2 FUNDAMENTAÇÃO TEÓRICA.............................................................................25
2.1 COMPUTAÇÃO NAS NUVENS ..........................................................................26
2.1.1 Características do Modelo Computacional em Nuvem...............................27
2.1.2 A Importância da Virtualização e o Armazenamento Centralizado............31
2.1.3 O Modelo Computacional da Computação nas Nuvens .............................32
2.1.4 Principais Conceitos......................................................................................33
2.1.5 Arquiteturas....................................................................................................35
2.1.5.1 Público...........................................................................................................35
2.1.5.2 Privado ..........................................................................................................35
2.1.5.3 Comunitário...................................................................................................36
2.1.5.4 Híbrido...........................................................................................................36
2.1.6 Tipos de Serviço.............................................................................................36
2.1.6.1 Infraestrutura como um Serviço ....................................................................38
2.1.6.2 Plataforma como um Serviço ........................................................................39
2.1.6.3 Software como um Serviço............................................................................39
2.2 A SEGURANÇA E OS LIMITES DA COMPUTAÇÃO NAS NUVENS .................40
2.2.1 Principais Preocupações...............................................................................41
2.2.2 Limites da nuvem ...........................................................................................42
2.2.2.1 Confidencialidade das informações...............................................................43
2.2.2.2 Disponibilidade de serviços ...........................................................................43
2.2.2.3 Tipos de aplicações.......................................................................................44
2.2.2.4 Conformidade com a legislação vigente........................................................44
2.2.2.5 Multi-Inquilino ................................................................................................45
2.2.2.6 Dependência do fornecedor ..........................................................................46
2.2.3 Cloud Security Alliance .................................................................................46
15
2.3 VIRTUALIZAÇÃO................................................................................................49
2.3.1 Vantagens .......................................................................................................50
2.3.2 Desvantagens .................................................................................................50
2.3.3 Virtual Machine Monitor.................................................................................51
2.3.4 Soluções de Virtualização .............................................................................53
2.3.4.1 Kernel-based Virtual Machine .......................................................................54
2.3.4.2 Qemu.............................................................................................................54
2.3.4.3 Xen................................................................................................................54
2.3.4.4 Vmware ESX.................................................................................................55
2.3.4.5 Virtualbox ......................................................................................................55
2.4 O ARMAZENAMENTO DE DADOS ....................................................................55
2.4.1 Direct Attached Storage.................................................................................56
2.4.2 Network Attached Storage.............................................................................56
2.4.3 Storage Area Network....................................................................................56
3 SOLUÇÃO PARA GERÊNCIA DA INFRAESTRUTURA DA NUVEM ..................58
3.1 ORQUESTAR O AMBIENTE DA NUVEM...........................................................58
3.2 SOLUÇÕES DE IAAS EXISTENTES ..................................................................58
3.2.1 Amazon Web Services ...................................................................................59
3.2.2 Nimbus ............................................................................................................60
3.2.3 OpenNebula ....................................................................................................60
3.2.4 Eucalyptus ......................................................................................................61
3.2.5 OpenStack.......................................................................................................61
3.2.6 Análise Parcial das Soluções........................................................................62
3.3 EUCALYPTUS ....................................................................................................63
3.3.1 Principais Componentes ...............................................................................63
3.3.1.1 Cloud Controller (CLC)..................................................................................64
3.3.1.2 Walrus ...........................................................................................................64
3.3.1.3 Cluster Controller (CC)..................................................................................64
3.3.1.4 Storage Controller (SC).................................................................................65
3.3.1.5 Node Controller (NC).....................................................................................65
3.3.1.6 VMware Broker..............................................................................................65
3.3.1.7 Euca2ools......................................................................................................65
3.4 OPENSTACK ......................................................................................................66
16
3.4.1 Visão Global....................................................................................................67
3.4.2 Openstack Compute (Nova) ..........................................................................68
3.4.2.1 API Server (nova-api)....................................................................................70
3.4.2.2 Message Queue (Rabbit MQ Server) ............................................................71
3.4.2.3 Compute Worker (nova-compute) .................................................................71
3.4.2.4 Network Controller (nova-network)................................................................71
3.4.2.5 Volume Workers (nova-volume)....................................................................73
3.4.2.6 Nova Objectstore (nova-objectstore).............................................................74
3.4.2.7 Scheduler (nova-scheduler) ..........................................................................74
3.4.2.8 Tipos de Instâncias (Flavors) ........................................................................76
3.4.3 Openstack Storage Infrastructure (Swift).....................................................77
3.4.3.1 Swift Proxy Server.........................................................................................78
3.4.3.2 Swift Object Server........................................................................................78
3.4.3.3 Swift Container Server...................................................................................79
3.4.3.4 Swift Account Server .....................................................................................79
3.4.3.5 The Ring........................................................................................................79
3.4.4 Openstack Imaging Service (Glance) ...........................................................81
3.4.4.1 Glance-api.....................................................................................................82
3.4.4.2 Glance-registry ..............................................................................................83
3.4.4.2 Formato de Discos e Containers ...................................................................83
3.4.5 OpenStack Identity Service (Keystone)........................................................84
3.4.5.1 Base de Dados..............................................................................................86
3.4.6 Openstack Administrative Web-Interface (Horizon)....................................86
3.5 ANÁLISE DO EUCALYPTUS E OPENSTACK....................................................88
4 PROJETO PRÁTICO E RESULTADOS OBTIDOS...............................................90
4.1 AMBIENTE DA PROPOSTA DE TRABALHO.....................................................90
4.1.1 Requisitos da infraestrutura..........................................................................91
4.1.2 Arquitetura do ambiente................................................................................91
4.1.3 Processo de Instalação..................................................................................93
4.2 COLETA DE DADOS DO AMBIENTE.................................................................94
4.2.1 Testes de Latência de Rede X Testes de Troca de Tráfego........................94
4.2.2 Testes de Leitura e Gravação de Dados.......................................................94
4.2.3 Simulação de falhas nos serviços do Nova .................................................95
17
4.3 ANÁLISE DOS DADOS OBTIDOS......................................................................95
4.3.1 Da latência e desempenho da rede...............................................................95
4.3.2 Da latência e velocidade das operações de disco ......................................96
4.3.3 Da análise da disponibilidade dos componentes........................................98
5 CONCLUSÃO ......................................................................................................100
REFERÊNCIAS.......................................................................................................103
APÊNDICE A ..........................................................................................................111
18
1 INTRODUÇÃO
Computação nas Nuvens é um dos principais assuntos no atual momento da
Tecnologia da Informação. A Computação nas Nuvens traz consigo conceitos de
entrega de tecnologia como um serviço computacional, da mesma forma que
serviços como água e a eletricidade, entregando-os sob demanda. Computação nas
Nuvens não é uma nova tecnologia ou um novo sistema computacional, é uma nova
maneira de utilização de recursos computacionais de forma distribuída e
descentralizada, utilizando como meio de transporte, principalmente, a Internet.
Pode-se utilizar a nuvem para o armazenamento e processamento de informações,
de forma escalável e sob a demanda necessária, ou seja, conforme aumenta a
necessidade de processamento e cresce o volume de informações, pode-se
dinamicamente alocar mais recursos computacionais, conforme necessário.
Observa-se, desta maneira, que ao invés de investir-se em uma infraestrutura
computacional completa, repleta de ativos computacionais, pode-se focar em
investimento de serviços. Neste caso, o custo é apenas dos recursos utilizados,
além de reduzir as despesas com infraestrutura. Nem sempre a utilização de
serviços sob demanda pode ser vantajoso, isso pode depender do tipo de aplicação
e da demanda necessária para atender a determinados requisitos. Também é
importante salientar que na nuvem não se sabe onde está a informação, ou onde ela
será processada, mas é essencial que a informação esteja íntegra e sempre
disponível.
Este trabalho está dividido em cinco capítulos. No primeiro capítulo será
realizada a introdução do tema a ser abordado. No capítulo dois, é apresentada uma
fundamentação teórica dos assuntos relacionados. No capítulo três, são descritas as
soluções de gerenciamento da nuvem. No capítulo quatro, será descrito a
implantação do projeto. E por fim, no capítulo cinco, será realizada a conclusão do
tema.
1.1 DEFINIÇÃO DO PROBLEMA
Com o avanço do conceito de tecnologia em nuvem, diversas soluções
surgiram para orquestrar diferentes tipos de plataformas e serviços, mas sem que
19
houvesse uma definição exata de um modelo estruturado que garantisse a
padronização desta nova arquitetura.
De acordo com pesquisa realizada em 2011 com 500 organizações,
encomendada pela Symantec Corporation sobre a situação da Cloud Computing na
América Latina, SYMANTEC (2011), foi possível apontar quatro principais
preocupações que as organizações possuem quanto à utilização da Cloud, conforme
é possível observar a seguir:
 segurança das Informações;
 falta de experiência de equipes de TI;
 diferentes tipos de soluções e ausência de testes efetivos na nuvem;
 retorno sobre investimento abaixo do esperado.
É possível observar que a pesquisa apresenta dados concretos sobre
algumas das dificuldades das corporações utilizarem a nova tecnologia,
principalmente pelas dúvidas quanto à segurança dos dados e pela falta de
experiência de equipes, juntamente com os diferentes tipos de tecnologias para
enviar os dados para a nuvem.
O caminho para a utilização de Cloud Computing passa pelos conceitos de
virtualização e de armazenamento de informação centralizado, que são essenciais
para o desenvolvimento da plataforma descentralizada. Atualmente, existem
diversas soluções que podem realizar a virtualização de máquinas, assim como
também existem diversos tipos de sistemas de armazenamento disponíveis. As
grandes dificuldades estão em garantir a integração entre os diferentes tipos de
sistemas, em efetuar o gerenciamento do ambiente heterogêneo e, também, de
possibilitar a migração dos dados entre eles de forma rápida e funcional. Além disso,
a preocupação com a segurança dos dados na nuvem é outro fator impeditivo para
várias corporações, ao analisarem o risco na utilização de suas informações na
nuvem.
Em um ambiente de nuvem que fornece infraestrutura, como máquinas
virtuais e espaço de alocação de dados, toda essa gerência é executada pelo
chamado Cloud Controler, o controlador de recursos da nuvem1
. Atualmente existem
inúmeras plataformas controladoras, sejam elas do modelo de código aberto ou
20
mesma de código fechado. O grande esforço destas plataformas é garantir a
interoperabilidade com os diferentes tipos de hypervisors2
, storages3
, redes de
comunicação e as API (Application Programming Interface)4
de integração, de modo
que as corporações possam percorrer pelos diferentes tipos de tecnologias de forma
rápida e facilitada. No cenário atual, podemos citar com destaque as operações
realizadas pelos fornecedores Amazon5
e Rackspace6
, duas das principais
empresas mundiais que providenciam serviço de infraestrutura na nuvem.
Das soluções existentes, que possibilitam que empresas públicas e privadas
tenham sua própria nuvem, pode-se citar inúmeras aplicações, sejam elas de código
fechado ou aberto. A Citrix Systems oferece uma solução proprietária de
gerenciamento de infraestrutura chamado CloudStack, que apresenta integração
com múltiplos tipos de sistemas. A Vmware Inc, possui uma solução proprietária
conhecida como vCloud, porém gerencia apenas suas próprias aplicações de
virtualização. Entre as soluções de código aberto, também é possível apresentar
várias aplicações, dentre as quais são possíveis citar o OpenNebula, Nimbus,
OpenStack e o Eucalyptus (disponibiliza versão aberta e proprietária).
Entretanto, apesar da grande oferta de aplicações existentes, vários padrões
foram desenvolvidos, dificultando a comunicação harmoniosa entre os diferentes
tipos de sistemas. As soluções de plataforma fechada tendem a ditar “as regras do
jogo”, buscando sempre os interesses do próprio negócio. Do contrário, as soluções
de código aberto buscam atender aos interesses de todos os envolvidos no projeto,
aumentando, consequentemente, a interoperabilidade entre diferentes sistemas, e
atribuindo o controle do projeto para todos os seus participantes. A nuvem é um
ambiente complexo e heterogêneo, e necessita de colaboração mútua entre todos
os personagens deste sistema.
Diante deste cenário, é possível delinear a definição do problema: É possível
que uma plataforma de software aberto, no esforço de seus colaboradores mundiais,
consiga apresentar uma solução segura e eficaz, que possa controlar e gerenciar a
infraestrutura de diferentes soluções de virtualização e de armazenamento de forma
1
Conhecido também como IaaS ( Infrastructure as a Service) – Tipo de serviço oferecido na nuvem.
2
Hypervisor – Camada de software que realiza a virtualização de máquinas virtuais.
3
Storage – Equipamento de armazenamento de dados centralizado.
4
API – Interface para comunicação entre vários tipos de sistemas.
5
Amazon – Empresa multinacional de comercio eletrônico com base nos EUA.
21
a oferecer serviços de IaaS, além de agregar maior segurança para a computação
nas nuvens?
1.2 OBJETIVOS
Serão descritos a seguir, os objetivos geral e específicos deste trabalho, de
modo a esclarecer o escopo do trabalho.
1.2.1 Objetivo Geral
Este trabalho terá como objetivo geral a descrição das terminologias que
envolvem a Computação nas Nuvens, a apresentação dos resultados qualitativos
obtidos a partir do comparativo com entre o OpenStack e o Eucalyptus, e da
implantação de um ambiente da nuvem utilizando o projeto de código aberto
Openstack.
1.2.2 Objetivos Específicos
- Apresentar e descrever os modelos e a arquitetura que envolve a
computação nas nuvens, evidenciando os principais benefícios de sua
utilização e seus principais riscos.
- Identificar os componentes que formam o projeto Openstack, apresentando
detalhadamente quais são suas responsabilidades e atribuições, e quais os
níveis de maturidade destes componentes.
- Apresentar os resultados obtidos da implantação de uma infraestrutura de
nuvem, utilizando o projeto Openstack, salientando, também, questões de
desempenho, de confiabilidade, integridade e disponibilidade.
- Através de pesquisas, apresentar a descrição dos componentes da
aplicação Eucalyptus e uma tabela comparativa com as principais
funcionalidades, capacidades e limites dos projetos Openstack e
Eucalyptus.
6
Rackspace – Empresa multinacional provedora de serviços de TI, com base nos EUA.
22
1.3 JUSTIFICATIVA
O poder de cálculo dos atuais processadores, associado a grande evolução
das mídias de armazenamento de informações, despontou a tecnologia de
virtualização, possibilitando o aproveitando de recursos ociosos, reduzindo custos de
infraestrutura, além de aumentar a disponibilidade dos sistemas e garantir aumentos
de produtividade. A partir da propulsão da virtualização, com seus múltiplos
hypervisors e de diferentes fabricantes, emerge a necessidade de um gerenciador
central que tivesse o papel de integrar diferentes soluções; surgindo, assim, a
computação nas nuvens.
De acordo com Velte Ant; Velte Tob et al (2011,p.3),
a computação em nuvem (Cloud Computing) está em toda parte. Abra
qualquer revista de tecnologia ou visite qualquer site ou blog e certamente
você verá alguma matéria sobre cloud computing. O único problema é que
nem todos concordam com o que isso significa. Pergunte a dez profissionais
diferentes o que é cloud computing e você obterá dez respostas distintas.
Segundo a definição sobre nuvem de SCHUBERT et al (2010,p.8, tradução
nossa), “a nuvem é uma execução elástica de recursos envolvendo múltiplos
interessados e que provêm um serviço medido através de múltiplas granularidades
para um nível de serviço adequado.”
Existem diversos trabalhos publicados com o propósito de explicar a
conceituação da computação nas nuvens, exaltando as principais características e
evidenciando os problemas existentes da utilização de uma estrutura na nuvem. A
proposta de Miranda et al. (2011), consiste em realizar o compartilhamento e estudo
de grandes volumes de dados biológicos, utilizando processamento paralelo de uma
Cloud, porém, não foca na descrição de uma solução para o gerenciamento do
ambiente. Já o artigo de Nurmi et al. (2009) realiza a descrição da solução open-
source Eucalyptus, apresentando a conceituação da Cloud e demonstrando a
arquitetura interna do sistema, mas não traça um comparativo com demais soluções.
Sotomayor et al. (2009), procura realizar um comparativo entre as principais
soluções de administração do ambiente de Cloud Computing, destacando soluções
como Amazon EC2, Nimbus, Eucalyptus, OpenNebula, entre outros, mas seu estudo
não aprofunda em questões internas de cada aplicação. O trabalho de Delgado
(2010) descreve detalhadamente a conceituação da nuvem, apresenta o Eucalyptus,
23
e demonstra testes de desempenho realizados no ambiente controlado por ele,
entretanto seus testes são focados, em sua maioria, nos sistemas de virtualização e
não na plataforma da nuvem.
O critério para a escolha pela implantação da solução Openstack ocorreu,
pois não foram localizados trabalhos acadêmicos com comparativos entre o
OpenStack e outras ferramentas de gerência da infraestrutura da nuvem. Além
disso, a comparação com o Eucalyptus ocorrerá por ele ser uma plataforma estável
e totalmente compatível com os serviços de nuvem oferecidos pela Amazon
(Eucalyptus Systems, 2012a). Academicamente, o termo Cloud Computing é tema
de diversos trabalhos, no entanto, também existem carências de trabalhos com foco
no desenvolvimento e apresentação de soluções que possam gerenciar um
ambiente complexo e heterogêneo como a nuvem.
Enquanto a virtualização assume sua importância nos pilares da nuvem,
existe, também, a necessidade de uma solução neutra, sem vínculos comerciais,
capaz de gerenciar ambientes heterogêneos na nuvem e ser utilizada por pequenas,
médias e grandes corporações. Dentro desta realidade, este trabalho justifica-se
pela necessidade de um estudo que possa expor de uma forma clara, as definições
sobre cloud computing e que relate como o projeto Openstack pode ajudar a
viabilizar infraestrutura de nuvens públicas e privadas.
1.4 DELIMITAÇÃO DO TEMA
Este estudo irá focar nas terminologias envolvendo a computação em nuvem,
apresentando e descrevendo seus principais conceitos. Também apresentará o
projeto Openstack, circunstanciando seus componentes e sua arquitetura de
comunicação e também apresentará um análise comparativa entre as soluções
OpenStack e Eucalyptus. A partir de um piloto prático, este trabalho irá realizar a
instalação dos componentes Nova e Glance do OpenStack, irá apresentar a
arquitetura do ambiente implantado e descreverá os testes realizados nos
componentes. Ao final, a partir da coleta de dados, disponibilizará resultados
qualitativos e quantitativos da solução implantada.
Este trabalho não irá focar na integração com equipamentos de
armazenamento centralizados, na implantação prática da aplicação Eucalyptus e
24
durante a implantação do projeto dará ênfase apenas ao emulador QEMU, não
utilizando demais sistemas de virtualização.
25
2 FUNDAMENTAÇÃO TEÓRICA
Este capítulo descreverá a conceituação de Computação nas Nuvens,
apresentando suas principais características, modelos de arquiteturas, suas
limitações, informando, também, suas principais vantagens e desvantagens,
salientando no decorrer do texto, como ocorreu a evolução natural deste modelo
computacional. O capítulo também apresentará a definição de virtualização e
armazenamento de dados centralizados, e como eles estão ligados diretamente com
a computação nas nuvens.
Para a elaboração deste trabalho realizou-se o levantamento bibliográfico por
meio de livros e artigos científicos que abordam sobre o tema apresentado no
trabalho, além de sites de soluções utilizadas para a computação nas nuvens e que
são reconhecidas na sua área de atuação. A elaboração dessa etapa foi
fundamental para oferecer sustentação à pesquisa experimental realizada para a
conclusão deste estudo.
Ander-Egg (1978, apud Lakatos; Marconi, 2002, p. 15), afirma que a pesquisa
é caracterizada por “um procedimento reflexivo sistemático, controlado e crítico, que
permite descobrir novos fatos ou dados, relações ou leis, em qualquer campo do
conhecimento”.
Lakatos e Marconi (2002) ainda acrescentam que a pesquisa é considerada
um caminho em busca do descobrimento da realidade e de verdades parciais, e,
devido a isto, torna-se necessário um tratamento científico.
A metodologia escolhida para a elaboração deste trabalho monográfico foi de
pesquisa bibliográfica e experimental.
A pesquisa bibliográfica, de acordo com Manzo (1971, apud Lakatos; Marconi,
2002, p. 71), “oferece meios para definir, resolver, não somente problemas
conhecidos, como também explorar novas áreas onde os problemas não se
cristalizam suficientemente”
Trujillo (1974, apud Lakatos; Marconi, 2002, p. 71) complementa esta
afirmação quando diz que a pesquisa bibliográfica “não é mera repetição do que já
foi dito ou escrito sobre certo assunto, mas propicia o exame de um tema sob novo
enfoque ou abordagem, chegando a conclusões inovadoras”.
26
2.1 COMPUTAÇÃO NAS NUVENS
Computação nas Nuvens, ou Cloud Computing é um novo modelo
computacional que busca principalmente a redução de custos e o aumento de
produtividade. A definição de Velte Ant; Velte Tob et al (2011,p.3) sobre cloud é que
“a função da computação em nuvem (cloud computing) é cortar custos operacionais
e o mais importante, permitir que departamentos de TI se concentrem em projetos
estratégicos em vez de manter o data center funcionando”.
O futuro da Cloud Computing pode ser comparado com a história da energia
elétrica. Segundo Miller (2008, p.8, tradução nossa),
O surgimento da computação em nuvem é o equivalente à revolução da
energia elétrica do século passado. Antes do episódio de utilitários elétricos,
cada fazenda e empresa de negócios produzia sua própria eletricidade a
partir de geradores autônomos. Após a criação da rede elétrica, fazendas e
empresas desativaram seus geradores e a energia elétrica foi comprada dos
serviços públicos a um preço muito menor (e com confiabilidade muito
maior) do que poderiam produzir por conta própria. Olhe para o mesmo tipo
de revolução que ocorre com a computação em nuvem.
De acordo com a definição do Nist7
(2011, p.2, tradução nossa), Computação
nas Nuvens é,
um modelo para permitir a onipresença, conveniente, o acesso à rede sob
demanda para um pool compartilhado de recursos computacionais
configuráveis (por exemplo, redes, servidores, armazenamento, aplicativos
e serviços) que podem ser rapidamente fornecidos e liberados com o
esforço de gerenciamento mínimo ou interação com o provedor de serviço.
A arquitetura computacional do modelo da Cloud Computing evoluiu ao longo
dos anos, a partir de outros modelos computacionais existentes, como o modelo
cliente-servidor, o modelo peer-to-peer 8
, o modelo computacional distribuído, e o
modelo grid de trabalho em grupo. Miller (2008)
A nuvem utiliza-se de características de todos os modelos citados
anteriormente, mas assemelha-se principalmente ao modelo computacional de
Sistemas Distribuídos, onde várias máquinas trabalham em conjunto. Segundo
Tanenbaum (1995, p.2, tradução nossa), “um sistema distribuído é uma coleção de
7
NIST - U.S. National Institute of Standards and Technology
8
Peer-to-Peer – Tipo de arquitetura de um sistema distribuído.
27
computadores independentes, que aparecem para um usuário de um sistema como
um único computador”. A figura 1, abaixo apresentada, ilustra o modelo
computacional da Cloud Computing.
Figura 1 - Arquitetura do modelo de computação nas nuvens
Fonte: Editado pelo autor com base em Miller (2008, p. 16)
Conforme Miller (2008, p. 16, tradução nossa),
usuários individuais conectam na nuvem a partir de seus próprios
computadores pessoais ou aparelhos portáteis, através da Internet. Para
estes usuários individuais, a nuvem é vista como uma única aplicação,
documento ou dispositivo. O hardware na nuvem (e do sistema operacional
que gerencia as conexões de hardware) é invisível.
2.1.1 Características do Modelo Computacional em Nuvem
A utilização do módulo computacional em nuvem, é conduzido pelas
corporações em sua grande maioria, quando o objetivo principal é a redução de
custos com infraestrutura. Entretanto, a cloud possibilita que corporações, ou até
mesmo usuários finais, possam se beneficiar de outras características positivas que
este modelo proporciona. Miller (2008, p. 24, tradução nossa) cita diversas
vantagens da Cloud Computing:
28
 baixo custo com a aquisição de computadores para usuários;
 aumento de desempenho;
 baixo custo com infraestrutura de Tecnologia da Informação;
 menor custo para manutenções de hardware e software;
 menor custo aquisição de software;
 atualização instantânea de sistemas;
 aumento de poder de processamento;
 capacidade de armazenamento ilimitada;
 aumento de segurança no armazenamento de informações;
 Aumento de compatibilidade entre sistemas distintos.
As características citadas são vantagens que usuários finais ou corporações
podem usufruir, não só reduzindo o custo, como também agregando maior qualidade
aos serviços utilizados da TI.
De acordo com o quadro de Reese (2009) apresentado a seguir, é possível
observar o comparativo qualitativo entre uma solução em nuvem e duas opções
comumente utilizadas pelas corporações para manter sua infraestrutura de TI. A
primeira e mais clássica, é a utilização de uma infraestrutura interna onde a própria
corporação é responsável por manter o capital físico e o capital humano. A segunda
opção é a utilização de um serviço terceirizado, onde previamente existe um acordo
mútuo entre a empresa contratante e a empresa contratada, de forma que possam
delimitar as atribuições de cada um. A empresa terceirizada é responsável por
manter toda a infraestrutura física, inclusive os serviços por ela prestados. Por fim, é
ilustrada a utilização de serviços na nuvem, onde claramente se pode observar uma
mescla de vantagens entre a opção de “TI Interna” e “Serviços Terceirizados”.
Quadro 1 - Comparativo de opções de infraestrutura em TI
TI Interna Serviços Tercerizados Computação nas Nuvens
Investimento de Capital Significante Moderado Insignificante
Despesas Moderado Significante Baseado na utilização
Tempo de Provisionamento Significante Moderado Nenhum
Flexibilidade Limitado Moderado Flexível
Requisitos de Experiência Equipe Significante Limitado Moderado
Confiança Varia Alto Moderado para Alto
Fonte: Editado pelo autor com base em Reese (2009, p. 12)
29
Ao mesmo tempo em que a Computação nas Nuvens pode reduzir o
investimento de capital inicial para novos projetos de TI, diminui-se o tempo de
provisionamento para novas instalações e aumenta-se a flexibilidade da
infraestrutura de TI. Na opção pela nuvem, também é possível observar a
necessidade de manter-se uma equipe de TI com experiência para que seja possível
a integração entre sistemas internos e os sistemas alocados fora da empresa.
Quanto à confiança da utilização dos serviços na nuvem, o que pode se observar é
um acréscimo de segurança da infraestrutura, afinal provedores de soluções em
nuvem utilizam de uma forma geral equipamentos redundantes e equipes
especializadas e dedicadas em regime de tempo de 24x7x365. Além disso, operam
de acordo com normatizações de segurança tais como a Statement on Auditing
Standards Nº. 70 (SAS 70) 9
, Payment Card Industry - Data Security Standard (PCI
DSS) 10
e a ISO IEC 27001 11
.
Segundo Reese (2009, p. 9, tradução nossa), a nuvem necessariamente
precisa ter um Mean Time Between Failures (MTBF)12
maior que uma estrutura
interna,
um desafio fundamental para qualquer sistema que exige longa vida de nós
em uma infraestrutura de nuvem, é o fato básico de que o tempo médio
entre falhas (MTBF) de um servidor virtual é necessariamente menor do que
para o hardware subjacente.
Desta maneira, pressupõe-se que uma infraestrutura na Cloud, terá um MTBF
sempre maior que uma estrutura interna, afinal ela possui uma estrutura grande o
suficiente para reduzir o número de falhas em equipamentos por meio da utilização
de equipamentos redundantes e trabalhando cooperativamente.
Velte Ant; Velte Tob et al. (2011, p. 30), também observa que a cloud
computing pode oferecer diversos benefícios. Ele cita a escalabilidade, prevendo um
crescimento futuro; a simplicidade do ambiente, permitindo que novos ambientes de
infraestrutura estejam disponíveis de imediato; o aumento na qualidade dos serviços,
afinal os fornecedores são qualificados para a realização de suas tarefas, e o
9
SAS 70 - Certificação que visa o controle e utilização de melhores práticas para empresas de
prestação de serviços. http://sas70.com/sas70_overview.html
10
PCI DSS – Padrão de segurança de dados do setor de cartões de pagamento.
https://www.pcisecuritystandards.org
11
ISO/IEC 27001 - Norma padrão para um sistema de gestão da segurança da informação.
http://www.iso27001security.com/html/27001.html
30
aumento de segurança das soluções utilizadas, na medida em que os fornecedores
possuem políticas de privacidade rigorosas que garantem, possivelmente, mais
segurança do que na própria TI local.
Apesar dos benefícios que ambientes da nuvem podem proporcionar, nem
tudo é vantajoso. Além das vantagens, Miller (2008, p. 24, tradução nossa) também
cita algumas desvantagens na sua utilização:
 necessidade constante de conexão à internet;
 desempenho ruim com conexões de internet lenta;
 mesmo em conexões rápidas, algumas aplicações podem ser mais
lentas, quando comparadas com uma execução em um computador
local;
 limitações de determinados tipos de aplicações;
 insegurança quanto à confidencialidade de informações;
 indisponibilidade dos dados na eventual falha de um provedor de
serviços na nuvem.
A nuvem pode não ser a solução ideal para determinado perfil de empresa ou
usuário. Conforme o comparativo de Reese apresentando anteriormente, os custos
com a Cloud podem ser, inclusive, maiores se comparado a uma infraestrutura
interna. A partir destas definições, as desvantagens citadas por Miller, como a
incerteza na confidencialidade dos dados, podem inibir a ascensão da Cloud.
Entretanto, as desvantagens da utilização desta nova arquitetura não devem
interromper o seu crescimento, de acordo com pesquisas realizadas. Segundo
estudo realizado pelo IDC (2010)13
, a previsão de crescimento da nuvem será de
27% por ano, entre 2009 até 2014. As corporações que pretendem fornecer serviços
na nuvem, precisarão se posicionar de uma forma agressiva até o ano de 2013, para
que não fiquem de fora do mercado.
12
MTBF – Cálculo utilizado para verificar o período médio entre falhas de um determinado dispositivo.
13
International Data Corporation – Empresa que realiza pesquisas de mercado. http://www.idc.com
31
2.1.2 A Importância da Virtualização e o Armazenamento Centralizado
A nuvem surgiu a partir do desenvolvimento e amadurecimento de soluções
como a virtualização e o armazenamento centralizado. A tecnologia de virtualização
permite que um hardware físico possa ser utilizado para instalação de diversas
máquinas virtuais. A tecnologia de armazenamento centralizado permite unificar
todas as informações em redes de armazenamento, simplificando a administração e
aumentando a flexibilidade para a alocação de dados. É possível analisar na figura a
seguir, que a nuvem está apoiada sob ambientes de virtualização e de
armazenamento centralizado, ainda que a utilização destas soluções não seja
obrigatória.
Figura 2 - Camadas da Computação nas Nuvens
Fonte: Editado pelo autor com base em IBM (2011)
A virtualização é um dos pilares da Computação nas Nuvens, afinal ela
possibilita uma melhor utilização de recursos computacionais, por meio da criação
de diversos ambientes virtuais em máquinas físicas. Com a técnica da virtualização,
é possível executar diversos sistemas operacionais de diferentes fabricantes em um
mesmo servidor físico. Isso garante o aproveitamento máximo da utilização de
processamento, memória e armazenamento de servidores, diminui
32
consideravelmente o tempo com o gerenciamento e instalação de novos sistemas,
além de reduzir custos com a administração do ambiente tecnológico e da aquisição
de equipamentos físicos.
O armazenamento de dados é um item indispensável para a Cloud
Computing. É neste pilar que se situam as maiores dúvidas quanto a segurança e
disponibilidade de dados. Na nuvem, todos os dados estão armazenados em
diferentes locais, garantindo, assim, que as informações possam ser acessadas a
qualquer momento e de qualquer lugar. Os dados podem estar alocados em
diferentes tipos de sistemas de armazenamento, sejam eles equipamentos
dedicados como storages, servidores, ou redes de armazenamento conhecidos
como SAN (Storage Area Network). Um sistema robusto de gerenciamento é
necessário para garantir a disponibilidade e o controle adequado das informações.
2.1.3 O Modelo Computacional da Computação nas Nuvens
O modelo computacional da computação nas nuvens está dividido em
conceitos, tipos de serviços e tipos de arquitetura. Este modelo computacional é
essencial para o entendimento de como tudo funciona e, naturalmente, vem se
adaptando aos novos conceitos, funcionalidades e arquiteturas.
De acordo com MELL; GRANCE (2008, apud Sosinsky, 2011, p. 63), a nuvem
é classificada em quatro tipos de arquiteturas, três modelos de serviço e, também,
cinco principais conceitos sobre o funcionamento da cloud. Esta definição, criada
originalmente pelo NIST, define as arquiteturas da nuvem em modelo comunitário,
híbrido, privado e público. Também classifica os tipos de serviço em IaaS
(Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software as a
Service). Por fim, define os cinco conceitos principais como conjunto de recursos,
acesso amplo à rede, serviço medido, serviço sob demanda e rápida elasticidade.
Conforme a figura apresentada a seguir, é possível observar a classificação acima
descrita.
33
Figura 3 – Visão Global da Computação nas Nuvens.
Fonte: Editado pelo autor com base em Sosinsky (2011).
2.1.4 Principais Conceitos
Com base no descritivo apresentado por Sosinsky e definido pelo NIST, é
possível descrever os conceitos da Computação nas Nuvens.
 Pool de Recursos: o Pool de Recursos está associado à quantidade
de recursos computacionais que estarão disponíveis para os usuários
finais, como a quantidade de processamento, memória e espaço de
armazenamento. Com a definição da quantidade de recursos
disponíveis, pode-se definir quanto será destinado para cada situação,
e quando serão compartilhados. Os recursos podem ser
compartilhados entre diversos usuários ao mesmo tempo, modo
conhecido como multi-inquilino. Além disso, estes recursos podem
estar geograficamente espalhados, porém de forma transparente para
os usuários finais. Por exemplo, se pode definir um Pool de Recursos
para um determinado grupo de usuários domésticos e outro para
usuários corporativos. Sosinsky (2011, p. 63)
 Serviços Sob Demanda: conhecido também como “on-demand”, o
conceito de serviço sob demanda define como serão utilizados os
34
serviços da nuvem. Assim como ocorre com outros serviços sob
demanda, como o consumo de água e eletricidade, os serviços
tecnológicos da cloud são utilizados conforme a necessidade, e são
alocados dinamicamente, de acordo com o crescimento da demanda.
Dessa forma, o custo total é a soma de todos os recursos utilizados em
determinado período. Isto possibilita que aplicações cresçam
dinamicamente, alocando automaticamente mais recursos sem que
seja necessário mudanças na infraestrutura local. Sosinsky (2011, p.
63)
 Elasticidade e Escalabilidade: a elasticidade e a escalabilidade estão
vinculadas diretamente com o pool de recursos e os serviços sob
demanda. Estes conceitos garantem a possibilidade de crescer
gradativamente o ambiente tecnológico para cada tipo de necessidade
de forma automática ou manual. Em uma demanda inicial, pode-se
utilizar X ciclos de processamento, memória e armazenamento, e estes
ciclos podem aumentar dinamicamente conforme a necessidade. Do
ponto de vista do cliente, os recursos podem ser adquiridos em
qualquer quantidade e em qualquer momento. Sosinsky (2011, p. 63)
 Serviço Medido: os recursos utilizados pelo usuário em determinado
período são mensurados, de forma que seja possível a identificação da
quantidade memória, CPU, I/O (Input/Output) de disco, ou utilização da
rede que foram de fato consumidos. A partir deste relatório, o usuário é
tarifado, baseado nas métricas de utilização. Sosinsky (2011, p. 64)
 Acesso Amplo à Rede: capacidade da rede possuir arquiteturas
heterogêneas, de modo que diversos dispositivos como celulares,
tablets, laptops e desktops possam acessar o ambiente em qualquer
local e a qualquer momento. Sosinsky (2011, p. 63)
35
2.1.5 Arquiteturas
Podemos classificar os modelos de arquitetura da nuvem em quatro principais
tipos. Não há um modelo que tenha vantagem sobre outro, a utilização destes
modelos vai depender da necessidade de cada corporação, questões de custo,
necessidades regulatórias, ou questões de segurança da informação.
2.1.5.1 Público
O modelo público é aquele em que a nuvem tem os seus recursos
compartilhados entre o público geral. Apesar de existir uma divisão lógica que
garanta a separação entre todos os usuários, sua infraestrutura física é a mesma
para todos (Sosinsky, 2011, p. 48). De pontos positivos, é possível citar o baixo
custo e a grande quantidade de oferta no mercado. Como aspecto negativo, é
possível relatar problemas de desempenho e segurança das informações quanto a
sua confidencialidade e disponibilidade, afinal, todos os dados estão alocados em
meios de armazenamento compartilhados.
2.1.5.2 Privado
O modelo privado, diferentemente do modelo público, é exclusivo de um
usuário ou um grupo. Ele pode estar situado dentro de uma corporação ou pode
estar alocado em um terceiro que garanta a sua utilização exclusiva. Este modelo
assegura que a infraestrutura será de uso dedicado, sem que haja o
compartilhamento de recursos. Sosinsky (2011, p. 48). Dentre os pontos positivos,
está a garantia de segurança dos dados, e o desempenho que este modelo pode
garantir. Os pontos negativos assinalam para o alto custo que um modelo como este
pode representar, por necessitar de uma infraestrutura dedicada, em que não exista
a concorrência por recursos computacionais.
36
2.1.5.3 Comunitário
Também é possível trabalhar de forma mais segura do que o ambiente
público, sem ter que realizar o investimento total de um modelo privado. Neste caso,
há caracterizado o modelo chamado comunitário, em que duas ou mais
organizações realizam investimentos em comum acordo, para viabilizar a utilização
de um modelo privado, compartilhando os recursos entre ambas. Ainda se pode
destacar neste modelo, os mesmos problemas com segurança e desempenho que
existem no modelo público, mas minimizados com a redução do número de
participantes de uma infraestrutura. Sosinsky (2011, p. 48).
2.1.5.4 Híbrido
Quando existe a união de dois ou mais modelos destacados anteriormente,
consideramos um modelo do tipo híbrido. Este é um dos modelos mais promissores
da Cloud Computing, pelo fato de utilizar as vantagens dos demais modelos, e ser
uma alternativa inicial para as corporações que desejam começar a utilizar serviços
da nuvem. Por exemplo, um cliente que esteja preocupado com a segurança e
disponibilidade de seus dados, poderia utilizar um modelo privado, mas quando
utilizar a nuvem para alocação de dados não críticos, poderia utilizar o modelo
público que lhe atenderia da mesma forma que o modelo privado, mas sem o seu
alto custo. Sosinsky (2011, p. 48).
2.1.6 Tipos de Serviço
Além dos modelos de arquitetura existentes da nuvem, ela também é
classificada quanto ao tipo de serviço que é prestado com a nomenclatura “como um
serviço”, ou na língua inglesa, “as a service”. Ofertar tudo como serviço faz parte da
estratégia de ascender a computação nas nuvens ao modelo de utilidade. A lista de
tipos de serviços oferecidos é extensa, mas serão citados aqui os principais tipos,
conforme se observa a seguir. Velte Ant; Velte Tob et al., (2011, p. 11)
 IaaS (Infrastructure as a Service)
 PaaS (Platform as a Service)
37
 SaaS (Software as a Service)
Figura 4 - Limites entre IaaS, PaaS, SaaS
Fonte: CSA (2011b).
A figura anterior explana as delimitações entre IaaS, Paas e Saas. Com base
nisso, se pode classificar o modelo IaaS como responsável por manter uma
infraestrutura física; o modelo PaaS em entregar uma solução para o
desenvolvimento e execução de aplicações; e o modelo SaaS por entregar uma
aplicação final e pronta para uso.
38
Naturalmente, já existem outras definições para diferentes tipos de serviços,
conforme ocorre o crescimento da evolução dos serviços na nuvem. Sosinsky (2011,
p. 53, tradução nossa), reforça que:
os três tipos de modelos de serviços em conjunto, têm vindo a ser
conhecido como o modelo SPI (SaaS, PaaS, IaaS) da computação em
nuvem. Muitos outros modelos de serviço também já foram mencionados:
StaaS, armazenamento como um serviço; IdaaS, Identidade como um
serviço; CmaaS, compliance como um serviço, e assim por diante. No
entanto, os tipos de serviço SPI abrangem todas as outras possibilidades.
2.1.6.1 Infraestrutura como um Serviço
Conforme ilustrado pela figura 5, o modelo IaaS é a base de apoio de todos
os demais modelos. Nele são fornecidos serviços ligados ao hardware e
equipamentos de infraestrutura. De acordo com Sosinsky (2011, p. 52), a grande
vantagem deste tipo de utilidade é que um usuário não precisa se preocupar com
quais equipamentos serão adquiridos para sua utilização, já que seu prestador de
serviço irá garantir todos os recursos necessários. Sua preocupação é focada em
dimensionar a quantidade de recursos tecnológicos que irá precisar para executar
determinada tarefa, e seu custo ficará definido pela quantidade cumulativa dos
recursos que utilizar. Um usuário, por exemplo, poderia adquirir os tipos de serviços
IaaS conforme citados abaixo:
 ciclos de CPU;
 quantidade de memória;
 espaço de armazenamento;
 velocidade de link de dados;
 firewalls e roteadores.
Para o prestador de serviços, a grande vantagem é que ele poderá
compartilhar sua infraestrutura física, e comercializar os serviços para diversos
locatários ao mesmo tempo. Outra característica do IaaS é que os recursos podem
ser dinamicamente ajustados, conforme a demanda dos serviços. Um usuário, por
exemplo, poderia utilizar X ciclos de CPU e memória em uma situação normal de
39
utilização de seus serviços e aumentaria dinamicamente para Y ciclos de CPU e
memória em momentos de grande demanda por parte das atividades que executa,
sem que precise, para isso, realizar mudanças físicas em seu ambiente. Velte Ant;
Velte Tob et al.(2011, p. 15)
2.1.6.2 Plataforma como um Serviço
O PaaS é um modelo executado acima do modelo IaaS (vide figura 5), e tem
como objetivo fornecer um meio compartilhado para que se possa criar e executar
aplicativos e serviços na nuvem. Velte Ant; Velte Tob et al., (2011, pag. 14) cita
alguns exemplos de utilização do PaaS que incluem principalmente:
 ambientes de desenvolvimento com bancos de dados;
 desenvolvimento de sistemas;
 integração de serviços web;
 hospedagem de serviços;
 utilização de sistemas operacionais.
O modelo PaaS, assim como os demais tipos de serviços, podem atribuir
vantagens ao usuário final e ao fornecedor do tipo de serviço. Um usuário de um
ambiente PaaS não tem controle sobre a infraestrutura, como CPU, quantidade de
memória alocada e espaço de armazenamento, porém tem o controle sobre o
ambiente operacional de determinada aplicação. Para o fornecedor, o modelo PaaS
é muito interessante, já que pode atender a múltiplos usuários simultaneamente em
uma mesma estrutura. Um dos pontos contrários aos PaaS é que a
interoperabilidade e a portabilidade entre fornecedores é prejudicada pelo fato de
utilizarem soluções de padrões diferentes e incompatíveis, dificultando a migração
entre fornecedores. Velte Ant; Velte Tob et al., (2011, pag. 14)
2.1.6.3 Software como um Serviço
Conforme ilustrado na figura 5, o SaaS está acima da camada do PaaS,
referenciado como uma aplicação final. De acordo com Miller (2008, p. 40), o
40
modelo SaaS é, provavelmente, o mais conhecido e difundido da Computação nas
Nuvens. Segundo Velte Ant; Velte Tob et al., (2011, pag. 12), este modelo
proporciona aplicativos para serem utilizados por meio da Internet, sem que o cliente
precise se preocupar com a infraestrutura necessária para utilizá-lo. O propósito
central é que o usuário possa acessar aplicativos utilizando um navegador de
páginas em qualquer lugar e a qualquer momento. Será de responsabilidade do
provedor do serviço manter toda a infraestrutura necessária para que o software seja
executado adequadamente.
Miller (2008, p. 40, tradução nossa) também descreve que,
cada organização servida pelo fornecedor é chamada de um inquilino, e
esse tipo de arranjo é chamado de arquitetura multi-inquilino. Os servidores
do fornecedor são virtualmente particionados para que cada organização
trabalhe com uma instância de aplicativo virtual personalizado.
Também é reforçado por Velte Ant; Velte Tob et al., (2011, pag. 14) que,
o SaaS difere das antigas distribuições de soluções de computação, uma
vez o SaaS foi desenvolvido especificamente para uso de ferramentas web,
como o navegador. Isto torna-os web-nativos. Foi construído também com
um múltiplo back-end, que permite a múltiplos clientes usarem o mesmo
aplicativo.
Como o ambiente é compartilhado entre diferentes usuários, o fornecedor que
disponibiliza serviços de SaaS terá o seu trabalho reduzido para efetuar atualizações
e manutenções, na medida em o fará em apenas poucos locais, diferentemente do
modelo existente, onde cada usuário precisa executar sua própria atualização, ou
mesmo manutenção.
2.2 A SEGURANÇA E OS LIMITES DA COMPUTAÇÃO NAS NUVENS
Um dos grandes percalços na caminhada em direção à utilização da nuvem é
a preocupação quanto à segurança da informação. Além disso, a nuvem também
tem suas limitações e pode não se adequar a realidade de todos os ambientes. As
corporações se preocupam muito quanto à confidencialidade, à disponibilidade e à
integridade dos dados. Quando dados sensíveis são enviados para a nuvem,
espera-se que eles sejam mantidos seguros, livres de acessos não autorizados e
41
que se mantenham íntegros. Também é indispensável que estes dados estejam
sempre disponíveis, a qualquer hora e em qualquer lugar.
2.2.1 Principais Preocupações
Uma pesquisa foi realizada pelo IDC e apresentada por Velte Ant; Velte Tob
et al., (2011, pag. 35), conforme ilustrada na figura 6, esta investigação apresenta a
opinião de 244 executivos de TI sobre a utilização de serviços na nuvem. Do total de
entrevistados, um grupo de 74,5% mostrou preocupação com a segurança de suas
informações. Outros dois grupos com 58%, mostraram preocupação com a
disponibilidade das informações e com o desempenho de soluções migradas para a
nuvem.
Figura 5 - Pesquisa sobre Computação nas Nuvens
Fonte: Velte Ant; Velte Tob et al., (2011, pag. 35)
Assim como ocorrem nas estruturas locais de TI, também podem ocorrer na
nuvem diversos tipos de ataques que buscam acessar informações privilegiadas, ou
mesmo interromper serviços ativos. De acordo com Velte Ant; Velte Tob et al.,
(2011, pag. 31), de fato existem muitos riscos na utilização da nuvem, porém muitas
empresas provedoras de serviço estão se esforçando ao máximo em manter todo o
ambiente da cloud computing seguro. Muitas vezes o ambiente mantido na nuvem
pelo provedor é inclusive mais seguro do que nas próprias corporações que utilizam
o serviço. Os provedores de serviços utilizam normas e recomendações que visam a
42
garantir um melhor nível de serviço prestado. Sosinsky (2011, p. 426, tradução
nossa) reforça que:
A computação em nuvem tem muitas propriedades únicas que a tornam
muito valiosa. Infelizmente, muitas dessas propriedades tornaram a
segurança uma preocupação singular. Muitas das ferramentas e técnicas
que poderiam ser utilizadas para proteger seus dados, cumprir com os
regulamentos, e manter a integridade de seus sistemas são complicados
pelo fato de que você compartilha seus sistemas com os outros e, muitas
vezes, terceirizam suas operações. Prestadores de serviços de computação
em nuvem estão bem cientes destas preocupações e estão desenvolvendo
novas tecnologias para lidar com elas.
Também é importante ressaltar que é possível ter diferentes níveis de
segurança em diferentes tipos de modelos de utilização da nuvem. Por exemplo,
seria possível a utilização de um serviço em IaaS com um nível mínimo de
segurança, e um nível maior com a utilização de serviço do modelo SaaS. A
utilização dos serviços na cloud necessitará que cada corporação elabore um
mapeamento dos controles já existentes na sua infraestrutura local, que verifique
quais os mecanismos de segurança necessários, e que estabeleça uma relação com
os controles e mecanismos que os provedores de nuvem podem fornecer. Sosinsky
(2011, p. 426)
Com base nas pesquisas citadas, manter de forma segura as informações
armazenadas, é o principal desafio que as organizações precisam se concentrar.
Ainda de acordo com Sosinsky (2011, p. 437), mecanismos de controle de acesso
podem ser utilizados para mitigar os riscos da nuvem, como a autenticação,
garantindo as credenciais de determinado usuário; a autorização, atribuindo aos
usuários direitos e permissões de acesso e a auditoria, buscando contabilizar e
registrar as ações realizadas na nuvem.
2.2.2 Limites da nuvem
Como qualquer outra tecnologia, a nuvem também possui suas deficiências e
que precisam ser levadas em conta antes da tomada de qualquer decisão em utilizar
serviços fora dos limites das corporações.
43
2.2.2.1 Confidencialidade das informações
Segundo a norma NBR ISO/IEC 27001 (2006, pag. 2), a definição para
confidencialidade é a “propriedade de que a informação não esteja disponível ou
revelada a indivíduos, entidades ou processos não autorizados”. Quando os dados
são enviados para um centro de dados terceirizado, esta propriedade pode ser
quebrada, já que a garantia pela confidencialidade das informações passa a ser
também de responsabilidade do fornecedor. As informações percorrem por
diferentes tipos de sistemas, arquiteturas, redes de informações e estão sujeitas a
serem abertas de forma silenciosa, sem que seus proprietários tenham
conhecimento do vazamento de suas informações. Segundo Velte Ant; Velte Tob et
al., (2011, pag. 31), quando os dados são enviadas para nuvem, perde-se uma
camada de controle das informações que foram alocadas em um ambiente externo.
Reese (2009, p. 100), destaca algumas situações em que a confidencialidade dos
dados poderia estar comprometida; como a falência declarada de um fornecedor; um
processo judicial que obrigaria o fornecedor a conceder acesso às informações; ou
ainda uma falha eventual de algum processo que venha a comprometer as
informações alocadas.
Com base nestes relatos, percebe-se que a criptografia tem papel vital para
mitigar incidentes quanto à confidencialidade dos dados. Antes das informações
serem enviadas para ambientes na nuvem, os dados devem ser criptografados,
garantindo consequentemente uma maior segurança. É importante ressaltar que,
apesar dos benefícios resultantes da criptografia dos dados, perde-se também
desempenho no acesso das informações, em razão dos cálculos matemáticos
necessários para criptografar e descriptografar constantemente as informações.
Além disso, mecanismos de criptografia podem não serem aplicáveis em todos os
tipos de sistema, inviabilizando a utilização dos serviços na nuvem quando se é
necessário o total controle das informações.
2.2.2.2 Disponibilidade de serviços
A norma NBR ISO/IEC 27001 (2006, pag. 2), descreve disponibilidade como
“propriedade de estar acessível e utilizável sob demanda por uma entidade
autorizada”. É necessário que quando serviços são utilizados na nuvem, eles
44
estejam disponíveis a qualquer momento e que tenham desempenho suficiente para
atender as demandas das aplicações. O fornecedor de serviços precisa garantir a
disponibilidade das aplicações, como também é necessário que ele tenha uma
grande capacidade de comunicação com a Internet, visando atender todos os seus
clientes de forma satisfatória com os serviços que está prestando. Do lado do
cliente, também é necessário que ele também mantenha uma infraestrutura de
comunicação com a Internet adequada para os tipos de serviços que irá utilizar.
Ainda assim, manter uma estrutura de backup local ou mesmo em outro fornecedor
de nuvem, pode ser uma boa alternativa para garantir uma maior disponibilidade dos
serviços.
2.2.2.3 Tipos de aplicações
Há alguns tipos de aplicações que não justificam sua movimentação para uma
plataforma na nuvem, em função de suas próprias características. Por exemplo, uma
aplicação que demanda uma quantidade significativa de troca de tráfego, poderia ser
inviabilizada em uma estrutura na nuvem pelo seu alto custo relacionado. Além
disso, aplicações legadas que não tenham condições de serem migradas, podem
não serem portadas para o ambiente externo por questões de compatibilidade. É
necessário que entenda-se a necessidade do negócio e das aplicações, para que
seja possível uma análise prévia dos tipos de aplicações e serviços que teriam
vantagens se utilizados em ambientes da cloud.
2.2.2.4 Conformidade com a legislação vigente
A conformidade com a legislação vigente é outro fator que precisa ser
observado. Os países possuem legislações diferentes e que podem influenciar na
segurança dos dados. Países como o EUA (Estados Unidos da América) permitem
ao governo o acesso às informações armazenadas na nuvem em casos de
necessidades de investigações Velte Ant; Velte Tob et al (2011,p.32).
Uma citação do código de prática da NBR ISO/IEC 27005 (2005, pag. xi),
descreve que,
45
uma outra fonte é a legislação vigente, os estatutos, a regulamentação e as
cláusulas contratuais que a organização, seus parceiros comerciais,
contratados, e provedores de serviço tem que atender, além do seu
ambiente sociocultural.
Conforme observou-se, esta definição que visa descrever as fontes para
estabelecer os requisitos de segurança da informação, também trás a preocupação
com a legislação vigente. Como as informações armazenadas podem estar alocadas
em diversos países, é importante observar qual a legislação vigente nestes locais.
Em eventuais intimações com o provedor do serviço na nuvem, os dados de todos
os clientes lá alocados podem ser abertos durante uma investigação.
2.2.2.5 Multi-Inquilino
De acordo com Reese (2009, p. 3), o conceito de multi-inquilino ou como
definido na língua inglesa, multi-tenant é a capacidade de um sistema oferecer
múltiplas instâncias de serviços compartilhando os mesmos recursos com vários
usuários ao mesmo tempo. Este tipo de conceito permite que a infraestrutura seja
compartilhada, reduzindo investimentos e o custo atribuído com desenvolvimento e
suporte necessário para manter as aplicações. Conforme Sosinsky (2011, p. 202,
tradução nossa),
multi-locação também tende para a média da variabilidade intrínseca da
procura individual, porque o "coeficiente de variáveis aleatórias" é sempre
menor do que ou igual a qualquer uma das variáveis individuais. Com uma
demanda mais previsível e menos variação, serviços na nuvem podem ser
executados em maiores taxas de utilização do que os sistemas individuais.
Isso permite que sistemas de nuvem operem com maior eficiência e
menores custos.
Entretanto, o conceito de multi-inquilino pode resultar em alguns problemas
para usuários que utilizam serviços compartilhados. Quando um fornecedor
determina a quantidade de recursos destinada para uma determinada infraestrutura,
ele poderá realizar uma análise pela média de utilização estimada para um serviço
que irá fornecer. Ocorre que se este nível médio de utilização exceder o nível
previsto poderá resultar em impactos para seus clientes. Por exemplo, um
determinado usuário que utiliza massivamente o acesso ao sistema de
armazenamento, através de operações de leitura e gravação randômicas, afetaria
provavelmente os demais usuários que estão utilizando o mesmo serviço.
46
2.2.2.6 Dependência do fornecedor
Certas aplicações são desenvolvidas na nuvem atendendo os requisitos de
determinado fornecedor. O problema é que o usuário pode ficar sem alternativas
quando necessitar da portabilidade para sistemas de outros prestadores de serviços.
Como a aplicação foi desenvolvida utilizando métodos disponibilizados pelo terceiro,
ela pode ficar totalmente dependente do ambiente utilizado, causando o que é
chamado de “vendor lock-in”. É indispensável que os fornecedores sejam
analisados, buscando entender as padronizações utilizadas, e se elas poderão ser
portadas para outros sistemas sem a necessidade de adaptações.
2.2.3 Cloud Security Alliance
Os problemas relacionados com segurança na nuvem evidenciaram a
necessidade de existir um estudo que apontasse os principais riscos da utilização de
um ambiente em cloud e como estes riscos poderiam ser mitigados. Com base nesta
necessidade, uma associação sem fins lucrativos chamada CSA (Cloud Security
Alliance)14
foi criada, buscando a realização de pesquisas e a identificação dos
principais problemas com segurança na nuvem, sugerindo as melhores práticas de
segurança no contexto da computação nas nuvens. Este grupo de estudo é apoiado
por profissionais da indústria, empresas, associações e demais partes interessadas.
O documento divulgado como “CSA Guidance” fruto do estudo do grupo, está
atualmente na versão 3.0, e traz as definições sobre cloud computing, métodos de
governança e operação da nuvem. Ele está dividido em três grandes sessões:
 arquitetura da Nuvem;
 governança na Nuvem;
 operação na Nuvem.
Além das sessões principais, o guia traz consigo quatorze domínios que
tratam assuntos relacionados à segurança e arquitetura de rede da nuvem. O estudo
sugere que as organizações adotem abordagens baseadas em riscos durante a
14
CSA – http://www.cloudsecurityalliance.org
47
migração dos serviços para a nuvem. De acordo com o guia, uma empresa que for
realizar a migração de um ativo para a nuvem, deverá classificá-lo em dados ou
aplicações. A partir desta classificação, deverá avaliar os potenciais riscos quando
estiverem em um ambiente da nuvem e qual a importância deles para a corporação.
Com a definição de risco do ativo definida, pode-se determinar qual tipo de
arquitetura utilizar: CSA (2011a).
 público;
 privado – interno (dentro da corporação);
 privado – externo (provedor terceiro);
 comunitário;
 híbrido.
Segundo o CSA (2011a) também é importante, nesta etapa, possuir um
mapeamento de processos das aplicações e dados, buscando encontrar a
arquitetura ideal e o tipo de serviço que será utilizado, seja IaaS, PaaS ou SaaS. No
ambiente da nuvem, dependendo da arquitetura escolhida e do tipo de serviço para
determinada aplicação, podem existir diferentes responsabilidades entre a
organização que está utilizando a nuvem e o provedor do serviço. A ilustração a
seguir apresenta as responsabilidades entre os tipos de modelos computacionais da
nuvem, visando o entendimento das responsabilidades entre a organização e o
provedor de serviço da nuvem.
48
Figura 6 - Responsabilidades entre modelos computacionais da nuvem
Fonte: CSA GUIA PT-BR (2011b).
49
2.3 VIRTUALIZAÇÃO
Apesar de não ser um requisito obrigatório, a virtualização é um dos motores
que impulsionaram a computação nas nuvens. Esta tecnologia busca aproveitar
melhor os recursos computacionais, evitando desperdícios e garantindo,
principalmente, flexibilidade na criação e movimentação de máquinas virtuais.
O conceito de virtualização iniciou a partir de ano de 1960, quando a IBM15
utilizou seus grandes mainframes16
para dividi-los em diversas máquinas virtuais,
buscando maximizar a eficiência da utilização dos grandes computadores. Dessa
forma, era possível que diversas máquinas virtuais trabalhassem ao mesmo tempo,
compartilhando recursos. Com o passar dos anos, por volta de 1980, o modelo
cliente-servidor dos processadores x8617
acabou dominando o mercado da
tecnologia de computadores, deixando a virtualização em desuso. A tecnologia x86
tinha um baixo custo e permitia um modelo de computação distribuído. Neste modelo
era possível que servidores com processadores x86 de alto poder de processamento
executassem aplicações para diversas máquinas clientes ao mesmo tempo. Blokdijk;
Menken (2009, p. 11)
Os processadores foram evoluindo ao longo dos anos, crescendo
verticalmente em capacidade de processamento e horizontalmente em número de
núcleos. Apesar da grande evolução dos processadores, eles não eram utilizados
em sua totalidade, passando a ficar ociosos durante sua maior parte da carga de
trabalho. Somado a isto, novas necessidades surgiam, buscando reduzir custos com
TI, e aumentando a disponibilidade de sistemas computacionais. A solução para isso
seria a volta da tecnologia de virtualização iniciada na década de 1960. A VMware18
introduziu em 1999 a primeira solução para virtualização em processadores x86,
resgatando a tecnologia que havia sido deixada para trás. Blokdijk; Menken (2009, p.
12)
15
IBM – International Business Machines – Empresa situada nos EUA, voltada para a área de
informática.
16
Mainframe – Computador de grande porte, com alto poder de processamento.
17
Tipo de arquitetura de processadores
18
VMware – Empresa situada nos EUA, desenvolvedora de software para virtualização.
50
A tecnologia de virtualização evoluiu muito a partir do ano de 1999. Nos dias
atuais é possível encontrar soluções de diferentes fabricantes que possuem
soluções para virtualização, para diferentes plataformas e tipos de serviços.
2.3.1 Vantagens
A virtualização oferece uma série de vantagens, buscando maximizar a
utilização dos recursos de TI e reduzindo consequentemente seu custo. Dentre as
vantagens, é possível citar:
 redução no custo de infraestrutura;
 aumento de disponibilidade de sistemas;
 melhor aproveitamento de recursos ociosos;
 maior taxa de consolidação;
 menor tempo para entrega de serviços computacionais;
 facilidades na recuperação de desastres;
 gerenciamento centralizado;
 economia de espaço físico.
2.3.2 Desvantagens
A utilização da virtualização possui uma série de benefícios, entretanto
também traz algumas desvantagens em sua adoção como:
 alto consumo de memória física, podendo ser um gargalo na
infraestrutura física;
 concentrador de risco, quando há mais de uma máquina virtual em um
mesmo hardware;
 perda de desempenho quando comparado ao hardware físico;
 segurança na camada de virtualização.
51
É evidente que as desvantagens citadas são pequenas, se comparadas com
as vantagens da tecnologia. Estas desvantagens podem ser facilmente analisadas e
mitigadas através de análises pontuais dos riscos.
2.3.3 Virtual Machine Monitor
Segundo Sosinsky (2011, p. 202), uma VMM (Virtual Machine Monitor) ou
hypervisor como também é referenciado, é um programa de baixo nível para
fornecer ao sistema operacional acesso a recursos da máquina física. A virtualização
pode ser classificada em dois tipos de arquitetura, o “tipo I” e o “tipo II”.
O “tipo I” adiciona uma camada de virtualização entre o hardware e o sistema
operacional convidado, garantindo um melhor desempenho, evitando a competição
de processos entre o sistema operacional convidado e a camada de virtualização.
Um hypervisor que executa um sistema operacional convidado no “tipo I” pode
trabalhar como uma virtualização completa de processador (Full Virtualization) ou
como uma para-virtualização (paravirtualization). Na virtualização completa, a
máquina virtual tem acesso direto às instruções do processador, garantindo em
algumas ocasiões um melhor desempenho. Na para-virtualização, é necessário uma
interface entre o hypervisor e a máquina virtual que está sendo executada,
geralmente modificando o sistema operacional convidado e garantindo, assim, um
melhor desempenho. Sem a interface, ocorre uma emulação completa do hardware,
reduzindo o desempenho da máquina virtual. Sosinsky (2011, p. 202)
Já a virtualização de “tipo II”, tem instalada a camada de virtualização dentro
de um sistema operacional hospedeiro subjacente. O grande problema do tipo II é
que o sistema operacional hospedeiro irá concorrer na utilização de recursos com a
camada de virtualização, afetando o desempenho dos sistemas operacionais
convidados. Quando o “tipo II” executa uma máquina virtual, ela está virtualizada por
meio da para-virtualização, da virtualização total, ou por meio de uma emulação
completa de hardware. Sosinsky (2011, p. 203)
É importante ressaltar que, para que a virtualização completa possa ter um
desempenho maior que a para-virtualização, é necessário que o processador esteja
preparado para entender as instruções corretas. Os processadores mais recentes da
52
Intel19
e AMD20
possuem suporte aos recursos VT-x e AMD-V respectivamente, que
garantem a possibilidade de execução da virtualização completa com o maior
desempenho possível. Este tipo de virtualização com suporte nos processadores,
também é conhecido como a virtualização com hardware assistido. Quando o
recurso de virtualização no processador é inexistente, os hypervisors para-
virtualizados costumam ter um desempenho superior que a virtualização completa,
pois conseguem analisar rapidamente as requisições das máquinas virtuais por meio
da modificação existente no sistema operacional convidado. Mattos (2012)
Em grande parte das instalações, o “tipo I“ é utilizado para provedores de
serviço ou corporações com serviços locais de TI que buscam o melhor desempenho
para as máquinas virtuais. Já o “tipo II”, é comumente utilizado para
desenvolvimento e homologação de aplicações, ou mesmo para utilização
doméstica. A figura 8 exemplifica a arquitetura de um ambiente virtual conhecido
como virtualização de “tipo I” e o “tipo II”. O modelo “tipo I” é o mais utilizado para
consolidar aplicações legadas da TI local de uma corporação.
19
INTEL - Empresa multinacional de tecnologia dos Estados Unidos da América.
20
AMD - Advanced Micro Devices – Empresa multinacional dos Estados Unidos da América.
53
Figura 7 - Tipos de arquitetura de virtualização.
Fonte: Elaborado pelo autor.
2.3.4 Soluções de Virtualização
Existem, atualmente, inúmeras soluções com o propósito de realizar a
virtualização de máquinas virtuais. Algumas soluções trabalham exclusivamente com
o “tipo I“, e outras com o “tipo II”. Este trabalho irá apresentar brevemente as
soluções Qemu, KVM, Xen, VirtualBox e o VMware ESX. Estes hypervisors citados
estão entre os mais utilizados para ambientes de produção e também para
ambientes de testes e homologação.
54
2.3.4.1 Kernel-based Virtual Machine
O KVM (Kernel-based Virtual Machine), mantido pela RedHat21
, é uma
solução de código aberto para a infraestrutura de virtualização de máquinas virtuais
e utilizado concomitantemente com o emulador e virtualizador Qemu. O KVM é
instalado como um módulo do kernel do Linux e foi originalmente desenvolvido para
arquitetura x86 e x86_64. Para utilizar o KVM é necessário que o processador do
hardware hospedeiro contenha a extensão de virtualização disponível nos
processadores AMD ou INTEL. O KVM executa em modo de virtualização completa
de processador, embora utilize a para-virtualização para dispositivos de
entrada/saída. Kvm (2011)
2.3.4.2 Qemu
O Qemu é uma aplicação de código aberto que realiza a emulação e
virtualização de máquinas virtuais. O Qemu pode trabalhar em modo usuário para
emulação de sistemas operacionais e para diferentes plataformas de CPU ou no
modo de virtualização completa, onde consegue virtualizar completamente a
arquitetura de hardware para uma máquina virtual. É importante ressaltar que o
Qemu é utilizado como complemento de virtualização para diversos hypervisors.
Nestes casos, o Qemu é empregado para a para-virtualização de dispositivos de
entrada/saída. É possível citar entre eles o KVM, Xen e Virtualbox. Qemu (2012a)
2.3.4.3 Xen
O Xen é uma plataforma de código aberto para realizar a virtualização de
máquinas virtuais de diversas arquiteturas como x86 e x86_64, além de outras. O
Xen possui variações da sua plataforma, que trabalham como “tipo I“ ou “tipo II”, e
também da forma para-virtualizada ou virtualização completa. Assim como o KVM, o
Xen necessita que o processador do hardware hospedeiro contenha a extensão de
virtualização disponível nos processadores AMD ou INTEL, para que possa realizar
a virtualização completa. A plataforma Xen é uma das mais utilizadas atualmente e
21
RedHat – Empresa multinacional com base nos Estados Unidos da América que produz software
baseado no sistema operacional Linux.
55
empregada, também, como base para soluções proprietárias de virtualização como o
XenServer22
da Citrix Systems e como solução de virtualização da Oracle23
,
conhecida como Oracle VM24
. Xen (2012)
2.3.4.4 Vmware ESX
O VMware ESX é uma solução proprietária de virtualização pertencente a
corporação VMware, Inc., subsidiária da EMC Corporation25
. O hypervisor do
VMware ESX trabalha no “tipo I” e permite a virtualização de diversos sistemas
operacionais no modo para-virtualizado ou virtualização completa. Vmware (2012b)
2.3.4.5 Virtualbox
O Virtualbox é uma solução de virtualização pertencente a Oracle e que utiliza
como modelo de trabalho o “tipo II” de virtualização. O VirtualBox é instalado em um
sistema operacional hospedeiro realizando a para-virtualização ou, ainda, a
virtualização completa, quando o processador possuir suporte a extensão de
virtualização ativa. Por trabalhar exclusivamente com o “tipo II”, o VirtualBox tem
uma maior adoção em ambientes domésticos e de homologação. Virtualbox (2012)
2.4 O ARMAZENAMENTO DE DADOS
Assim como a virtualização, as tecnologias de armazenamento de dados são
de suma importância para o crescimento da computação nas nuvens. Muitas
tecnologias foram desenvolvidas e aprimoradas para garantir o máximo de confiança
quanto se fala de armazenamento de dados. Existem diversas alternativas de
arquiteturas para armazenamento de informações, sejam elas de acesso local ou
acesso compartilhado em redes de dados, das quais podemos citar os tipos de
storage DAS (Direct Attached Storage), NAS (Network Attached Storage) e SAN
(Storage Area Network). A palavra da língua inglesa “storage”, que na tradução do
22
XenServer – Solução proprietária de virtualização - www.xensource.com.
23
Oracle – Empresa multinacional de tecnologia dos Estados Unidos da América.
24
Oracle VM - http://www.oracle.com/us/technologies/virtualization
25
EMC Corporation - Empresa multinacional fornecedora de sistemas para infraestrutura e situada
nos Estados Unidos da América.
56
português brasileiro significa “armazenamento”, é um termo técnico utilizado e
generalizado como um dispositivo centralizado para o armazenamento de dados.
2.4.1 Direct Attached Storage
O storage do tipo DAS utiliza uma conexão direta entre o storage e o host
cliente. Todas as requisições de acesso ao disco são feitas diretamente para o
storage, que pode ser desde um simples disco conectado, até um equipamento
storage dedicado em configuração raid 26
ativa, para o armazenamento de dados.
Tecnologias como PATA (Parallel Technology Attachment), SCSI (Small Computer
System Interface), SATA (Serial Advanced Technology Attachment), SAS (Serial
Attached SCSI) e FC (Fibre Channel) são algumas tecnologias de conexões
utilizadas em modelos do tipo DAS. Sacks (2001)
2.4.2 Network Attached Storage
Um equipamento de storage do tipo NAS é aquele que fornece um meio de
armazenamento de dados por meio de uma rede LAN (Local Area network), utilizada
concomitantemente com a estrutura existente para a comunicação de serviços de
rede baseados em TCP/IP. Normalmente estes tipos de dispositivos são servidores
ou equipamentos dedicados com vários discos de armazenamento de dados. Estes
discos, geralmente, participam de um grupo de raid, buscando um maior
desempenho de I/O (Input/Output) de dados e redundância de discos. Para a
comunicação do NAS com os clientes (hosts), normalmente utilizam-se protocolos
como o CIFS (Common Internet File System) e o NFS (Network File System). Sacks
(2001)
2.4.3 Storage Area Network
Storage Area Network é a forma de armazenamento de dados utilizando uma
rede de dados dedicada, exclusivamente, para o tráfego de informações. Este tipo
de storage é indicado para aplicações que necessitam de um alto desempenho para
26
Raid – Tipo de tecnologia utilizada para criar uma redundância em um conjunto de discos
independentes, além de oferecer mais desempenho para o acesso e gravação de dados.
57
o acesso aos dados, ao mesmo tempo em que necessitam da escalabilidade para o
crescimento futuro. Em uma mesma rede SAN, podem estar disponíveis vários
equipamentos de armazenamento de dados, os quais são acessados por diversos
hosts simultaneamente. Usualmente, a comunicação dos dados em uma rede SAN
pode ocorrer utilizando a tecnologia de transporte de dados FC, ou utilizando o
protocolo de internet IP conhecido como iSCSI (Internet Small Computer System
Interface), que utiliza como meio de transporte a rede do tipo ethernet. Assim como
os equipamentos NAS, os discos de um equipamento do tipo SAN, geralmente
participam de um grupo de raid buscando um maior desempenho de I/O
(Input/Output) de dados e redundância de discos. Sacks (2001)
Também é importante ressaltar, que em uma SAN os discos de
armazenamento são apresentados aos seus clientes como uma LUN (Logical Unit
Number). Uma LUN é uma referência utilizada para identificar uma unidade lógica
em uma rede SAN. Por exemplo, um dispositivo SAN disponibiliza uma determinada
LUN de nome lun0 com determinado volume e mapeia esta LUN para um host
específico. Sacks (2001)
58
3 SOLUÇÃO PARA GERÊNCIA DA INFRAESTRUTURA DA NUVEM
Neste capítulo, serão abordadas as diversas soluções para orquestrar um
ambiente de infraestrutura da nuvem. A sessão 3.1 irá definir o conceito de
orquestrar a nuvem, enquanto a sessão 3.2 irá apresentar as diversas soluções
existentes, bem como uma análise parcial das soluções de IaaS existentes. As
sessões 3.3 e 3.4 irão apresentar em maiores detalhes, as soluções Eucalyptus e
Openstack respectivamente. Por fim, a sessão 3.5 irá apresentar um estudo
comparativo entre OpenStack e Eucalyptus.
3.1 ORQUESTAR O AMBIENTE DA NUVEM
Segundo o dicionário MICHAELLIS (2009), a palavra orquestrar significa
“Compor as diferentes partes de uma peça musical para ser executada por
orquestra” ou ainda “Orquestrar os componentes de uma equipe”. Em uma orquestra
sinfônica, grupos orquestrais são regidos por um maestro que tem a
responsabilidade de conduzir estes grupos a um objetivo final, a apresentação ao
grande público. Fazendo uma analogia com a Computação nas Nuvens, o maestro,
é a aplicação que controlará os diferentes tipos de sistemas de virtualização, as
diferentes plataformas de armazenamento, as atribuições e os controles de acesso,
delineando, por fim, a estrutura que será disponibilizada ao usuário.
Os conceitos de virtualização e armazenamento centralizado são, atualmente,
bem compreendidos e utilizados por grande parte das corporações, mas a grande
oferta de soluções e padrões estabelecidos evidenciou o desafio existente em
orquestrar esta variedade de soluções e garantir uma organização e simplificação do
ambiente na nuvem.
3.2 SOLUÇÕES DE IAAS EXISTENTES
Nesta sessão serão descritas soluções de IaaS utilizadas como referência
para o desenvolvimento deste trabalho. Os principais serviços da Amazon serão
descritos e, conforme citado anteriormente neste trabalho, também existem diversas
soluções de código aberto que foram desenvolvidas e estão disponíveis para realizar
59
o gerenciamento de uma infraestrutura para a nuvem. O quadro abaixo apresenta
seis principais soluções escolhidas.
Quadro 2 - Soluções para gerenciamento de ambientes IaaS.
Nome Tipo de Plataforma Versões código Arquitetura
Amazon AWS IaaS Proprietário Público
Eucalyptus IaaS Proprietário/Aberto Privado/Híbrido
Nimbus IaaS Aberto Privado/Híbrido
OpenNebula IaaS Aberto Privado/Híbrido
OpenStack IaaS Aberto Público/Híbrido/Privado
Fonte: Elaborado pelo autor.
3.2.1 Amazon Web Services
A Amazon é uma grande empresa de comércio eletrônico dos EUA, que no
ano de 2002 começou a oferecer serviços na internet conhecidos como AWS27
(Amazon Web Services). Estes serviços evoluíram ao longo dos anos e, de forma
pioneira, a Amazon aprimorou sua estrutura de modo a oferecer serviços sob
demanda. Atualmente, os serviços da AWS formam um conjunto de soluções para
oferecer IaaS para empresas e usuários domésticos. A Amazon possui zonas de sua
infraestrutura espalhadas em algumas localidades do mundo, incluindo o Brasil,
onde está instalada na cidade de São Paulo. Amazon (2012c) Dentre os diversos
serviços oferecidos, este trabalho irá destacar três principais:
EC2 (Elastic Compute Cloud): Serviço que oferece capacidade de
computação redimensionável na nuvem. Com o EC2 é possível gerenciar instâncias
de máquinas virtuais em poucos minutos, escalonando para mais ou para menos a
quantidade de recursos necessários. Além das diversas características, o EC2
fornece um conjunto de funções que podem ser executadas via API. Estas funções
permitem que sistemas de gerenciamento de terceiros sejam integrados com a
27
AWS – http://aws.amazon.com
60
estrutura EC2 da Amazon, possibilitando a criação de instâncias, grupos de
segurança, controles de acesso, entre outros. Amazon (2012a)
EBS (Elastic Block Store): O serviço EBS fornece volumes de
armazenamento em bloco para a utilização com instâncias EC2. Os volumes EBS
são armazenados fora da instância e garantem uma vida independente da instância.
Os volumes EBS podem ser utilizados para banco de dados, sistema de arquivos ou
acesso a um armazenamento bruto do bloco. Amazon (2012e)
S3 (Simple Storage Service): Assim como o EBS, o S3 fornece um serviço
de armazenamento de dados, porém com utilização projetada para utilização na
internet via protocolo HTTP28
ou BitTorrent29
. Outra grande diferença do S3 para o
EBS é que o EBS mantém os dados apenas em uma zona da Amazon, enquanto o
S3 pode replicar os dados do volume ao longo das demais zonas, garantindo
réplicas dos dados alocados. Em contrapartida, a velocidade de leitura e gravação
de dados ao S3 pode ser menor se comparada com o EBS. Além disso, o S3
permite manter imagens de estado (snapshots) do serviço EBS, garantindo, assim,
backups dos volumes EBS. Também é fornecido pelo S3 interfaces de integração
(API) SOAP e REST para o gerenciamento de arquivos. Amazon (2012b)
3.2.2 Nimbus
O Nimbus é uma plataforma focada na infraestrutura da computação nas
nuvens. Possui integração com Xen e KVM, e é compatível como o padrão de API
EC2 e S3 da Amazon. Apesar de ele poder ser utilizado tanto para provedores que
desejam oferecer serviços em nuvem como para usuários finais ou desenvolvedores
que precisam testar aplicações, ele tem um forte apelo acadêmico, o qual é utilizado
para gerenciar alguns tipos de aplicações legadas. Nimbus (2012a)
3.2.3 OpenNebula
O OpenNebula, é um projeto de código aberto que busca desenvolver uma
padronização para a indústria, com o objetivo de gerenciar ambientes virtualizados e
28
HTTP - Hypertext Transfer Protocol – Protocolo utilizado para comunicação de sites web.
29
BitTorrent – Protoloco de transferências de arquivos em topologia peer-to-peer.
61
infraestrutura de uma nuvem híbrida e privada, apesar de também ser suportado
para o gerenciamento de uma nuvem pública. O projeto OpenNebula foi iniciado
como uma pesquisa no ano de 2005, e teve sua primeira versão disponibilizada em
2008. O OpenNebula pode gerenciar os hypervisors Xen, KVM, e VMware além de
suportar integração com o modelo de API EC2 da Amazon. Opennenula (2012a)
3.2.4 Eucalyptus
O Eucalyptus é uma aplicação madura, open-source, que trabalha com alguns
tipos de hypervisors como o Xen e KVM, e realiza a integração com o padrão de API
EC2 e S3 da Amazon. Iniciado a partir de um projeto de pesquisa da Universidade
da Califórnia, Santa Barbara em 2007, ele foi desenvolvido com base na
infraestrutura do fornecedor de IaaS Amazon, buscando adicionar suas principais
características e funcionalidades. O Eucalyptus possui duas divisões internas, uma
divisão open-source baseada na licença GPL v3, e outra proprietária. A licença
proprietária disponibiliza outras funcionalidades, como integração com hypervisor
VMware ESX e suporte técnico, que não estão inclusas na versão open-source.
Eucalyptus (2012b)
3.2.5 OpenStack
O Openstack é uma solução de gerência de uma nuvem IaaS, seu código é
totalmente livre e surgiu em 2010, fruto de um de projeto de pesquisa e
desenvolvimento a partir da união da NASA (National Aeronautics and Space
Administration) dos Estados Unidos e da empresa privada de infraestrutura,
Rackpace. O conceito principal do Openstack, que está baseada na licença Apache
2.0, é fornecer uma plataforma de gerenciamento de infraestrutura neutra e
compatível com o maior número possível de desenvolvedores de aplicações e
infraestrutura. O OpenStack pode controlar os hypervisors Xen/XenServer, KVM,
VMware/ESX, LXC (Linux Containers) UML (User Mode Linux), Hyper-V, Qemu e
também realiza a integração com o padrão de API EC2 e S3 da Amazon. OpenStack
(2012b)
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO
UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO

Contenu connexe

Tendances

O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...Rodrigo Missiaggia
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
Gerenciando Serviços com Systemd
Gerenciando Serviços com SystemdGerenciando Serviços com Systemd
Gerenciando Serviços com SystemdRodrigo Missiaggia
 
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Walter Coan
 
Azure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential ComputingAzure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential ComputingWalter Coan
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Walter Coan
 
TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...
TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...
TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...Walter Coan
 
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestadesCloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestadesRicardo Martins ☁
 
Artigo gerencia de_redes
Artigo gerencia de_redesArtigo gerencia de_redes
Artigo gerencia de_redesEvandromadeira
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseAlvaro Viebrantz
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixAécio Pires
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiRicardo Martins ☁
 
WPEIF 2019 - Evolução do testbed FIBRE
WPEIF 2019 - Evolução do testbed FIBREWPEIF 2019 - Evolução do testbed FIBRE
WPEIF 2019 - Evolução do testbed FIBREFIBRE Testbed
 

Tendances (20)

EXPLORANDO O OPENSTACK
EXPLORANDO O OPENSTACK EXPLORANDO O OPENSTACK
EXPLORANDO O OPENSTACK
 
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
Gerenciando Serviços com Systemd
Gerenciando Serviços com SystemdGerenciando Serviços com Systemd
Gerenciando Serviços com Systemd
 
Automatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOpsAutomatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOps
 
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
 
Azure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential ComputingAzure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential Computing
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
 
TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...
TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...
TDC Florianópolis 2020 - Microsoft Azure Sphere: novas funcionalidades e apli...
 
Flisol 2015
Flisol 2015 Flisol 2015
Flisol 2015
 
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestadesCloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestades
 
Artigo gerencia de_redes
Artigo gerencia de_redesArtigo gerencia de_redes
Artigo gerencia de_redes
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e Firebase
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
 
tutorial nagios
tutorial nagiostutorial nagios
tutorial nagios
 
Azure @ Rio Cloud Meetup
Azure @ Rio Cloud MeetupAzure @ Rio Cloud Meetup
Azure @ Rio Cloud Meetup
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - Bemobi
 
WPEIF 2019 - Evolução do testbed FIBRE
WPEIF 2019 - Evolução do testbed FIBREWPEIF 2019 - Evolução do testbed FIBRE
WPEIF 2019 - Evolução do testbed FIBRE
 
What's New On Azure IaaS
What's New On Azure IaaSWhat's New On Azure IaaS
What's New On Azure IaaS
 

En vedette

Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...Marcelo Dieder
 
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...Marcelo Dieder
 
Simuladogrtisitilv3foundation 111010142809-phpapp02
Simuladogrtisitilv3foundation 111010142809-phpapp02Simuladogrtisitilv3foundation 111010142809-phpapp02
Simuladogrtisitilv3foundation 111010142809-phpapp02Andre Nascimento
 
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVRevolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVPLUMgrid
 
A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...
A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...
A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...Marcelo Dieder
 
Voz sobre ip uma abordagem funcional
Voz sobre ip   uma abordagem funcionalVoz sobre ip   uma abordagem funcional
Voz sobre ip uma abordagem funcionalMarcelo Dieder
 
Logica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolLogica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolEvandro Júnior
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
AUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINO
AUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINOAUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINO
AUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINOgu_elastico
 
Multisite OpenStack for NFV: Bridging the Gap
Multisite OpenStack for NFV: Bridging the GapMultisite OpenStack for NFV: Bridging the Gap
Multisite OpenStack for NFV: Bridging the GapDimitri Mazmanov
 
Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Evandro Júnior
 
Aula 1 - Gestão de Infraestrutura
Aula 1 - Gestão de InfraestruturaAula 1 - Gestão de Infraestrutura
Aula 1 - Gestão de InfraestruturaPaulo Nascimento
 
Openstack Neutron and SDN
Openstack Neutron and SDNOpenstack Neutron and SDN
Openstack Neutron and SDNinakipascual
 
OpenStack Neutron Tutorial
OpenStack Neutron TutorialOpenStack Neutron Tutorial
OpenStack Neutron Tutorialmestery
 
Gerenciamento de projetos apostila completa
Gerenciamento de projetos   apostila completaGerenciamento de projetos   apostila completa
Gerenciamento de projetos apostila completaPaulo Junior
 

En vedette (15)

Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
 
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
 
Simuladogrtisitilv3foundation 111010142809-phpapp02
Simuladogrtisitilv3foundation 111010142809-phpapp02Simuladogrtisitilv3foundation 111010142809-phpapp02
Simuladogrtisitilv3foundation 111010142809-phpapp02
 
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVRevolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
 
A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...
A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...
A UTILIZAÇÃO DE METODOLOGIAS ÁGEIS PARA A ENTREGA DE SERVIÇOS DE INFRAESTRUTU...
 
Voz sobre ip uma abordagem funcional
Voz sobre ip   uma abordagem funcionalVoz sobre ip   uma abordagem funcional
Voz sobre ip uma abordagem funcional
 
Logica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolLogica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em Portugol
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
AUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINO
AUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINOAUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINO
AUTOMAÇÃO RESIDENCIAL NO GERENCIAMENTO DE ENERGIA UTILIZANDO ARDUINO
 
Multisite OpenStack for NFV: Bridging the Gap
Multisite OpenStack for NFV: Bridging the GapMultisite OpenStack for NFV: Bridging the Gap
Multisite OpenStack for NFV: Bridging the Gap
 
Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)
 
Aula 1 - Gestão de Infraestrutura
Aula 1 - Gestão de InfraestruturaAula 1 - Gestão de Infraestrutura
Aula 1 - Gestão de Infraestrutura
 
Openstack Neutron and SDN
Openstack Neutron and SDNOpenstack Neutron and SDN
Openstack Neutron and SDN
 
OpenStack Neutron Tutorial
OpenStack Neutron TutorialOpenStack Neutron Tutorial
OpenStack Neutron Tutorial
 
Gerenciamento de projetos apostila completa
Gerenciamento de projetos   apostila completaGerenciamento de projetos   apostila completa
Gerenciamento de projetos apostila completa
 

Similaire à UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO

TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃOTCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃOEvandro Donel Foster
 
Do zero ao openstack - Kelvin Soares
Do zero ao openstack - Kelvin SoaresDo zero ao openstack - Kelvin Soares
Do zero ao openstack - Kelvin SoaresKelvin V. Soares
 
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...Gustavo Henrique Rodrigues Pinto Tomas
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Lenin Abadie
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosFernando Palma
 
Relatório seminários de AOC - 19 de julho de 2015
Relatório seminários de AOC - 19 de julho de 2015Relatório seminários de AOC - 19 de julho de 2015
Relatório seminários de AOC - 19 de julho de 2015Carlos Roberto IV
 
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Denis Storti da Silva
 
Tecnologia front end back-end
Tecnologia front end back-end Tecnologia front end back-end
Tecnologia front end back-end Andressa Silveira
 
Agenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalAgenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalJoao Galdino Mello de Souza
 
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso SalesforceCloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso SalesforceFernando Carvalho
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Avaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do TwitterAvaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do TwitterCaliel Costa
 
Data Center - O poder da Unificação
Data Center - O poder da UnificaçãoData Center - O poder da Unificação
Data Center - O poder da UnificaçãoCisco do Brasil
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na NévoaBruno Oliveira
 

Similaire à UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO (20)

Cluster individual
Cluster   individualCluster   individual
Cluster individual
 
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃOTCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
 
Monografia ifes-everton-bada
Monografia ifes-everton-badaMonografia ifes-everton-bada
Monografia ifes-everton-bada
 
Do zero ao openstack - Kelvin Soares
Do zero ao openstack - Kelvin SoaresDo zero ao openstack - Kelvin Soares
Do zero ao openstack - Kelvin Soares
 
Vpn alan-rafael
Vpn alan-rafaelVpn alan-rafael
Vpn alan-rafael
 
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviços
 
Projeto banco de_dados_cloud
Projeto banco de_dados_cloudProjeto banco de_dados_cloud
Projeto banco de_dados_cloud
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Relatório seminários de AOC - 19 de julho de 2015
Relatório seminários de AOC - 19 de julho de 2015Relatório seminários de AOC - 19 de julho de 2015
Relatório seminários de AOC - 19 de julho de 2015
 
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
 
Tecnologia front end back-end
Tecnologia front end back-end Tecnologia front end back-end
Tecnologia front end back-end
 
Agenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalAgenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacional
 
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso SalesforceCloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Avaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do TwitterAvaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do Twitter
 
Data Center - O poder da Unificação
Data Center - O poder da UnificaçãoData Center - O poder da Unificação
Data Center - O poder da Unificação
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na Névoa
 

UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA DE NUVEM HÍBRIDA UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO

  • 1. UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS UNIDADE ACADÊMICA DE GRADUAÇÃO CURSO DE SEGURANÇA DA INFORMAÇÃO MARCELO DIEDER UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA PARA A INFRAESTRUTURA DE COMPUTAÇÃO NAS NUVENS UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO São Leopoldo 2012
  • 2. MARCELO DIEDER UM ESTUDO PARA A IMPLANTAÇÃO DE UM MODELO DE GERÊNCIA PARA A INFRAESTRUTURA DE COMPUTAÇÃO NAS NUVENS UTILIZANDO SOLUÇÕES DE CÓDIGO ABERTO Trabalho de Conclusão de Curso apresentado como requisito parcial para a obtenção do título de Tecnólogo em Segurança da Informação na Universidade do Vale do Rio dos Sinos - UNISINOS Orientador: Prof. Ms. Jeferson Prevedello São Leopoldo 2012
  • 3. Dedico totalmente este trabalho para a minha família, que me deu forças para conseguir superar minhas dificuldades e serenidade para continuar a trilhar pelos caminhos obscuros. Aos meus pais e à minha irmã, que desde meus primeiros momentos de vida me transmitiram ensinamentos e caráter de vida, tão importante nesta atual fase da minha vida. Agradeço muito à minha esposa e à minha filha, pelo apoio incondicional que me proporcionaram nos momentos difíceis e que, com simples sorrisos, conseguiam me motivar ainda mais em busca de melhores resultados.
  • 4. AGRADECIMENTOS Primeiramente a Deus, por mostrar-me os melhores caminhos a seguir e à minha família que sempre me acolheu e me aconselhou durante a fase de estudos. Ao meu orientador Jeferson Prevedello, que soube me criticar construtivamente em minhas dúvidas e anseios. . Aos meus colegas de curso, que me possibilitaram a troca de conhecimentos durante todos estes anos de estudo. Ao pessoal das comunidades openstack e openstack-br, que estavam prontamente disponíveis para tirar dúvidas e trocar ideias. Por fim, gostaria de agradecer a todos aqueles que me ajudaram diretamente ou indiretamente no desenvolvimento deste trabalho.
  • 5. "Nossas dúvidas são traidoras e nos fazem perder o que, com frequência, poderíamos ganhar, por simples medo de arriscar." (William Shakespeare)
  • 6. RESUMO O conceito de Computação nas Nuvens é um grande salto tecnológico após o surgimento da Internet. Na necessidade de buscar soluções que possam reduzir custos e agregar mais segurança e desempenho para as aplicações, surge o modelo de entrega de serviços computacionais sob demanda. Por meio de uma pesquisa bibliográfica, este trabalho buscou entender os principais conceitos da computação nas nuvens, seus principais problemas e os limites impostos pela nova tecnologia. A pesquisa também abordou os sistemas de IaaS Eucalyptus e OpenStack, apresentando suas principais características e descrevendo o modelo de arquitetura de cada plataforma. Além disso, utilizando uma abordagem experimental, o sistema OpenStack foi implantando com o intuito de entender melhor o seu funcionamento e obter respostas quanto a seu nível de maturidade atual. A partir da implantação do sistema OpenStack, foi possível entender na prática seu funcionamento, revelando ser uma plataforma robusta e estável, e que pode ser utilizado para orquestrar uma infraestrutura heterogênea que possua um conjunto de diferentes sistemas e equipamentos. Este trabalho também poderá ser utilizado como base para futuros projetos de pesquisa, que buscam o desenvolvimento de uma solução para a computação nas nuvens ou mesmo para corporações que desejam executar seu próprio modelo de nuvem pública ou privada. Palavras-chave: computação nas nuvens, Openstack, serviços sob demanda.
  • 7. ABSTRACT The concept of Computing in the Clouds is a great technological leap after the advent of the Internet. The need to seek solutions that can reduce costs and add more security and performance for applications, the model appears to deliver on- demand computing services. Through a bibliographical survey, this study sought to understand the key concepts of cloud computing, its main problems and the limits imposed by the new technology. The research also addressed the IaaS systems Eucalyptus and OpenStack, presenting their main characteristics and describe the architectural model of every platform. Furthermore, using an experimental approach, the OpenStack system was implemented in order to better understand their operation and get answers about their current maturity level. Upon deployment of the OpenStack, in practice it was possible to understand its operation, proving to be a robust and stable plataform and can be used to orchestrate a heterogeneous infrastructure that has a large set of different systems and equipment. This work may also be used as a basis for future research projects aimed at developing a solution to the cloud, or even for corporations that want to run their own model of public or private cloud. Keywords: cloud computing, openstack, on-demand services.
  • 8. LISTA DE FIGURAS Figura 1 - Arquitetura do modelo de computação nas nuvens........................27 Figura 2 - Camadas da Computação nas Nuvens..........................................31 Figura 3 – Visão Global da Computação nas Nuvens. ...................................33 Figura 4 - Limites entre IaaS, PaaS, SaaS .....................................................37 Figura 5 - Pesquisa sobre Computação nas Nuvens......................................41 Figura 6 - Responsabilidades entre modelos computacionais da nuvem .......48 Figura 7 - Tipos de arquitetura de virtualização..............................................53 Figura 8 - Arquitetura principal do Eucalyptus. ...............................................64 Figura 9 - Arquitetura conceitual do Openstack..............................................67 Figura 10- Arquitetura de serviços do Openstack Compute (Nova)................69 Figura 11 - Arquitetura de rede do nova-network. ..........................................73 Figura 12 - Arquitetura do nova-volume..........................................................74 Figura 13 - Fluxograma do processo de decisão do nova-scheduler. ............76 Figura 14 - Exemplo de arquitetura do OpenStack Swift. ...............................78 Figura 15 - Exemplo de anel utilizado no OpenStack Swift. ...........................80 Figura 16 - Arquitetura lógica do OpenStack Glance......................................81 Figura 17 - Processo para criação de um serviço validado pelo Keystone.....86 Figura 18 - Tela de gerenciamento de instâncias do Horizon.........................88 Figura 19 - Estrutura externa do ambiente proposto. .....................................92 Figura 20 - Estrutura externa do ambiente proposto. .....................................93 Figura 21 - Gráfico do resultado da análise dos dados de rede. ....................96 Figura 22 - Gráfico de desempenho das operações de leitura e escrita.........98
  • 9. LISTA DE QUADROS Quadro 1 - Comparativo de opções de infraestrutura em TI...........................28 Quadro 2 - Soluções para gerenciamento de ambientes IaaS. ......................59 Quadro 3 - Filtros para utilização no nova-scheduler. ....................................75 Quadro 4 - Estados de uma imagem no Glance.............................................82 Quadro 5 - Tipos de imagens suportados pelo Glance...................................83 Quadro 6 - Tipos de containers suportados pelo Glance................................84 Quadro 7 - Comparativo de características entre OpenStack e Eucalyptus. ..89 Quadro 8 - Requisitos dos servidores para a estrutura...................................91 Quadro 9 - Gráfico de desempenho das operações de leitura e escrita.........99
  • 10. LISTA DE TABELAS Tabela 1 - Versões de lançamento do Openstack ..........................................66 Tabela 2 - Tipos de instâncias pré-definidas pelo EC2...................................77 Tabela 3 - Lista de serviços ativos e inativos do Nova. ..................................95 Tabela 4 - Tabela do resultado da análise dos dados de rede. ......................96 Tabela 5 - Valores de desempenho das operações de leitura e escrita. ........97
  • 11. LISTA DE ABREVIATURAS E SIGLAS AMQP Advanced Message Queuing Protocol API Application Programming Interface ARP Address Resolution Protocol AWS Amazon Web Services CIFS Common Internet Filesystem CLC Cloud Controler SC Storage Controller CC Cluster Controller CMAAS Compliance as a Service CPU Central Processing Unit CSA Cloud Security Alliance DAS Direct Attached Storage DHCP Dynamic Host Configuration Protocol EBS Elastic Block Store EC2 Amazon Elastic Compute Cloud FC Fibre Channel GPL General Public License HP Hewlett-Packard ICMP Internet Control Message Protocol HTTP HyperText Transfer Protocol Secure I/O Input/Output IAAS Infrastructure as a Service IBM International Business Machines IDAAS Identity as a Service IDC International Data Corporation IP Internet Protocol ISCSI Internet Small Computer System Interface JSON Javascript Object Notation KVM Kernel-based Virtual Machine LAN Local Area Network LDAP Lightweight Directory Access Protocol LUN Logical Unit Number
  • 12. 12 LVM Logical Volume Manager LXC Linux Containers MTBF Mean Time Betwenn Failures NAS Network Attached Storage NASA National Aeronautics and Space Administration NBR Normas Brasileiras de Regulação NC Node Controller NFS Network File System PAAS Platform as a Service PATA Parallel Technology Attachment PCI Payment Card Industry PCI DDS PCI Data Security Standard RAID Redundant Array of Independent Disks REST Representational State Transfer S3 Amazon Simple Storage Service SAAS Software as a Service SAN Storage Area Network SAS Serial Attached SCSI SAS 70 Statement on Auditing Standards No. 70 SATA Serial Advanced Technology Attachment SC Storage Controller SCSI Small Computer System Interface SPI SaaS PaaS IaaS SSH Secure Shell STAAS Storage as a Service TCP Transmission Control Protocol TCP/IP Transmission Control Protocol / Internet Protocol TI Tecnologia da Informação UML User Mode Linux VLAN Virtual Lan VM Virtual Machine VMM Virtual Machine Monitor VNC Virtual Network Computing
  • 13. 13 VPN Virtual Private Network XFS High-Performance Journaling File System XML Extensible Markup Language
  • 14. SUMÁRIO 1 INTRODUÇÃO .......................................................................................................18 1.1 DEFINIÇÃO DO PROBLEMA..............................................................................18 1.2 OBJETIVOS ........................................................................................................21 1.2.1 Objetivo Geral.................................................................................................21 1.2.2 Objetivos Específicos ....................................................................................21 1.3 JUSTIFICATIVA ..................................................................................................22 1.4 DELIMITAÇÃO DO TEMA...................................................................................23 2 FUNDAMENTAÇÃO TEÓRICA.............................................................................25 2.1 COMPUTAÇÃO NAS NUVENS ..........................................................................26 2.1.1 Características do Modelo Computacional em Nuvem...............................27 2.1.2 A Importância da Virtualização e o Armazenamento Centralizado............31 2.1.3 O Modelo Computacional da Computação nas Nuvens .............................32 2.1.4 Principais Conceitos......................................................................................33 2.1.5 Arquiteturas....................................................................................................35 2.1.5.1 Público...........................................................................................................35 2.1.5.2 Privado ..........................................................................................................35 2.1.5.3 Comunitário...................................................................................................36 2.1.5.4 Híbrido...........................................................................................................36 2.1.6 Tipos de Serviço.............................................................................................36 2.1.6.1 Infraestrutura como um Serviço ....................................................................38 2.1.6.2 Plataforma como um Serviço ........................................................................39 2.1.6.3 Software como um Serviço............................................................................39 2.2 A SEGURANÇA E OS LIMITES DA COMPUTAÇÃO NAS NUVENS .................40 2.2.1 Principais Preocupações...............................................................................41 2.2.2 Limites da nuvem ...........................................................................................42 2.2.2.1 Confidencialidade das informações...............................................................43 2.2.2.2 Disponibilidade de serviços ...........................................................................43 2.2.2.3 Tipos de aplicações.......................................................................................44 2.2.2.4 Conformidade com a legislação vigente........................................................44 2.2.2.5 Multi-Inquilino ................................................................................................45 2.2.2.6 Dependência do fornecedor ..........................................................................46 2.2.3 Cloud Security Alliance .................................................................................46
  • 15. 15 2.3 VIRTUALIZAÇÃO................................................................................................49 2.3.1 Vantagens .......................................................................................................50 2.3.2 Desvantagens .................................................................................................50 2.3.3 Virtual Machine Monitor.................................................................................51 2.3.4 Soluções de Virtualização .............................................................................53 2.3.4.1 Kernel-based Virtual Machine .......................................................................54 2.3.4.2 Qemu.............................................................................................................54 2.3.4.3 Xen................................................................................................................54 2.3.4.4 Vmware ESX.................................................................................................55 2.3.4.5 Virtualbox ......................................................................................................55 2.4 O ARMAZENAMENTO DE DADOS ....................................................................55 2.4.1 Direct Attached Storage.................................................................................56 2.4.2 Network Attached Storage.............................................................................56 2.4.3 Storage Area Network....................................................................................56 3 SOLUÇÃO PARA GERÊNCIA DA INFRAESTRUTURA DA NUVEM ..................58 3.1 ORQUESTAR O AMBIENTE DA NUVEM...........................................................58 3.2 SOLUÇÕES DE IAAS EXISTENTES ..................................................................58 3.2.1 Amazon Web Services ...................................................................................59 3.2.2 Nimbus ............................................................................................................60 3.2.3 OpenNebula ....................................................................................................60 3.2.4 Eucalyptus ......................................................................................................61 3.2.5 OpenStack.......................................................................................................61 3.2.6 Análise Parcial das Soluções........................................................................62 3.3 EUCALYPTUS ....................................................................................................63 3.3.1 Principais Componentes ...............................................................................63 3.3.1.1 Cloud Controller (CLC)..................................................................................64 3.3.1.2 Walrus ...........................................................................................................64 3.3.1.3 Cluster Controller (CC)..................................................................................64 3.3.1.4 Storage Controller (SC).................................................................................65 3.3.1.5 Node Controller (NC).....................................................................................65 3.3.1.6 VMware Broker..............................................................................................65 3.3.1.7 Euca2ools......................................................................................................65 3.4 OPENSTACK ......................................................................................................66
  • 16. 16 3.4.1 Visão Global....................................................................................................67 3.4.2 Openstack Compute (Nova) ..........................................................................68 3.4.2.1 API Server (nova-api)....................................................................................70 3.4.2.2 Message Queue (Rabbit MQ Server) ............................................................71 3.4.2.3 Compute Worker (nova-compute) .................................................................71 3.4.2.4 Network Controller (nova-network)................................................................71 3.4.2.5 Volume Workers (nova-volume)....................................................................73 3.4.2.6 Nova Objectstore (nova-objectstore).............................................................74 3.4.2.7 Scheduler (nova-scheduler) ..........................................................................74 3.4.2.8 Tipos de Instâncias (Flavors) ........................................................................76 3.4.3 Openstack Storage Infrastructure (Swift).....................................................77 3.4.3.1 Swift Proxy Server.........................................................................................78 3.4.3.2 Swift Object Server........................................................................................78 3.4.3.3 Swift Container Server...................................................................................79 3.4.3.4 Swift Account Server .....................................................................................79 3.4.3.5 The Ring........................................................................................................79 3.4.4 Openstack Imaging Service (Glance) ...........................................................81 3.4.4.1 Glance-api.....................................................................................................82 3.4.4.2 Glance-registry ..............................................................................................83 3.4.4.2 Formato de Discos e Containers ...................................................................83 3.4.5 OpenStack Identity Service (Keystone)........................................................84 3.4.5.1 Base de Dados..............................................................................................86 3.4.6 Openstack Administrative Web-Interface (Horizon)....................................86 3.5 ANÁLISE DO EUCALYPTUS E OPENSTACK....................................................88 4 PROJETO PRÁTICO E RESULTADOS OBTIDOS...............................................90 4.1 AMBIENTE DA PROPOSTA DE TRABALHO.....................................................90 4.1.1 Requisitos da infraestrutura..........................................................................91 4.1.2 Arquitetura do ambiente................................................................................91 4.1.3 Processo de Instalação..................................................................................93 4.2 COLETA DE DADOS DO AMBIENTE.................................................................94 4.2.1 Testes de Latência de Rede X Testes de Troca de Tráfego........................94 4.2.2 Testes de Leitura e Gravação de Dados.......................................................94 4.2.3 Simulação de falhas nos serviços do Nova .................................................95
  • 17. 17 4.3 ANÁLISE DOS DADOS OBTIDOS......................................................................95 4.3.1 Da latência e desempenho da rede...............................................................95 4.3.2 Da latência e velocidade das operações de disco ......................................96 4.3.3 Da análise da disponibilidade dos componentes........................................98 5 CONCLUSÃO ......................................................................................................100 REFERÊNCIAS.......................................................................................................103 APÊNDICE A ..........................................................................................................111
  • 18. 18 1 INTRODUÇÃO Computação nas Nuvens é um dos principais assuntos no atual momento da Tecnologia da Informação. A Computação nas Nuvens traz consigo conceitos de entrega de tecnologia como um serviço computacional, da mesma forma que serviços como água e a eletricidade, entregando-os sob demanda. Computação nas Nuvens não é uma nova tecnologia ou um novo sistema computacional, é uma nova maneira de utilização de recursos computacionais de forma distribuída e descentralizada, utilizando como meio de transporte, principalmente, a Internet. Pode-se utilizar a nuvem para o armazenamento e processamento de informações, de forma escalável e sob a demanda necessária, ou seja, conforme aumenta a necessidade de processamento e cresce o volume de informações, pode-se dinamicamente alocar mais recursos computacionais, conforme necessário. Observa-se, desta maneira, que ao invés de investir-se em uma infraestrutura computacional completa, repleta de ativos computacionais, pode-se focar em investimento de serviços. Neste caso, o custo é apenas dos recursos utilizados, além de reduzir as despesas com infraestrutura. Nem sempre a utilização de serviços sob demanda pode ser vantajoso, isso pode depender do tipo de aplicação e da demanda necessária para atender a determinados requisitos. Também é importante salientar que na nuvem não se sabe onde está a informação, ou onde ela será processada, mas é essencial que a informação esteja íntegra e sempre disponível. Este trabalho está dividido em cinco capítulos. No primeiro capítulo será realizada a introdução do tema a ser abordado. No capítulo dois, é apresentada uma fundamentação teórica dos assuntos relacionados. No capítulo três, são descritas as soluções de gerenciamento da nuvem. No capítulo quatro, será descrito a implantação do projeto. E por fim, no capítulo cinco, será realizada a conclusão do tema. 1.1 DEFINIÇÃO DO PROBLEMA Com o avanço do conceito de tecnologia em nuvem, diversas soluções surgiram para orquestrar diferentes tipos de plataformas e serviços, mas sem que
  • 19. 19 houvesse uma definição exata de um modelo estruturado que garantisse a padronização desta nova arquitetura. De acordo com pesquisa realizada em 2011 com 500 organizações, encomendada pela Symantec Corporation sobre a situação da Cloud Computing na América Latina, SYMANTEC (2011), foi possível apontar quatro principais preocupações que as organizações possuem quanto à utilização da Cloud, conforme é possível observar a seguir:  segurança das Informações;  falta de experiência de equipes de TI;  diferentes tipos de soluções e ausência de testes efetivos na nuvem;  retorno sobre investimento abaixo do esperado. É possível observar que a pesquisa apresenta dados concretos sobre algumas das dificuldades das corporações utilizarem a nova tecnologia, principalmente pelas dúvidas quanto à segurança dos dados e pela falta de experiência de equipes, juntamente com os diferentes tipos de tecnologias para enviar os dados para a nuvem. O caminho para a utilização de Cloud Computing passa pelos conceitos de virtualização e de armazenamento de informação centralizado, que são essenciais para o desenvolvimento da plataforma descentralizada. Atualmente, existem diversas soluções que podem realizar a virtualização de máquinas, assim como também existem diversos tipos de sistemas de armazenamento disponíveis. As grandes dificuldades estão em garantir a integração entre os diferentes tipos de sistemas, em efetuar o gerenciamento do ambiente heterogêneo e, também, de possibilitar a migração dos dados entre eles de forma rápida e funcional. Além disso, a preocupação com a segurança dos dados na nuvem é outro fator impeditivo para várias corporações, ao analisarem o risco na utilização de suas informações na nuvem. Em um ambiente de nuvem que fornece infraestrutura, como máquinas virtuais e espaço de alocação de dados, toda essa gerência é executada pelo chamado Cloud Controler, o controlador de recursos da nuvem1 . Atualmente existem inúmeras plataformas controladoras, sejam elas do modelo de código aberto ou
  • 20. 20 mesma de código fechado. O grande esforço destas plataformas é garantir a interoperabilidade com os diferentes tipos de hypervisors2 , storages3 , redes de comunicação e as API (Application Programming Interface)4 de integração, de modo que as corporações possam percorrer pelos diferentes tipos de tecnologias de forma rápida e facilitada. No cenário atual, podemos citar com destaque as operações realizadas pelos fornecedores Amazon5 e Rackspace6 , duas das principais empresas mundiais que providenciam serviço de infraestrutura na nuvem. Das soluções existentes, que possibilitam que empresas públicas e privadas tenham sua própria nuvem, pode-se citar inúmeras aplicações, sejam elas de código fechado ou aberto. A Citrix Systems oferece uma solução proprietária de gerenciamento de infraestrutura chamado CloudStack, que apresenta integração com múltiplos tipos de sistemas. A Vmware Inc, possui uma solução proprietária conhecida como vCloud, porém gerencia apenas suas próprias aplicações de virtualização. Entre as soluções de código aberto, também é possível apresentar várias aplicações, dentre as quais são possíveis citar o OpenNebula, Nimbus, OpenStack e o Eucalyptus (disponibiliza versão aberta e proprietária). Entretanto, apesar da grande oferta de aplicações existentes, vários padrões foram desenvolvidos, dificultando a comunicação harmoniosa entre os diferentes tipos de sistemas. As soluções de plataforma fechada tendem a ditar “as regras do jogo”, buscando sempre os interesses do próprio negócio. Do contrário, as soluções de código aberto buscam atender aos interesses de todos os envolvidos no projeto, aumentando, consequentemente, a interoperabilidade entre diferentes sistemas, e atribuindo o controle do projeto para todos os seus participantes. A nuvem é um ambiente complexo e heterogêneo, e necessita de colaboração mútua entre todos os personagens deste sistema. Diante deste cenário, é possível delinear a definição do problema: É possível que uma plataforma de software aberto, no esforço de seus colaboradores mundiais, consiga apresentar uma solução segura e eficaz, que possa controlar e gerenciar a infraestrutura de diferentes soluções de virtualização e de armazenamento de forma 1 Conhecido também como IaaS ( Infrastructure as a Service) – Tipo de serviço oferecido na nuvem. 2 Hypervisor – Camada de software que realiza a virtualização de máquinas virtuais. 3 Storage – Equipamento de armazenamento de dados centralizado. 4 API – Interface para comunicação entre vários tipos de sistemas. 5 Amazon – Empresa multinacional de comercio eletrônico com base nos EUA.
  • 21. 21 a oferecer serviços de IaaS, além de agregar maior segurança para a computação nas nuvens? 1.2 OBJETIVOS Serão descritos a seguir, os objetivos geral e específicos deste trabalho, de modo a esclarecer o escopo do trabalho. 1.2.1 Objetivo Geral Este trabalho terá como objetivo geral a descrição das terminologias que envolvem a Computação nas Nuvens, a apresentação dos resultados qualitativos obtidos a partir do comparativo com entre o OpenStack e o Eucalyptus, e da implantação de um ambiente da nuvem utilizando o projeto de código aberto Openstack. 1.2.2 Objetivos Específicos - Apresentar e descrever os modelos e a arquitetura que envolve a computação nas nuvens, evidenciando os principais benefícios de sua utilização e seus principais riscos. - Identificar os componentes que formam o projeto Openstack, apresentando detalhadamente quais são suas responsabilidades e atribuições, e quais os níveis de maturidade destes componentes. - Apresentar os resultados obtidos da implantação de uma infraestrutura de nuvem, utilizando o projeto Openstack, salientando, também, questões de desempenho, de confiabilidade, integridade e disponibilidade. - Através de pesquisas, apresentar a descrição dos componentes da aplicação Eucalyptus e uma tabela comparativa com as principais funcionalidades, capacidades e limites dos projetos Openstack e Eucalyptus. 6 Rackspace – Empresa multinacional provedora de serviços de TI, com base nos EUA.
  • 22. 22 1.3 JUSTIFICATIVA O poder de cálculo dos atuais processadores, associado a grande evolução das mídias de armazenamento de informações, despontou a tecnologia de virtualização, possibilitando o aproveitando de recursos ociosos, reduzindo custos de infraestrutura, além de aumentar a disponibilidade dos sistemas e garantir aumentos de produtividade. A partir da propulsão da virtualização, com seus múltiplos hypervisors e de diferentes fabricantes, emerge a necessidade de um gerenciador central que tivesse o papel de integrar diferentes soluções; surgindo, assim, a computação nas nuvens. De acordo com Velte Ant; Velte Tob et al (2011,p.3), a computação em nuvem (Cloud Computing) está em toda parte. Abra qualquer revista de tecnologia ou visite qualquer site ou blog e certamente você verá alguma matéria sobre cloud computing. O único problema é que nem todos concordam com o que isso significa. Pergunte a dez profissionais diferentes o que é cloud computing e você obterá dez respostas distintas. Segundo a definição sobre nuvem de SCHUBERT et al (2010,p.8, tradução nossa), “a nuvem é uma execução elástica de recursos envolvendo múltiplos interessados e que provêm um serviço medido através de múltiplas granularidades para um nível de serviço adequado.” Existem diversos trabalhos publicados com o propósito de explicar a conceituação da computação nas nuvens, exaltando as principais características e evidenciando os problemas existentes da utilização de uma estrutura na nuvem. A proposta de Miranda et al. (2011), consiste em realizar o compartilhamento e estudo de grandes volumes de dados biológicos, utilizando processamento paralelo de uma Cloud, porém, não foca na descrição de uma solução para o gerenciamento do ambiente. Já o artigo de Nurmi et al. (2009) realiza a descrição da solução open- source Eucalyptus, apresentando a conceituação da Cloud e demonstrando a arquitetura interna do sistema, mas não traça um comparativo com demais soluções. Sotomayor et al. (2009), procura realizar um comparativo entre as principais soluções de administração do ambiente de Cloud Computing, destacando soluções como Amazon EC2, Nimbus, Eucalyptus, OpenNebula, entre outros, mas seu estudo não aprofunda em questões internas de cada aplicação. O trabalho de Delgado (2010) descreve detalhadamente a conceituação da nuvem, apresenta o Eucalyptus,
  • 23. 23 e demonstra testes de desempenho realizados no ambiente controlado por ele, entretanto seus testes são focados, em sua maioria, nos sistemas de virtualização e não na plataforma da nuvem. O critério para a escolha pela implantação da solução Openstack ocorreu, pois não foram localizados trabalhos acadêmicos com comparativos entre o OpenStack e outras ferramentas de gerência da infraestrutura da nuvem. Além disso, a comparação com o Eucalyptus ocorrerá por ele ser uma plataforma estável e totalmente compatível com os serviços de nuvem oferecidos pela Amazon (Eucalyptus Systems, 2012a). Academicamente, o termo Cloud Computing é tema de diversos trabalhos, no entanto, também existem carências de trabalhos com foco no desenvolvimento e apresentação de soluções que possam gerenciar um ambiente complexo e heterogêneo como a nuvem. Enquanto a virtualização assume sua importância nos pilares da nuvem, existe, também, a necessidade de uma solução neutra, sem vínculos comerciais, capaz de gerenciar ambientes heterogêneos na nuvem e ser utilizada por pequenas, médias e grandes corporações. Dentro desta realidade, este trabalho justifica-se pela necessidade de um estudo que possa expor de uma forma clara, as definições sobre cloud computing e que relate como o projeto Openstack pode ajudar a viabilizar infraestrutura de nuvens públicas e privadas. 1.4 DELIMITAÇÃO DO TEMA Este estudo irá focar nas terminologias envolvendo a computação em nuvem, apresentando e descrevendo seus principais conceitos. Também apresentará o projeto Openstack, circunstanciando seus componentes e sua arquitetura de comunicação e também apresentará um análise comparativa entre as soluções OpenStack e Eucalyptus. A partir de um piloto prático, este trabalho irá realizar a instalação dos componentes Nova e Glance do OpenStack, irá apresentar a arquitetura do ambiente implantado e descreverá os testes realizados nos componentes. Ao final, a partir da coleta de dados, disponibilizará resultados qualitativos e quantitativos da solução implantada. Este trabalho não irá focar na integração com equipamentos de armazenamento centralizados, na implantação prática da aplicação Eucalyptus e
  • 24. 24 durante a implantação do projeto dará ênfase apenas ao emulador QEMU, não utilizando demais sistemas de virtualização.
  • 25. 25 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo descreverá a conceituação de Computação nas Nuvens, apresentando suas principais características, modelos de arquiteturas, suas limitações, informando, também, suas principais vantagens e desvantagens, salientando no decorrer do texto, como ocorreu a evolução natural deste modelo computacional. O capítulo também apresentará a definição de virtualização e armazenamento de dados centralizados, e como eles estão ligados diretamente com a computação nas nuvens. Para a elaboração deste trabalho realizou-se o levantamento bibliográfico por meio de livros e artigos científicos que abordam sobre o tema apresentado no trabalho, além de sites de soluções utilizadas para a computação nas nuvens e que são reconhecidas na sua área de atuação. A elaboração dessa etapa foi fundamental para oferecer sustentação à pesquisa experimental realizada para a conclusão deste estudo. Ander-Egg (1978, apud Lakatos; Marconi, 2002, p. 15), afirma que a pesquisa é caracterizada por “um procedimento reflexivo sistemático, controlado e crítico, que permite descobrir novos fatos ou dados, relações ou leis, em qualquer campo do conhecimento”. Lakatos e Marconi (2002) ainda acrescentam que a pesquisa é considerada um caminho em busca do descobrimento da realidade e de verdades parciais, e, devido a isto, torna-se necessário um tratamento científico. A metodologia escolhida para a elaboração deste trabalho monográfico foi de pesquisa bibliográfica e experimental. A pesquisa bibliográfica, de acordo com Manzo (1971, apud Lakatos; Marconi, 2002, p. 71), “oferece meios para definir, resolver, não somente problemas conhecidos, como também explorar novas áreas onde os problemas não se cristalizam suficientemente” Trujillo (1974, apud Lakatos; Marconi, 2002, p. 71) complementa esta afirmação quando diz que a pesquisa bibliográfica “não é mera repetição do que já foi dito ou escrito sobre certo assunto, mas propicia o exame de um tema sob novo enfoque ou abordagem, chegando a conclusões inovadoras”.
  • 26. 26 2.1 COMPUTAÇÃO NAS NUVENS Computação nas Nuvens, ou Cloud Computing é um novo modelo computacional que busca principalmente a redução de custos e o aumento de produtividade. A definição de Velte Ant; Velte Tob et al (2011,p.3) sobre cloud é que “a função da computação em nuvem (cloud computing) é cortar custos operacionais e o mais importante, permitir que departamentos de TI se concentrem em projetos estratégicos em vez de manter o data center funcionando”. O futuro da Cloud Computing pode ser comparado com a história da energia elétrica. Segundo Miller (2008, p.8, tradução nossa), O surgimento da computação em nuvem é o equivalente à revolução da energia elétrica do século passado. Antes do episódio de utilitários elétricos, cada fazenda e empresa de negócios produzia sua própria eletricidade a partir de geradores autônomos. Após a criação da rede elétrica, fazendas e empresas desativaram seus geradores e a energia elétrica foi comprada dos serviços públicos a um preço muito menor (e com confiabilidade muito maior) do que poderiam produzir por conta própria. Olhe para o mesmo tipo de revolução que ocorre com a computação em nuvem. De acordo com a definição do Nist7 (2011, p.2, tradução nossa), Computação nas Nuvens é, um modelo para permitir a onipresença, conveniente, o acesso à rede sob demanda para um pool compartilhado de recursos computacionais configuráveis (por exemplo, redes, servidores, armazenamento, aplicativos e serviços) que podem ser rapidamente fornecidos e liberados com o esforço de gerenciamento mínimo ou interação com o provedor de serviço. A arquitetura computacional do modelo da Cloud Computing evoluiu ao longo dos anos, a partir de outros modelos computacionais existentes, como o modelo cliente-servidor, o modelo peer-to-peer 8 , o modelo computacional distribuído, e o modelo grid de trabalho em grupo. Miller (2008) A nuvem utiliza-se de características de todos os modelos citados anteriormente, mas assemelha-se principalmente ao modelo computacional de Sistemas Distribuídos, onde várias máquinas trabalham em conjunto. Segundo Tanenbaum (1995, p.2, tradução nossa), “um sistema distribuído é uma coleção de 7 NIST - U.S. National Institute of Standards and Technology 8 Peer-to-Peer – Tipo de arquitetura de um sistema distribuído.
  • 27. 27 computadores independentes, que aparecem para um usuário de um sistema como um único computador”. A figura 1, abaixo apresentada, ilustra o modelo computacional da Cloud Computing. Figura 1 - Arquitetura do modelo de computação nas nuvens Fonte: Editado pelo autor com base em Miller (2008, p. 16) Conforme Miller (2008, p. 16, tradução nossa), usuários individuais conectam na nuvem a partir de seus próprios computadores pessoais ou aparelhos portáteis, através da Internet. Para estes usuários individuais, a nuvem é vista como uma única aplicação, documento ou dispositivo. O hardware na nuvem (e do sistema operacional que gerencia as conexões de hardware) é invisível. 2.1.1 Características do Modelo Computacional em Nuvem A utilização do módulo computacional em nuvem, é conduzido pelas corporações em sua grande maioria, quando o objetivo principal é a redução de custos com infraestrutura. Entretanto, a cloud possibilita que corporações, ou até mesmo usuários finais, possam se beneficiar de outras características positivas que este modelo proporciona. Miller (2008, p. 24, tradução nossa) cita diversas vantagens da Cloud Computing:
  • 28. 28  baixo custo com a aquisição de computadores para usuários;  aumento de desempenho;  baixo custo com infraestrutura de Tecnologia da Informação;  menor custo para manutenções de hardware e software;  menor custo aquisição de software;  atualização instantânea de sistemas;  aumento de poder de processamento;  capacidade de armazenamento ilimitada;  aumento de segurança no armazenamento de informações;  Aumento de compatibilidade entre sistemas distintos. As características citadas são vantagens que usuários finais ou corporações podem usufruir, não só reduzindo o custo, como também agregando maior qualidade aos serviços utilizados da TI. De acordo com o quadro de Reese (2009) apresentado a seguir, é possível observar o comparativo qualitativo entre uma solução em nuvem e duas opções comumente utilizadas pelas corporações para manter sua infraestrutura de TI. A primeira e mais clássica, é a utilização de uma infraestrutura interna onde a própria corporação é responsável por manter o capital físico e o capital humano. A segunda opção é a utilização de um serviço terceirizado, onde previamente existe um acordo mútuo entre a empresa contratante e a empresa contratada, de forma que possam delimitar as atribuições de cada um. A empresa terceirizada é responsável por manter toda a infraestrutura física, inclusive os serviços por ela prestados. Por fim, é ilustrada a utilização de serviços na nuvem, onde claramente se pode observar uma mescla de vantagens entre a opção de “TI Interna” e “Serviços Terceirizados”. Quadro 1 - Comparativo de opções de infraestrutura em TI TI Interna Serviços Tercerizados Computação nas Nuvens Investimento de Capital Significante Moderado Insignificante Despesas Moderado Significante Baseado na utilização Tempo de Provisionamento Significante Moderado Nenhum Flexibilidade Limitado Moderado Flexível Requisitos de Experiência Equipe Significante Limitado Moderado Confiança Varia Alto Moderado para Alto Fonte: Editado pelo autor com base em Reese (2009, p. 12)
  • 29. 29 Ao mesmo tempo em que a Computação nas Nuvens pode reduzir o investimento de capital inicial para novos projetos de TI, diminui-se o tempo de provisionamento para novas instalações e aumenta-se a flexibilidade da infraestrutura de TI. Na opção pela nuvem, também é possível observar a necessidade de manter-se uma equipe de TI com experiência para que seja possível a integração entre sistemas internos e os sistemas alocados fora da empresa. Quanto à confiança da utilização dos serviços na nuvem, o que pode se observar é um acréscimo de segurança da infraestrutura, afinal provedores de soluções em nuvem utilizam de uma forma geral equipamentos redundantes e equipes especializadas e dedicadas em regime de tempo de 24x7x365. Além disso, operam de acordo com normatizações de segurança tais como a Statement on Auditing Standards Nº. 70 (SAS 70) 9 , Payment Card Industry - Data Security Standard (PCI DSS) 10 e a ISO IEC 27001 11 . Segundo Reese (2009, p. 9, tradução nossa), a nuvem necessariamente precisa ter um Mean Time Between Failures (MTBF)12 maior que uma estrutura interna, um desafio fundamental para qualquer sistema que exige longa vida de nós em uma infraestrutura de nuvem, é o fato básico de que o tempo médio entre falhas (MTBF) de um servidor virtual é necessariamente menor do que para o hardware subjacente. Desta maneira, pressupõe-se que uma infraestrutura na Cloud, terá um MTBF sempre maior que uma estrutura interna, afinal ela possui uma estrutura grande o suficiente para reduzir o número de falhas em equipamentos por meio da utilização de equipamentos redundantes e trabalhando cooperativamente. Velte Ant; Velte Tob et al. (2011, p. 30), também observa que a cloud computing pode oferecer diversos benefícios. Ele cita a escalabilidade, prevendo um crescimento futuro; a simplicidade do ambiente, permitindo que novos ambientes de infraestrutura estejam disponíveis de imediato; o aumento na qualidade dos serviços, afinal os fornecedores são qualificados para a realização de suas tarefas, e o 9 SAS 70 - Certificação que visa o controle e utilização de melhores práticas para empresas de prestação de serviços. http://sas70.com/sas70_overview.html 10 PCI DSS – Padrão de segurança de dados do setor de cartões de pagamento. https://www.pcisecuritystandards.org 11 ISO/IEC 27001 - Norma padrão para um sistema de gestão da segurança da informação. http://www.iso27001security.com/html/27001.html
  • 30. 30 aumento de segurança das soluções utilizadas, na medida em que os fornecedores possuem políticas de privacidade rigorosas que garantem, possivelmente, mais segurança do que na própria TI local. Apesar dos benefícios que ambientes da nuvem podem proporcionar, nem tudo é vantajoso. Além das vantagens, Miller (2008, p. 24, tradução nossa) também cita algumas desvantagens na sua utilização:  necessidade constante de conexão à internet;  desempenho ruim com conexões de internet lenta;  mesmo em conexões rápidas, algumas aplicações podem ser mais lentas, quando comparadas com uma execução em um computador local;  limitações de determinados tipos de aplicações;  insegurança quanto à confidencialidade de informações;  indisponibilidade dos dados na eventual falha de um provedor de serviços na nuvem. A nuvem pode não ser a solução ideal para determinado perfil de empresa ou usuário. Conforme o comparativo de Reese apresentando anteriormente, os custos com a Cloud podem ser, inclusive, maiores se comparado a uma infraestrutura interna. A partir destas definições, as desvantagens citadas por Miller, como a incerteza na confidencialidade dos dados, podem inibir a ascensão da Cloud. Entretanto, as desvantagens da utilização desta nova arquitetura não devem interromper o seu crescimento, de acordo com pesquisas realizadas. Segundo estudo realizado pelo IDC (2010)13 , a previsão de crescimento da nuvem será de 27% por ano, entre 2009 até 2014. As corporações que pretendem fornecer serviços na nuvem, precisarão se posicionar de uma forma agressiva até o ano de 2013, para que não fiquem de fora do mercado. 12 MTBF – Cálculo utilizado para verificar o período médio entre falhas de um determinado dispositivo. 13 International Data Corporation – Empresa que realiza pesquisas de mercado. http://www.idc.com
  • 31. 31 2.1.2 A Importância da Virtualização e o Armazenamento Centralizado A nuvem surgiu a partir do desenvolvimento e amadurecimento de soluções como a virtualização e o armazenamento centralizado. A tecnologia de virtualização permite que um hardware físico possa ser utilizado para instalação de diversas máquinas virtuais. A tecnologia de armazenamento centralizado permite unificar todas as informações em redes de armazenamento, simplificando a administração e aumentando a flexibilidade para a alocação de dados. É possível analisar na figura a seguir, que a nuvem está apoiada sob ambientes de virtualização e de armazenamento centralizado, ainda que a utilização destas soluções não seja obrigatória. Figura 2 - Camadas da Computação nas Nuvens Fonte: Editado pelo autor com base em IBM (2011) A virtualização é um dos pilares da Computação nas Nuvens, afinal ela possibilita uma melhor utilização de recursos computacionais, por meio da criação de diversos ambientes virtuais em máquinas físicas. Com a técnica da virtualização, é possível executar diversos sistemas operacionais de diferentes fabricantes em um mesmo servidor físico. Isso garante o aproveitamento máximo da utilização de processamento, memória e armazenamento de servidores, diminui
  • 32. 32 consideravelmente o tempo com o gerenciamento e instalação de novos sistemas, além de reduzir custos com a administração do ambiente tecnológico e da aquisição de equipamentos físicos. O armazenamento de dados é um item indispensável para a Cloud Computing. É neste pilar que se situam as maiores dúvidas quanto a segurança e disponibilidade de dados. Na nuvem, todos os dados estão armazenados em diferentes locais, garantindo, assim, que as informações possam ser acessadas a qualquer momento e de qualquer lugar. Os dados podem estar alocados em diferentes tipos de sistemas de armazenamento, sejam eles equipamentos dedicados como storages, servidores, ou redes de armazenamento conhecidos como SAN (Storage Area Network). Um sistema robusto de gerenciamento é necessário para garantir a disponibilidade e o controle adequado das informações. 2.1.3 O Modelo Computacional da Computação nas Nuvens O modelo computacional da computação nas nuvens está dividido em conceitos, tipos de serviços e tipos de arquitetura. Este modelo computacional é essencial para o entendimento de como tudo funciona e, naturalmente, vem se adaptando aos novos conceitos, funcionalidades e arquiteturas. De acordo com MELL; GRANCE (2008, apud Sosinsky, 2011, p. 63), a nuvem é classificada em quatro tipos de arquiteturas, três modelos de serviço e, também, cinco principais conceitos sobre o funcionamento da cloud. Esta definição, criada originalmente pelo NIST, define as arquiteturas da nuvem em modelo comunitário, híbrido, privado e público. Também classifica os tipos de serviço em IaaS (Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software as a Service). Por fim, define os cinco conceitos principais como conjunto de recursos, acesso amplo à rede, serviço medido, serviço sob demanda e rápida elasticidade. Conforme a figura apresentada a seguir, é possível observar a classificação acima descrita.
  • 33. 33 Figura 3 – Visão Global da Computação nas Nuvens. Fonte: Editado pelo autor com base em Sosinsky (2011). 2.1.4 Principais Conceitos Com base no descritivo apresentado por Sosinsky e definido pelo NIST, é possível descrever os conceitos da Computação nas Nuvens.  Pool de Recursos: o Pool de Recursos está associado à quantidade de recursos computacionais que estarão disponíveis para os usuários finais, como a quantidade de processamento, memória e espaço de armazenamento. Com a definição da quantidade de recursos disponíveis, pode-se definir quanto será destinado para cada situação, e quando serão compartilhados. Os recursos podem ser compartilhados entre diversos usuários ao mesmo tempo, modo conhecido como multi-inquilino. Além disso, estes recursos podem estar geograficamente espalhados, porém de forma transparente para os usuários finais. Por exemplo, se pode definir um Pool de Recursos para um determinado grupo de usuários domésticos e outro para usuários corporativos. Sosinsky (2011, p. 63)  Serviços Sob Demanda: conhecido também como “on-demand”, o conceito de serviço sob demanda define como serão utilizados os
  • 34. 34 serviços da nuvem. Assim como ocorre com outros serviços sob demanda, como o consumo de água e eletricidade, os serviços tecnológicos da cloud são utilizados conforme a necessidade, e são alocados dinamicamente, de acordo com o crescimento da demanda. Dessa forma, o custo total é a soma de todos os recursos utilizados em determinado período. Isto possibilita que aplicações cresçam dinamicamente, alocando automaticamente mais recursos sem que seja necessário mudanças na infraestrutura local. Sosinsky (2011, p. 63)  Elasticidade e Escalabilidade: a elasticidade e a escalabilidade estão vinculadas diretamente com o pool de recursos e os serviços sob demanda. Estes conceitos garantem a possibilidade de crescer gradativamente o ambiente tecnológico para cada tipo de necessidade de forma automática ou manual. Em uma demanda inicial, pode-se utilizar X ciclos de processamento, memória e armazenamento, e estes ciclos podem aumentar dinamicamente conforme a necessidade. Do ponto de vista do cliente, os recursos podem ser adquiridos em qualquer quantidade e em qualquer momento. Sosinsky (2011, p. 63)  Serviço Medido: os recursos utilizados pelo usuário em determinado período são mensurados, de forma que seja possível a identificação da quantidade memória, CPU, I/O (Input/Output) de disco, ou utilização da rede que foram de fato consumidos. A partir deste relatório, o usuário é tarifado, baseado nas métricas de utilização. Sosinsky (2011, p. 64)  Acesso Amplo à Rede: capacidade da rede possuir arquiteturas heterogêneas, de modo que diversos dispositivos como celulares, tablets, laptops e desktops possam acessar o ambiente em qualquer local e a qualquer momento. Sosinsky (2011, p. 63)
  • 35. 35 2.1.5 Arquiteturas Podemos classificar os modelos de arquitetura da nuvem em quatro principais tipos. Não há um modelo que tenha vantagem sobre outro, a utilização destes modelos vai depender da necessidade de cada corporação, questões de custo, necessidades regulatórias, ou questões de segurança da informação. 2.1.5.1 Público O modelo público é aquele em que a nuvem tem os seus recursos compartilhados entre o público geral. Apesar de existir uma divisão lógica que garanta a separação entre todos os usuários, sua infraestrutura física é a mesma para todos (Sosinsky, 2011, p. 48). De pontos positivos, é possível citar o baixo custo e a grande quantidade de oferta no mercado. Como aspecto negativo, é possível relatar problemas de desempenho e segurança das informações quanto a sua confidencialidade e disponibilidade, afinal, todos os dados estão alocados em meios de armazenamento compartilhados. 2.1.5.2 Privado O modelo privado, diferentemente do modelo público, é exclusivo de um usuário ou um grupo. Ele pode estar situado dentro de uma corporação ou pode estar alocado em um terceiro que garanta a sua utilização exclusiva. Este modelo assegura que a infraestrutura será de uso dedicado, sem que haja o compartilhamento de recursos. Sosinsky (2011, p. 48). Dentre os pontos positivos, está a garantia de segurança dos dados, e o desempenho que este modelo pode garantir. Os pontos negativos assinalam para o alto custo que um modelo como este pode representar, por necessitar de uma infraestrutura dedicada, em que não exista a concorrência por recursos computacionais.
  • 36. 36 2.1.5.3 Comunitário Também é possível trabalhar de forma mais segura do que o ambiente público, sem ter que realizar o investimento total de um modelo privado. Neste caso, há caracterizado o modelo chamado comunitário, em que duas ou mais organizações realizam investimentos em comum acordo, para viabilizar a utilização de um modelo privado, compartilhando os recursos entre ambas. Ainda se pode destacar neste modelo, os mesmos problemas com segurança e desempenho que existem no modelo público, mas minimizados com a redução do número de participantes de uma infraestrutura. Sosinsky (2011, p. 48). 2.1.5.4 Híbrido Quando existe a união de dois ou mais modelos destacados anteriormente, consideramos um modelo do tipo híbrido. Este é um dos modelos mais promissores da Cloud Computing, pelo fato de utilizar as vantagens dos demais modelos, e ser uma alternativa inicial para as corporações que desejam começar a utilizar serviços da nuvem. Por exemplo, um cliente que esteja preocupado com a segurança e disponibilidade de seus dados, poderia utilizar um modelo privado, mas quando utilizar a nuvem para alocação de dados não críticos, poderia utilizar o modelo público que lhe atenderia da mesma forma que o modelo privado, mas sem o seu alto custo. Sosinsky (2011, p. 48). 2.1.6 Tipos de Serviço Além dos modelos de arquitetura existentes da nuvem, ela também é classificada quanto ao tipo de serviço que é prestado com a nomenclatura “como um serviço”, ou na língua inglesa, “as a service”. Ofertar tudo como serviço faz parte da estratégia de ascender a computação nas nuvens ao modelo de utilidade. A lista de tipos de serviços oferecidos é extensa, mas serão citados aqui os principais tipos, conforme se observa a seguir. Velte Ant; Velte Tob et al., (2011, p. 11)  IaaS (Infrastructure as a Service)  PaaS (Platform as a Service)
  • 37. 37  SaaS (Software as a Service) Figura 4 - Limites entre IaaS, PaaS, SaaS Fonte: CSA (2011b). A figura anterior explana as delimitações entre IaaS, Paas e Saas. Com base nisso, se pode classificar o modelo IaaS como responsável por manter uma infraestrutura física; o modelo PaaS em entregar uma solução para o desenvolvimento e execução de aplicações; e o modelo SaaS por entregar uma aplicação final e pronta para uso.
  • 38. 38 Naturalmente, já existem outras definições para diferentes tipos de serviços, conforme ocorre o crescimento da evolução dos serviços na nuvem. Sosinsky (2011, p. 53, tradução nossa), reforça que: os três tipos de modelos de serviços em conjunto, têm vindo a ser conhecido como o modelo SPI (SaaS, PaaS, IaaS) da computação em nuvem. Muitos outros modelos de serviço também já foram mencionados: StaaS, armazenamento como um serviço; IdaaS, Identidade como um serviço; CmaaS, compliance como um serviço, e assim por diante. No entanto, os tipos de serviço SPI abrangem todas as outras possibilidades. 2.1.6.1 Infraestrutura como um Serviço Conforme ilustrado pela figura 5, o modelo IaaS é a base de apoio de todos os demais modelos. Nele são fornecidos serviços ligados ao hardware e equipamentos de infraestrutura. De acordo com Sosinsky (2011, p. 52), a grande vantagem deste tipo de utilidade é que um usuário não precisa se preocupar com quais equipamentos serão adquiridos para sua utilização, já que seu prestador de serviço irá garantir todos os recursos necessários. Sua preocupação é focada em dimensionar a quantidade de recursos tecnológicos que irá precisar para executar determinada tarefa, e seu custo ficará definido pela quantidade cumulativa dos recursos que utilizar. Um usuário, por exemplo, poderia adquirir os tipos de serviços IaaS conforme citados abaixo:  ciclos de CPU;  quantidade de memória;  espaço de armazenamento;  velocidade de link de dados;  firewalls e roteadores. Para o prestador de serviços, a grande vantagem é que ele poderá compartilhar sua infraestrutura física, e comercializar os serviços para diversos locatários ao mesmo tempo. Outra característica do IaaS é que os recursos podem ser dinamicamente ajustados, conforme a demanda dos serviços. Um usuário, por exemplo, poderia utilizar X ciclos de CPU e memória em uma situação normal de
  • 39. 39 utilização de seus serviços e aumentaria dinamicamente para Y ciclos de CPU e memória em momentos de grande demanda por parte das atividades que executa, sem que precise, para isso, realizar mudanças físicas em seu ambiente. Velte Ant; Velte Tob et al.(2011, p. 15) 2.1.6.2 Plataforma como um Serviço O PaaS é um modelo executado acima do modelo IaaS (vide figura 5), e tem como objetivo fornecer um meio compartilhado para que se possa criar e executar aplicativos e serviços na nuvem. Velte Ant; Velte Tob et al., (2011, pag. 14) cita alguns exemplos de utilização do PaaS que incluem principalmente:  ambientes de desenvolvimento com bancos de dados;  desenvolvimento de sistemas;  integração de serviços web;  hospedagem de serviços;  utilização de sistemas operacionais. O modelo PaaS, assim como os demais tipos de serviços, podem atribuir vantagens ao usuário final e ao fornecedor do tipo de serviço. Um usuário de um ambiente PaaS não tem controle sobre a infraestrutura, como CPU, quantidade de memória alocada e espaço de armazenamento, porém tem o controle sobre o ambiente operacional de determinada aplicação. Para o fornecedor, o modelo PaaS é muito interessante, já que pode atender a múltiplos usuários simultaneamente em uma mesma estrutura. Um dos pontos contrários aos PaaS é que a interoperabilidade e a portabilidade entre fornecedores é prejudicada pelo fato de utilizarem soluções de padrões diferentes e incompatíveis, dificultando a migração entre fornecedores. Velte Ant; Velte Tob et al., (2011, pag. 14) 2.1.6.3 Software como um Serviço Conforme ilustrado na figura 5, o SaaS está acima da camada do PaaS, referenciado como uma aplicação final. De acordo com Miller (2008, p. 40), o
  • 40. 40 modelo SaaS é, provavelmente, o mais conhecido e difundido da Computação nas Nuvens. Segundo Velte Ant; Velte Tob et al., (2011, pag. 12), este modelo proporciona aplicativos para serem utilizados por meio da Internet, sem que o cliente precise se preocupar com a infraestrutura necessária para utilizá-lo. O propósito central é que o usuário possa acessar aplicativos utilizando um navegador de páginas em qualquer lugar e a qualquer momento. Será de responsabilidade do provedor do serviço manter toda a infraestrutura necessária para que o software seja executado adequadamente. Miller (2008, p. 40, tradução nossa) também descreve que, cada organização servida pelo fornecedor é chamada de um inquilino, e esse tipo de arranjo é chamado de arquitetura multi-inquilino. Os servidores do fornecedor são virtualmente particionados para que cada organização trabalhe com uma instância de aplicativo virtual personalizado. Também é reforçado por Velte Ant; Velte Tob et al., (2011, pag. 14) que, o SaaS difere das antigas distribuições de soluções de computação, uma vez o SaaS foi desenvolvido especificamente para uso de ferramentas web, como o navegador. Isto torna-os web-nativos. Foi construído também com um múltiplo back-end, que permite a múltiplos clientes usarem o mesmo aplicativo. Como o ambiente é compartilhado entre diferentes usuários, o fornecedor que disponibiliza serviços de SaaS terá o seu trabalho reduzido para efetuar atualizações e manutenções, na medida em o fará em apenas poucos locais, diferentemente do modelo existente, onde cada usuário precisa executar sua própria atualização, ou mesmo manutenção. 2.2 A SEGURANÇA E OS LIMITES DA COMPUTAÇÃO NAS NUVENS Um dos grandes percalços na caminhada em direção à utilização da nuvem é a preocupação quanto à segurança da informação. Além disso, a nuvem também tem suas limitações e pode não se adequar a realidade de todos os ambientes. As corporações se preocupam muito quanto à confidencialidade, à disponibilidade e à integridade dos dados. Quando dados sensíveis são enviados para a nuvem, espera-se que eles sejam mantidos seguros, livres de acessos não autorizados e
  • 41. 41 que se mantenham íntegros. Também é indispensável que estes dados estejam sempre disponíveis, a qualquer hora e em qualquer lugar. 2.2.1 Principais Preocupações Uma pesquisa foi realizada pelo IDC e apresentada por Velte Ant; Velte Tob et al., (2011, pag. 35), conforme ilustrada na figura 6, esta investigação apresenta a opinião de 244 executivos de TI sobre a utilização de serviços na nuvem. Do total de entrevistados, um grupo de 74,5% mostrou preocupação com a segurança de suas informações. Outros dois grupos com 58%, mostraram preocupação com a disponibilidade das informações e com o desempenho de soluções migradas para a nuvem. Figura 5 - Pesquisa sobre Computação nas Nuvens Fonte: Velte Ant; Velte Tob et al., (2011, pag. 35) Assim como ocorrem nas estruturas locais de TI, também podem ocorrer na nuvem diversos tipos de ataques que buscam acessar informações privilegiadas, ou mesmo interromper serviços ativos. De acordo com Velte Ant; Velte Tob et al., (2011, pag. 31), de fato existem muitos riscos na utilização da nuvem, porém muitas empresas provedoras de serviço estão se esforçando ao máximo em manter todo o ambiente da cloud computing seguro. Muitas vezes o ambiente mantido na nuvem pelo provedor é inclusive mais seguro do que nas próprias corporações que utilizam o serviço. Os provedores de serviços utilizam normas e recomendações que visam a
  • 42. 42 garantir um melhor nível de serviço prestado. Sosinsky (2011, p. 426, tradução nossa) reforça que: A computação em nuvem tem muitas propriedades únicas que a tornam muito valiosa. Infelizmente, muitas dessas propriedades tornaram a segurança uma preocupação singular. Muitas das ferramentas e técnicas que poderiam ser utilizadas para proteger seus dados, cumprir com os regulamentos, e manter a integridade de seus sistemas são complicados pelo fato de que você compartilha seus sistemas com os outros e, muitas vezes, terceirizam suas operações. Prestadores de serviços de computação em nuvem estão bem cientes destas preocupações e estão desenvolvendo novas tecnologias para lidar com elas. Também é importante ressaltar que é possível ter diferentes níveis de segurança em diferentes tipos de modelos de utilização da nuvem. Por exemplo, seria possível a utilização de um serviço em IaaS com um nível mínimo de segurança, e um nível maior com a utilização de serviço do modelo SaaS. A utilização dos serviços na cloud necessitará que cada corporação elabore um mapeamento dos controles já existentes na sua infraestrutura local, que verifique quais os mecanismos de segurança necessários, e que estabeleça uma relação com os controles e mecanismos que os provedores de nuvem podem fornecer. Sosinsky (2011, p. 426) Com base nas pesquisas citadas, manter de forma segura as informações armazenadas, é o principal desafio que as organizações precisam se concentrar. Ainda de acordo com Sosinsky (2011, p. 437), mecanismos de controle de acesso podem ser utilizados para mitigar os riscos da nuvem, como a autenticação, garantindo as credenciais de determinado usuário; a autorização, atribuindo aos usuários direitos e permissões de acesso e a auditoria, buscando contabilizar e registrar as ações realizadas na nuvem. 2.2.2 Limites da nuvem Como qualquer outra tecnologia, a nuvem também possui suas deficiências e que precisam ser levadas em conta antes da tomada de qualquer decisão em utilizar serviços fora dos limites das corporações.
  • 43. 43 2.2.2.1 Confidencialidade das informações Segundo a norma NBR ISO/IEC 27001 (2006, pag. 2), a definição para confidencialidade é a “propriedade de que a informação não esteja disponível ou revelada a indivíduos, entidades ou processos não autorizados”. Quando os dados são enviados para um centro de dados terceirizado, esta propriedade pode ser quebrada, já que a garantia pela confidencialidade das informações passa a ser também de responsabilidade do fornecedor. As informações percorrem por diferentes tipos de sistemas, arquiteturas, redes de informações e estão sujeitas a serem abertas de forma silenciosa, sem que seus proprietários tenham conhecimento do vazamento de suas informações. Segundo Velte Ant; Velte Tob et al., (2011, pag. 31), quando os dados são enviadas para nuvem, perde-se uma camada de controle das informações que foram alocadas em um ambiente externo. Reese (2009, p. 100), destaca algumas situações em que a confidencialidade dos dados poderia estar comprometida; como a falência declarada de um fornecedor; um processo judicial que obrigaria o fornecedor a conceder acesso às informações; ou ainda uma falha eventual de algum processo que venha a comprometer as informações alocadas. Com base nestes relatos, percebe-se que a criptografia tem papel vital para mitigar incidentes quanto à confidencialidade dos dados. Antes das informações serem enviadas para ambientes na nuvem, os dados devem ser criptografados, garantindo consequentemente uma maior segurança. É importante ressaltar que, apesar dos benefícios resultantes da criptografia dos dados, perde-se também desempenho no acesso das informações, em razão dos cálculos matemáticos necessários para criptografar e descriptografar constantemente as informações. Além disso, mecanismos de criptografia podem não serem aplicáveis em todos os tipos de sistema, inviabilizando a utilização dos serviços na nuvem quando se é necessário o total controle das informações. 2.2.2.2 Disponibilidade de serviços A norma NBR ISO/IEC 27001 (2006, pag. 2), descreve disponibilidade como “propriedade de estar acessível e utilizável sob demanda por uma entidade autorizada”. É necessário que quando serviços são utilizados na nuvem, eles
  • 44. 44 estejam disponíveis a qualquer momento e que tenham desempenho suficiente para atender as demandas das aplicações. O fornecedor de serviços precisa garantir a disponibilidade das aplicações, como também é necessário que ele tenha uma grande capacidade de comunicação com a Internet, visando atender todos os seus clientes de forma satisfatória com os serviços que está prestando. Do lado do cliente, também é necessário que ele também mantenha uma infraestrutura de comunicação com a Internet adequada para os tipos de serviços que irá utilizar. Ainda assim, manter uma estrutura de backup local ou mesmo em outro fornecedor de nuvem, pode ser uma boa alternativa para garantir uma maior disponibilidade dos serviços. 2.2.2.3 Tipos de aplicações Há alguns tipos de aplicações que não justificam sua movimentação para uma plataforma na nuvem, em função de suas próprias características. Por exemplo, uma aplicação que demanda uma quantidade significativa de troca de tráfego, poderia ser inviabilizada em uma estrutura na nuvem pelo seu alto custo relacionado. Além disso, aplicações legadas que não tenham condições de serem migradas, podem não serem portadas para o ambiente externo por questões de compatibilidade. É necessário que entenda-se a necessidade do negócio e das aplicações, para que seja possível uma análise prévia dos tipos de aplicações e serviços que teriam vantagens se utilizados em ambientes da cloud. 2.2.2.4 Conformidade com a legislação vigente A conformidade com a legislação vigente é outro fator que precisa ser observado. Os países possuem legislações diferentes e que podem influenciar na segurança dos dados. Países como o EUA (Estados Unidos da América) permitem ao governo o acesso às informações armazenadas na nuvem em casos de necessidades de investigações Velte Ant; Velte Tob et al (2011,p.32). Uma citação do código de prática da NBR ISO/IEC 27005 (2005, pag. xi), descreve que,
  • 45. 45 uma outra fonte é a legislação vigente, os estatutos, a regulamentação e as cláusulas contratuais que a organização, seus parceiros comerciais, contratados, e provedores de serviço tem que atender, além do seu ambiente sociocultural. Conforme observou-se, esta definição que visa descrever as fontes para estabelecer os requisitos de segurança da informação, também trás a preocupação com a legislação vigente. Como as informações armazenadas podem estar alocadas em diversos países, é importante observar qual a legislação vigente nestes locais. Em eventuais intimações com o provedor do serviço na nuvem, os dados de todos os clientes lá alocados podem ser abertos durante uma investigação. 2.2.2.5 Multi-Inquilino De acordo com Reese (2009, p. 3), o conceito de multi-inquilino ou como definido na língua inglesa, multi-tenant é a capacidade de um sistema oferecer múltiplas instâncias de serviços compartilhando os mesmos recursos com vários usuários ao mesmo tempo. Este tipo de conceito permite que a infraestrutura seja compartilhada, reduzindo investimentos e o custo atribuído com desenvolvimento e suporte necessário para manter as aplicações. Conforme Sosinsky (2011, p. 202, tradução nossa), multi-locação também tende para a média da variabilidade intrínseca da procura individual, porque o "coeficiente de variáveis aleatórias" é sempre menor do que ou igual a qualquer uma das variáveis individuais. Com uma demanda mais previsível e menos variação, serviços na nuvem podem ser executados em maiores taxas de utilização do que os sistemas individuais. Isso permite que sistemas de nuvem operem com maior eficiência e menores custos. Entretanto, o conceito de multi-inquilino pode resultar em alguns problemas para usuários que utilizam serviços compartilhados. Quando um fornecedor determina a quantidade de recursos destinada para uma determinada infraestrutura, ele poderá realizar uma análise pela média de utilização estimada para um serviço que irá fornecer. Ocorre que se este nível médio de utilização exceder o nível previsto poderá resultar em impactos para seus clientes. Por exemplo, um determinado usuário que utiliza massivamente o acesso ao sistema de armazenamento, através de operações de leitura e gravação randômicas, afetaria provavelmente os demais usuários que estão utilizando o mesmo serviço.
  • 46. 46 2.2.2.6 Dependência do fornecedor Certas aplicações são desenvolvidas na nuvem atendendo os requisitos de determinado fornecedor. O problema é que o usuário pode ficar sem alternativas quando necessitar da portabilidade para sistemas de outros prestadores de serviços. Como a aplicação foi desenvolvida utilizando métodos disponibilizados pelo terceiro, ela pode ficar totalmente dependente do ambiente utilizado, causando o que é chamado de “vendor lock-in”. É indispensável que os fornecedores sejam analisados, buscando entender as padronizações utilizadas, e se elas poderão ser portadas para outros sistemas sem a necessidade de adaptações. 2.2.3 Cloud Security Alliance Os problemas relacionados com segurança na nuvem evidenciaram a necessidade de existir um estudo que apontasse os principais riscos da utilização de um ambiente em cloud e como estes riscos poderiam ser mitigados. Com base nesta necessidade, uma associação sem fins lucrativos chamada CSA (Cloud Security Alliance)14 foi criada, buscando a realização de pesquisas e a identificação dos principais problemas com segurança na nuvem, sugerindo as melhores práticas de segurança no contexto da computação nas nuvens. Este grupo de estudo é apoiado por profissionais da indústria, empresas, associações e demais partes interessadas. O documento divulgado como “CSA Guidance” fruto do estudo do grupo, está atualmente na versão 3.0, e traz as definições sobre cloud computing, métodos de governança e operação da nuvem. Ele está dividido em três grandes sessões:  arquitetura da Nuvem;  governança na Nuvem;  operação na Nuvem. Além das sessões principais, o guia traz consigo quatorze domínios que tratam assuntos relacionados à segurança e arquitetura de rede da nuvem. O estudo sugere que as organizações adotem abordagens baseadas em riscos durante a 14 CSA – http://www.cloudsecurityalliance.org
  • 47. 47 migração dos serviços para a nuvem. De acordo com o guia, uma empresa que for realizar a migração de um ativo para a nuvem, deverá classificá-lo em dados ou aplicações. A partir desta classificação, deverá avaliar os potenciais riscos quando estiverem em um ambiente da nuvem e qual a importância deles para a corporação. Com a definição de risco do ativo definida, pode-se determinar qual tipo de arquitetura utilizar: CSA (2011a).  público;  privado – interno (dentro da corporação);  privado – externo (provedor terceiro);  comunitário;  híbrido. Segundo o CSA (2011a) também é importante, nesta etapa, possuir um mapeamento de processos das aplicações e dados, buscando encontrar a arquitetura ideal e o tipo de serviço que será utilizado, seja IaaS, PaaS ou SaaS. No ambiente da nuvem, dependendo da arquitetura escolhida e do tipo de serviço para determinada aplicação, podem existir diferentes responsabilidades entre a organização que está utilizando a nuvem e o provedor do serviço. A ilustração a seguir apresenta as responsabilidades entre os tipos de modelos computacionais da nuvem, visando o entendimento das responsabilidades entre a organização e o provedor de serviço da nuvem.
  • 48. 48 Figura 6 - Responsabilidades entre modelos computacionais da nuvem Fonte: CSA GUIA PT-BR (2011b).
  • 49. 49 2.3 VIRTUALIZAÇÃO Apesar de não ser um requisito obrigatório, a virtualização é um dos motores que impulsionaram a computação nas nuvens. Esta tecnologia busca aproveitar melhor os recursos computacionais, evitando desperdícios e garantindo, principalmente, flexibilidade na criação e movimentação de máquinas virtuais. O conceito de virtualização iniciou a partir de ano de 1960, quando a IBM15 utilizou seus grandes mainframes16 para dividi-los em diversas máquinas virtuais, buscando maximizar a eficiência da utilização dos grandes computadores. Dessa forma, era possível que diversas máquinas virtuais trabalhassem ao mesmo tempo, compartilhando recursos. Com o passar dos anos, por volta de 1980, o modelo cliente-servidor dos processadores x8617 acabou dominando o mercado da tecnologia de computadores, deixando a virtualização em desuso. A tecnologia x86 tinha um baixo custo e permitia um modelo de computação distribuído. Neste modelo era possível que servidores com processadores x86 de alto poder de processamento executassem aplicações para diversas máquinas clientes ao mesmo tempo. Blokdijk; Menken (2009, p. 11) Os processadores foram evoluindo ao longo dos anos, crescendo verticalmente em capacidade de processamento e horizontalmente em número de núcleos. Apesar da grande evolução dos processadores, eles não eram utilizados em sua totalidade, passando a ficar ociosos durante sua maior parte da carga de trabalho. Somado a isto, novas necessidades surgiam, buscando reduzir custos com TI, e aumentando a disponibilidade de sistemas computacionais. A solução para isso seria a volta da tecnologia de virtualização iniciada na década de 1960. A VMware18 introduziu em 1999 a primeira solução para virtualização em processadores x86, resgatando a tecnologia que havia sido deixada para trás. Blokdijk; Menken (2009, p. 12) 15 IBM – International Business Machines – Empresa situada nos EUA, voltada para a área de informática. 16 Mainframe – Computador de grande porte, com alto poder de processamento. 17 Tipo de arquitetura de processadores 18 VMware – Empresa situada nos EUA, desenvolvedora de software para virtualização.
  • 50. 50 A tecnologia de virtualização evoluiu muito a partir do ano de 1999. Nos dias atuais é possível encontrar soluções de diferentes fabricantes que possuem soluções para virtualização, para diferentes plataformas e tipos de serviços. 2.3.1 Vantagens A virtualização oferece uma série de vantagens, buscando maximizar a utilização dos recursos de TI e reduzindo consequentemente seu custo. Dentre as vantagens, é possível citar:  redução no custo de infraestrutura;  aumento de disponibilidade de sistemas;  melhor aproveitamento de recursos ociosos;  maior taxa de consolidação;  menor tempo para entrega de serviços computacionais;  facilidades na recuperação de desastres;  gerenciamento centralizado;  economia de espaço físico. 2.3.2 Desvantagens A utilização da virtualização possui uma série de benefícios, entretanto também traz algumas desvantagens em sua adoção como:  alto consumo de memória física, podendo ser um gargalo na infraestrutura física;  concentrador de risco, quando há mais de uma máquina virtual em um mesmo hardware;  perda de desempenho quando comparado ao hardware físico;  segurança na camada de virtualização.
  • 51. 51 É evidente que as desvantagens citadas são pequenas, se comparadas com as vantagens da tecnologia. Estas desvantagens podem ser facilmente analisadas e mitigadas através de análises pontuais dos riscos. 2.3.3 Virtual Machine Monitor Segundo Sosinsky (2011, p. 202), uma VMM (Virtual Machine Monitor) ou hypervisor como também é referenciado, é um programa de baixo nível para fornecer ao sistema operacional acesso a recursos da máquina física. A virtualização pode ser classificada em dois tipos de arquitetura, o “tipo I” e o “tipo II”. O “tipo I” adiciona uma camada de virtualização entre o hardware e o sistema operacional convidado, garantindo um melhor desempenho, evitando a competição de processos entre o sistema operacional convidado e a camada de virtualização. Um hypervisor que executa um sistema operacional convidado no “tipo I” pode trabalhar como uma virtualização completa de processador (Full Virtualization) ou como uma para-virtualização (paravirtualization). Na virtualização completa, a máquina virtual tem acesso direto às instruções do processador, garantindo em algumas ocasiões um melhor desempenho. Na para-virtualização, é necessário uma interface entre o hypervisor e a máquina virtual que está sendo executada, geralmente modificando o sistema operacional convidado e garantindo, assim, um melhor desempenho. Sem a interface, ocorre uma emulação completa do hardware, reduzindo o desempenho da máquina virtual. Sosinsky (2011, p. 202) Já a virtualização de “tipo II”, tem instalada a camada de virtualização dentro de um sistema operacional hospedeiro subjacente. O grande problema do tipo II é que o sistema operacional hospedeiro irá concorrer na utilização de recursos com a camada de virtualização, afetando o desempenho dos sistemas operacionais convidados. Quando o “tipo II” executa uma máquina virtual, ela está virtualizada por meio da para-virtualização, da virtualização total, ou por meio de uma emulação completa de hardware. Sosinsky (2011, p. 203) É importante ressaltar que, para que a virtualização completa possa ter um desempenho maior que a para-virtualização, é necessário que o processador esteja preparado para entender as instruções corretas. Os processadores mais recentes da
  • 52. 52 Intel19 e AMD20 possuem suporte aos recursos VT-x e AMD-V respectivamente, que garantem a possibilidade de execução da virtualização completa com o maior desempenho possível. Este tipo de virtualização com suporte nos processadores, também é conhecido como a virtualização com hardware assistido. Quando o recurso de virtualização no processador é inexistente, os hypervisors para- virtualizados costumam ter um desempenho superior que a virtualização completa, pois conseguem analisar rapidamente as requisições das máquinas virtuais por meio da modificação existente no sistema operacional convidado. Mattos (2012) Em grande parte das instalações, o “tipo I“ é utilizado para provedores de serviço ou corporações com serviços locais de TI que buscam o melhor desempenho para as máquinas virtuais. Já o “tipo II”, é comumente utilizado para desenvolvimento e homologação de aplicações, ou mesmo para utilização doméstica. A figura 8 exemplifica a arquitetura de um ambiente virtual conhecido como virtualização de “tipo I” e o “tipo II”. O modelo “tipo I” é o mais utilizado para consolidar aplicações legadas da TI local de uma corporação. 19 INTEL - Empresa multinacional de tecnologia dos Estados Unidos da América. 20 AMD - Advanced Micro Devices – Empresa multinacional dos Estados Unidos da América.
  • 53. 53 Figura 7 - Tipos de arquitetura de virtualização. Fonte: Elaborado pelo autor. 2.3.4 Soluções de Virtualização Existem, atualmente, inúmeras soluções com o propósito de realizar a virtualização de máquinas virtuais. Algumas soluções trabalham exclusivamente com o “tipo I“, e outras com o “tipo II”. Este trabalho irá apresentar brevemente as soluções Qemu, KVM, Xen, VirtualBox e o VMware ESX. Estes hypervisors citados estão entre os mais utilizados para ambientes de produção e também para ambientes de testes e homologação.
  • 54. 54 2.3.4.1 Kernel-based Virtual Machine O KVM (Kernel-based Virtual Machine), mantido pela RedHat21 , é uma solução de código aberto para a infraestrutura de virtualização de máquinas virtuais e utilizado concomitantemente com o emulador e virtualizador Qemu. O KVM é instalado como um módulo do kernel do Linux e foi originalmente desenvolvido para arquitetura x86 e x86_64. Para utilizar o KVM é necessário que o processador do hardware hospedeiro contenha a extensão de virtualização disponível nos processadores AMD ou INTEL. O KVM executa em modo de virtualização completa de processador, embora utilize a para-virtualização para dispositivos de entrada/saída. Kvm (2011) 2.3.4.2 Qemu O Qemu é uma aplicação de código aberto que realiza a emulação e virtualização de máquinas virtuais. O Qemu pode trabalhar em modo usuário para emulação de sistemas operacionais e para diferentes plataformas de CPU ou no modo de virtualização completa, onde consegue virtualizar completamente a arquitetura de hardware para uma máquina virtual. É importante ressaltar que o Qemu é utilizado como complemento de virtualização para diversos hypervisors. Nestes casos, o Qemu é empregado para a para-virtualização de dispositivos de entrada/saída. É possível citar entre eles o KVM, Xen e Virtualbox. Qemu (2012a) 2.3.4.3 Xen O Xen é uma plataforma de código aberto para realizar a virtualização de máquinas virtuais de diversas arquiteturas como x86 e x86_64, além de outras. O Xen possui variações da sua plataforma, que trabalham como “tipo I“ ou “tipo II”, e também da forma para-virtualizada ou virtualização completa. Assim como o KVM, o Xen necessita que o processador do hardware hospedeiro contenha a extensão de virtualização disponível nos processadores AMD ou INTEL, para que possa realizar a virtualização completa. A plataforma Xen é uma das mais utilizadas atualmente e 21 RedHat – Empresa multinacional com base nos Estados Unidos da América que produz software baseado no sistema operacional Linux.
  • 55. 55 empregada, também, como base para soluções proprietárias de virtualização como o XenServer22 da Citrix Systems e como solução de virtualização da Oracle23 , conhecida como Oracle VM24 . Xen (2012) 2.3.4.4 Vmware ESX O VMware ESX é uma solução proprietária de virtualização pertencente a corporação VMware, Inc., subsidiária da EMC Corporation25 . O hypervisor do VMware ESX trabalha no “tipo I” e permite a virtualização de diversos sistemas operacionais no modo para-virtualizado ou virtualização completa. Vmware (2012b) 2.3.4.5 Virtualbox O Virtualbox é uma solução de virtualização pertencente a Oracle e que utiliza como modelo de trabalho o “tipo II” de virtualização. O VirtualBox é instalado em um sistema operacional hospedeiro realizando a para-virtualização ou, ainda, a virtualização completa, quando o processador possuir suporte a extensão de virtualização ativa. Por trabalhar exclusivamente com o “tipo II”, o VirtualBox tem uma maior adoção em ambientes domésticos e de homologação. Virtualbox (2012) 2.4 O ARMAZENAMENTO DE DADOS Assim como a virtualização, as tecnologias de armazenamento de dados são de suma importância para o crescimento da computação nas nuvens. Muitas tecnologias foram desenvolvidas e aprimoradas para garantir o máximo de confiança quanto se fala de armazenamento de dados. Existem diversas alternativas de arquiteturas para armazenamento de informações, sejam elas de acesso local ou acesso compartilhado em redes de dados, das quais podemos citar os tipos de storage DAS (Direct Attached Storage), NAS (Network Attached Storage) e SAN (Storage Area Network). A palavra da língua inglesa “storage”, que na tradução do 22 XenServer – Solução proprietária de virtualização - www.xensource.com. 23 Oracle – Empresa multinacional de tecnologia dos Estados Unidos da América. 24 Oracle VM - http://www.oracle.com/us/technologies/virtualization 25 EMC Corporation - Empresa multinacional fornecedora de sistemas para infraestrutura e situada nos Estados Unidos da América.
  • 56. 56 português brasileiro significa “armazenamento”, é um termo técnico utilizado e generalizado como um dispositivo centralizado para o armazenamento de dados. 2.4.1 Direct Attached Storage O storage do tipo DAS utiliza uma conexão direta entre o storage e o host cliente. Todas as requisições de acesso ao disco são feitas diretamente para o storage, que pode ser desde um simples disco conectado, até um equipamento storage dedicado em configuração raid 26 ativa, para o armazenamento de dados. Tecnologias como PATA (Parallel Technology Attachment), SCSI (Small Computer System Interface), SATA (Serial Advanced Technology Attachment), SAS (Serial Attached SCSI) e FC (Fibre Channel) são algumas tecnologias de conexões utilizadas em modelos do tipo DAS. Sacks (2001) 2.4.2 Network Attached Storage Um equipamento de storage do tipo NAS é aquele que fornece um meio de armazenamento de dados por meio de uma rede LAN (Local Area network), utilizada concomitantemente com a estrutura existente para a comunicação de serviços de rede baseados em TCP/IP. Normalmente estes tipos de dispositivos são servidores ou equipamentos dedicados com vários discos de armazenamento de dados. Estes discos, geralmente, participam de um grupo de raid, buscando um maior desempenho de I/O (Input/Output) de dados e redundância de discos. Para a comunicação do NAS com os clientes (hosts), normalmente utilizam-se protocolos como o CIFS (Common Internet File System) e o NFS (Network File System). Sacks (2001) 2.4.3 Storage Area Network Storage Area Network é a forma de armazenamento de dados utilizando uma rede de dados dedicada, exclusivamente, para o tráfego de informações. Este tipo de storage é indicado para aplicações que necessitam de um alto desempenho para 26 Raid – Tipo de tecnologia utilizada para criar uma redundância em um conjunto de discos independentes, além de oferecer mais desempenho para o acesso e gravação de dados.
  • 57. 57 o acesso aos dados, ao mesmo tempo em que necessitam da escalabilidade para o crescimento futuro. Em uma mesma rede SAN, podem estar disponíveis vários equipamentos de armazenamento de dados, os quais são acessados por diversos hosts simultaneamente. Usualmente, a comunicação dos dados em uma rede SAN pode ocorrer utilizando a tecnologia de transporte de dados FC, ou utilizando o protocolo de internet IP conhecido como iSCSI (Internet Small Computer System Interface), que utiliza como meio de transporte a rede do tipo ethernet. Assim como os equipamentos NAS, os discos de um equipamento do tipo SAN, geralmente participam de um grupo de raid buscando um maior desempenho de I/O (Input/Output) de dados e redundância de discos. Sacks (2001) Também é importante ressaltar, que em uma SAN os discos de armazenamento são apresentados aos seus clientes como uma LUN (Logical Unit Number). Uma LUN é uma referência utilizada para identificar uma unidade lógica em uma rede SAN. Por exemplo, um dispositivo SAN disponibiliza uma determinada LUN de nome lun0 com determinado volume e mapeia esta LUN para um host específico. Sacks (2001)
  • 58. 58 3 SOLUÇÃO PARA GERÊNCIA DA INFRAESTRUTURA DA NUVEM Neste capítulo, serão abordadas as diversas soluções para orquestrar um ambiente de infraestrutura da nuvem. A sessão 3.1 irá definir o conceito de orquestrar a nuvem, enquanto a sessão 3.2 irá apresentar as diversas soluções existentes, bem como uma análise parcial das soluções de IaaS existentes. As sessões 3.3 e 3.4 irão apresentar em maiores detalhes, as soluções Eucalyptus e Openstack respectivamente. Por fim, a sessão 3.5 irá apresentar um estudo comparativo entre OpenStack e Eucalyptus. 3.1 ORQUESTAR O AMBIENTE DA NUVEM Segundo o dicionário MICHAELLIS (2009), a palavra orquestrar significa “Compor as diferentes partes de uma peça musical para ser executada por orquestra” ou ainda “Orquestrar os componentes de uma equipe”. Em uma orquestra sinfônica, grupos orquestrais são regidos por um maestro que tem a responsabilidade de conduzir estes grupos a um objetivo final, a apresentação ao grande público. Fazendo uma analogia com a Computação nas Nuvens, o maestro, é a aplicação que controlará os diferentes tipos de sistemas de virtualização, as diferentes plataformas de armazenamento, as atribuições e os controles de acesso, delineando, por fim, a estrutura que será disponibilizada ao usuário. Os conceitos de virtualização e armazenamento centralizado são, atualmente, bem compreendidos e utilizados por grande parte das corporações, mas a grande oferta de soluções e padrões estabelecidos evidenciou o desafio existente em orquestrar esta variedade de soluções e garantir uma organização e simplificação do ambiente na nuvem. 3.2 SOLUÇÕES DE IAAS EXISTENTES Nesta sessão serão descritas soluções de IaaS utilizadas como referência para o desenvolvimento deste trabalho. Os principais serviços da Amazon serão descritos e, conforme citado anteriormente neste trabalho, também existem diversas soluções de código aberto que foram desenvolvidas e estão disponíveis para realizar
  • 59. 59 o gerenciamento de uma infraestrutura para a nuvem. O quadro abaixo apresenta seis principais soluções escolhidas. Quadro 2 - Soluções para gerenciamento de ambientes IaaS. Nome Tipo de Plataforma Versões código Arquitetura Amazon AWS IaaS Proprietário Público Eucalyptus IaaS Proprietário/Aberto Privado/Híbrido Nimbus IaaS Aberto Privado/Híbrido OpenNebula IaaS Aberto Privado/Híbrido OpenStack IaaS Aberto Público/Híbrido/Privado Fonte: Elaborado pelo autor. 3.2.1 Amazon Web Services A Amazon é uma grande empresa de comércio eletrônico dos EUA, que no ano de 2002 começou a oferecer serviços na internet conhecidos como AWS27 (Amazon Web Services). Estes serviços evoluíram ao longo dos anos e, de forma pioneira, a Amazon aprimorou sua estrutura de modo a oferecer serviços sob demanda. Atualmente, os serviços da AWS formam um conjunto de soluções para oferecer IaaS para empresas e usuários domésticos. A Amazon possui zonas de sua infraestrutura espalhadas em algumas localidades do mundo, incluindo o Brasil, onde está instalada na cidade de São Paulo. Amazon (2012c) Dentre os diversos serviços oferecidos, este trabalho irá destacar três principais: EC2 (Elastic Compute Cloud): Serviço que oferece capacidade de computação redimensionável na nuvem. Com o EC2 é possível gerenciar instâncias de máquinas virtuais em poucos minutos, escalonando para mais ou para menos a quantidade de recursos necessários. Além das diversas características, o EC2 fornece um conjunto de funções que podem ser executadas via API. Estas funções permitem que sistemas de gerenciamento de terceiros sejam integrados com a 27 AWS – http://aws.amazon.com
  • 60. 60 estrutura EC2 da Amazon, possibilitando a criação de instâncias, grupos de segurança, controles de acesso, entre outros. Amazon (2012a) EBS (Elastic Block Store): O serviço EBS fornece volumes de armazenamento em bloco para a utilização com instâncias EC2. Os volumes EBS são armazenados fora da instância e garantem uma vida independente da instância. Os volumes EBS podem ser utilizados para banco de dados, sistema de arquivos ou acesso a um armazenamento bruto do bloco. Amazon (2012e) S3 (Simple Storage Service): Assim como o EBS, o S3 fornece um serviço de armazenamento de dados, porém com utilização projetada para utilização na internet via protocolo HTTP28 ou BitTorrent29 . Outra grande diferença do S3 para o EBS é que o EBS mantém os dados apenas em uma zona da Amazon, enquanto o S3 pode replicar os dados do volume ao longo das demais zonas, garantindo réplicas dos dados alocados. Em contrapartida, a velocidade de leitura e gravação de dados ao S3 pode ser menor se comparada com o EBS. Além disso, o S3 permite manter imagens de estado (snapshots) do serviço EBS, garantindo, assim, backups dos volumes EBS. Também é fornecido pelo S3 interfaces de integração (API) SOAP e REST para o gerenciamento de arquivos. Amazon (2012b) 3.2.2 Nimbus O Nimbus é uma plataforma focada na infraestrutura da computação nas nuvens. Possui integração com Xen e KVM, e é compatível como o padrão de API EC2 e S3 da Amazon. Apesar de ele poder ser utilizado tanto para provedores que desejam oferecer serviços em nuvem como para usuários finais ou desenvolvedores que precisam testar aplicações, ele tem um forte apelo acadêmico, o qual é utilizado para gerenciar alguns tipos de aplicações legadas. Nimbus (2012a) 3.2.3 OpenNebula O OpenNebula, é um projeto de código aberto que busca desenvolver uma padronização para a indústria, com o objetivo de gerenciar ambientes virtualizados e 28 HTTP - Hypertext Transfer Protocol – Protocolo utilizado para comunicação de sites web. 29 BitTorrent – Protoloco de transferências de arquivos em topologia peer-to-peer.
  • 61. 61 infraestrutura de uma nuvem híbrida e privada, apesar de também ser suportado para o gerenciamento de uma nuvem pública. O projeto OpenNebula foi iniciado como uma pesquisa no ano de 2005, e teve sua primeira versão disponibilizada em 2008. O OpenNebula pode gerenciar os hypervisors Xen, KVM, e VMware além de suportar integração com o modelo de API EC2 da Amazon. Opennenula (2012a) 3.2.4 Eucalyptus O Eucalyptus é uma aplicação madura, open-source, que trabalha com alguns tipos de hypervisors como o Xen e KVM, e realiza a integração com o padrão de API EC2 e S3 da Amazon. Iniciado a partir de um projeto de pesquisa da Universidade da Califórnia, Santa Barbara em 2007, ele foi desenvolvido com base na infraestrutura do fornecedor de IaaS Amazon, buscando adicionar suas principais características e funcionalidades. O Eucalyptus possui duas divisões internas, uma divisão open-source baseada na licença GPL v3, e outra proprietária. A licença proprietária disponibiliza outras funcionalidades, como integração com hypervisor VMware ESX e suporte técnico, que não estão inclusas na versão open-source. Eucalyptus (2012b) 3.2.5 OpenStack O Openstack é uma solução de gerência de uma nuvem IaaS, seu código é totalmente livre e surgiu em 2010, fruto de um de projeto de pesquisa e desenvolvimento a partir da união da NASA (National Aeronautics and Space Administration) dos Estados Unidos e da empresa privada de infraestrutura, Rackpace. O conceito principal do Openstack, que está baseada na licença Apache 2.0, é fornecer uma plataforma de gerenciamento de infraestrutura neutra e compatível com o maior número possível de desenvolvedores de aplicações e infraestrutura. O OpenStack pode controlar os hypervisors Xen/XenServer, KVM, VMware/ESX, LXC (Linux Containers) UML (User Mode Linux), Hyper-V, Qemu e também realiza a integração com o padrão de API EC2 e S3 da Amazon. OpenStack (2012b)