tcc danilo do nascimento lima

61
UNIVERSIDADE FEDERAL FLUMINENSE Danilo do Nascimento Lima Computação em Nuvens – Uma Visão Geral Niterói 2016

Upload: others

Post on 11-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TCC DANILO DO NASCIMENTO LIMA

UNIVERSIDADE FEDERAL FLUMINENSE Danilo do Nascimento Lima

Computação em Nuvens – Uma Visão Geral

Niterói 2016

Page 2: TCC DANILO DO NASCIMENTO LIMA

Danilo do Nascimento Lima

Computação em Nuvens – Uma Visão Geral

Trabalho de Conclusão de Curso subme-

tido ao Curso de Tecnologia em Siste-

mas de Computação da Universidade

Federal Fluminense como requisito par-

cial para obtenção do título de Tecnólo-

go em Sistemas de Computação.

Orientador: Douglas Paulo de Mattos

NITERÓI 2016

Danilo do Nascimento Lima

Page 3: TCC DANILO DO NASCIMENTO LIMA

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

L732 Lima, Danilo do Nascimento

Computação em nuvens : uma visão geral / Danilo do

Nascimento Lima. – Niterói, RJ : [s.n.], 2016.

60 f.

Projeto Final (Tecnólogo em Sistemas de Computação) –

Universidade Federal Fluminense, 2016.

Orientador: Douglas Paulo de Mattos.

1. Computação em nuvem. 2. Provedor de serviços da internet. I.

Título.

CDD 004.36

Page 4: TCC DANILO DO NASCIMENTO LIMA

Computação em Nuvens – Uma Visão Geral

Trabalho de Conclusão de Curso subme-

tido ao Curso de Tecnologia em Siste-

mas de Computação da Universidade

Federal Fluminense como requisito par-

cial para obtenção do título de Tecnólo-

go em Sistemas de Computação.

Niterói, 22 de Dezembro de 2016.

Banca Examinadora:

_________________________________________

Prof. Douglas Paulo de Mattos, MSc. – Orientador

UFF – Universidade Federal Fluminense

_________________________________________

Profa. Julliany Sales Brandão, DSc. – Avaliador

CEFET-RJ – Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Page 5: TCC DANILO DO NASCIMENTO LIMA

Dedico este trabalho a minha mãe Cacilda.

Page 6: TCC DANILO DO NASCIMENTO LIMA

AGRADECIMENTOS

A Deus, que sempre iluminou a minha cami-

nhada.

A meu Orientador Douglas Paulo de Mattos

pelo estímulo e atenção que me concedeu

durante o curso.

Aos Colegas de curso pelo incentivo e troca

de experiências.

A todos os meus familiares e amigos pelo

apoio e colaboração.

Page 7: TCC DANILO DO NASCIMENTO LIMA

“A persistência é o caminho do êxito”.

Charles Chaplin

Page 8: TCC DANILO DO NASCIMENTO LIMA

RESUMO

Computação em nuvem, Cloud Computing do inglês, é um modelo de computação em que são oferecidos serviços de processamento, armazenamento e software atra-vés da Internet, sendo disponibilizados pelos provedores de serviços de nuvem e podendo ser acessados de qualquer dispositivo de qualquer lugar com conexão à Internet. Diante do constante crescimento dessa nova abordagem de oferta de servi-ços pela Internet, este trabalho apresenta uma visão geral da computação em nu-vem, discutindo diversos conceitos envolvidos nesse paradigma. Assim, o trabalho aborda tecnologias básicas necessárias para a implementação da computação em nuvem, discute conceitos fundamentais para a compreensão de sua arquitetura, além de discutir os modelos de serviço e de implementação encontrados na literatu-ra. Ademais, o trabalho apresenta os principais desafios enfrentados pela computa-ção em nuvem e levanta questões sobre o futuro dessa tecnologia. Ao final, são ci-tados alguns provedores de serviços de nuvem, descrevendo diversos de seus pro-dutos oferecidos.

Palavras-chaves: computação em nuvem, provedores de serviços, modelos de im-

plementação, modelos de serviços, desafios na computação em nuvem.

Page 9: TCC DANILO DO NASCIMENTO LIMA

ABSTRACT

Cloud computing, is a computing model, in which are provided services like pro-cessing, data storage via the Internet, being made available by cloud service provid-ers and can be accessed from any device from anywhere with an Internet connec-tion. Given the constant growth of the new approach to Internet service provision, this paper presents an overview of cloud computing, discussing several concepts in-volved in this paradigm. Thus, the paper addresses basic technologies for an imple-mentation of cloud computing, discusses fundamental concepts for an understanding of its architecture, and discusses the cloud service and implementation models found in the literature. In addition, the paper presented the main challenges faced by cloud computing and surveys on the future of technology. In the end, some cloud service providers are listed, describing a number of their products offered.

Key words: cloud computing, cloud service providers, deployment models, service

models, cloud computing challenges.

Page 10: TCC DANILO DO NASCIMENTO LIMA

LISTA DE ABREVIATURAS E SIGLAS

IAAS - Infraestrutura como Serviço

PAAS - Plataforma como Serviço

SAAS - Software como Serviço

DAAS - Dados como serviço

CAAS - Comunicação como serviço

XAAS - Tudo como serviço

DBAAS - Banco de dados como serviço

BPaaS - Business Process as a Service – Processo de Negócios como Serviços, em

potuguês

ARPANET - Advanced Research Projects Agency Network

BRASSCOM - Associação Brasileira das Empresas de Tecnologia da Informação e

Comunicação

VPNs - Virtual Private Networks

LAN – Rede Local

SO - Sistema Operacional

SOA - Service-Oriented Architecture – Serviço orientado a arquitetura, em português

MVs – Máquinas Virtuais

API - Application Programming Interface - Interface de Programação de Aplicativos,

em português

IDE - Integrated Development Environment - Ambiente de Desenvolvimento Integra,

em português

TI – Tecnologia em Informação

SLA - Service Level Agreement - Acordo de Nível de Serviço, em português

XML - eXtensible Markup Language

Page 11: TCC DANILO DO NASCIMENTO LIMA

SUMÁRIO

RESUMO ..................................................................................................................... 8

ABSTRACT ................................................................................................................. 9

LISTA DE ABREVIATURAS E SIGLAS .................................................................... 10

1 INTRODUÇÃO ................................................................................................... 13

1.1 OBJETIVO .................................................................................................. 14

1.2 ORGANIZAÇÃO DO TRABALHO ............................................................... 14

2 HISTÓRICO DA COMPUTAÇÃO EM NUVEM PASSADO E PRESENTE ........ 16

2.1 PASSADO DA COMPUTAÇÃO EM NUVEM .............................................. 16

2.2 PRESENTE DA COMPUTAÇÃO EM NUVEM ............................................ 17

3 FUNDAMENTAÇÃO TEÓRICA .......................................................................... 20

3.1 DEFINIÇÃO ................................................................................................. 20

3.2 ARQUITETURA .......................................................................................... 21

3.3 FUNCIONAMENTO .................................................................................... 22

3.4 IMPORTÂNCIA ........................................................................................... 23

3.5 TECNOLOGIAS UTILIZADAS PELA COMPUTAÇÃO NA NUVEM ........... 24

3.5.1 VIRTUALIZAÇÃO .................................................................................. 24

3.5.1.1 TIPOS DE VIRTUALIZAÇÃO: ......................................................... 25

3.5.2 SOA E CLOUD ...................................................................................... 26

3.5.3 TECNOLOGIA MULTICORE ................................................................. 27

3.5.4 WEB 2.0 ................................................................................................. 28

4 MODELOS DE SERVIÇOS DA NUVEM ............................................................ 29

4.1 INFRAESTRUTURA COMO SERVIÇO IAAS ............................................ 29

4.1.1 CARACTERÍSTICAS DO IAAS ............................................................. 30

4.1.2 ADEQUALIBILIDADE DO IAAS ............................................................ 30

4.1.3 VANTAGENS E DESAFIOS DA IAAS ................................................... 31

4.2 PLATAFORMA COMO SERVIÇO PAAS .................................................... 33

4.2.1 CARACTERÍSTICAS DO PAAS ............................................................ 33

4.2.2 ADEQUALIBILIDADE DO PAAS ........................................................... 35

4.2.3 VANTAGENS E DESAFIOS DA PAAS ................................................. 36

4.3 SOFTWARE COMO SERVIÇO SAAS ........................................................ 37

4.3.1 CARACTERÍSTICAS DO SAAS ............................................................ 39

4.3.2 ADEQUALIBILIDADE DO SAAS ........................................................... 39

Page 12: TCC DANILO DO NASCIMENTO LIMA

4.3.3 VANTAGENS E DESAFIOS DA SAAS ................................................. 40

4.4 OUTROS MODELOS DE SERVIÇOS ........................................................ 42

5 MODELOS DE IMPLEMENTAÇÃO EXISTENTE .............................................. 44

5.1 NUVEM PRIVADA ...................................................................................... 44

5.2 NUVEM PÚBLICA ....................................................................................... 45

5.3 NUVEM COMUNITÁRIA ............................................................................. 45

5.4 NUVEM HÍBRIDA ........................................................................................ 46

6 DESAFIOS E O FUTURO DA COMPUTAÇÃO EM NUVEM ............................. 47

6.1 SEGURANÇA ............................................................................................. 47

6.2 DISPONIBILIDADE ..................................................................................... 47

6.3 CONTROLE DOS RECURSOS .................................................................. 48

6.4 INTEROPERABILIDADE ............................................................................ 49

6.5 FUTURO DA COMPUTAÇÃO NAS NUVENS ............................................ 50

7 PROVEDORES DE SERVIÇOS DE NUVEM .................................................... 52

7.1 GOOGLE ..................................................................................................... 52

7.2 MICROSOFT ............................................................................................... 54

7.3 IBM .............................................................................................................. 55

8 CONCLUSÕES E TRABALHOS FUTUROS ...................................................... 58

REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 59

Page 13: TCC DANILO DO NASCIMENTO LIMA

13

1 INTRODUÇÃO

A Computação em Nuvem e suas principais características começaram a

ganhar força em 2008, mas conceitualmente as ideias por trás da denominação exis-

tem há muito mais tempo. A Computação em Nuvem se refere, essencialmente, à

noção de utilizar, em qualquer lugar e independente de plataforma, as mais variadas

aplicações por meio da Internet como se estivessem instaladas em computadores

locais.

A computação em nuvens agrega muitas vantagens tanto para as empresas

quanto para os usuários, como poder utilizar as aplicações de qualquer lugar e a

qualquer hora, gastos com infraestrutura, licenças de aplicativos proprietários e

manutenção de equipamentos. Obviamente também existirão desvantagens, como a

preocupação no que diz respeito à segurança e privacidade. Ao utilizar o sistema, o

usuário entrega seus dados e informações importantes aos cuidados de outra

empresa, o que para muitos é uma questão bastante complicada e que causa uma

sensação de vulnerabilidade. O fato de depender de disponibilidade de acesso à

Internet também é um fator complicador.

Uma vez devidamente conectado ao serviço on-line, é possível desfrutar de

suas ferramentas e salvar todo o trabalho que for feito para acessá-lo depois de

qualquer lugar — é justamente por isso que o computador estará nas nuvens, pois

será possível acessar os aplicativos a partir de uma conexão com a Internet, sendo

possível acessar um servidor capaz de executar o aplicativo desejado, que pode ser

desde um processador de textos até mesmo um jogo ou uma aplicação que

demande alto poder de processamento, como um editor de vídeos.

No intuito de fazer com que a Computação em Nuvem (Cloud Computing)

funcione, existem alguns modelos de serviços que se adequam ao que a empresa

e/ou cliente precisam como software, serviço ou infraestrutura como serviço. Depen-

dendo do que o cliente exigir, a empresa necessitará avaliar com cuidado qual mo-

delo de implementação será utilizado, como o privado, público ou híbrido.

Page 14: TCC DANILO DO NASCIMENTO LIMA

14

A ideia básica de computação em nuvem é poder utilizar aplicações como jo-

gos, programas e sistemas, de qualquer lugar usando computadores, ou celulares,

tablets entre outros dispositivos através da Internet sem necessariamente ter que

instalar nesses dispositivos. Essa é uma proposta bem desafiadora, pois ainda hoje

muitas pessoas e empresas utilizam recursos computacionais de forma proprietária

de modo que eles são responsáveis pela gestão, manutenção e atualização dos re-cursos computacionais que dispõem.

Com o advento da computação em nuvem, sugiram novos desafios e oportuni-

dades em relação ao fornecimento desse serviço. Apesar disso, muitas empresas

começaram a fornecer e tentar aprimorar esse novo modelo de serviço.

1.1 OBJETIVO

Apresentar uma visão geral sobre o tema computação em nuvem, abordando algu-

ma de suas tecnologias, suas características, conceitos básicos, vantagens e desa-

fios tanto para os usuários quanto para as empresas que o fornecem, em uma abor-dagem geral e intuitiva.

1.2 ORGANIZAÇÃO DO TRABALHO

No Capítulo 1, será apresentado a introdução ao tema Computação em Nu-

vens. No Capítulo 2, será descrito o histórico de computação em nuvem citando seu

passado e presente. No Capítulo 3, será apresentado a fundamentação teórica de

computação em nuvem, sua definição, arquitetura, funcionamento e importância e

algumas de suas tecnologias. O Capítulo 4 abordará os modelos de serviços exis-

tentes da computação em nuvens como Infraestrutura como Serviço (IaaS), Plata-

forma como Serviço (PaaS), Software como Serviço (SaaS), entre outros. No capítu-

lo 5, será introduzido os modelos de implementação existentes como Nuvem Priva-

da, Nuvem Publica, Nuvem Comunitária e Híbrida, abordando suas vantagens e

Page 15: TCC DANILO DO NASCIMENTO LIMA

15

desvantagem. O Capítulo 6 é dedicado aos desafios relacionados e ao futuro da

computação nas nuvens. No Capítulo 7, será abordado alguns provedores de servi-

ços da computação em nuvem e os serviços oferecidos pelas empresas Google, Mi-

crosoft e IBM. E finalmente, no Capítulo 8, temos as conclusões e indicações para

trabalhos futuros.

Page 16: TCC DANILO DO NASCIMENTO LIMA

16

2 HISTÓRICO DA COMPUTAÇÃO EM NUVEM PASSADO E PRESENTE

Este capítulo será dividido em duas partes, na primeira parte será abordado o pas-

sado da computação em nuvem, já na segunda será abordado o presente da compu-

tação em nuvem.

2.1 PASSADO DA COMPUTAÇÃO EM NUVEM

A principal ideia da Computação em Nuvem que consiste na utilização de recursos

computacionais por meio da Internet já existe desde 1960, com Joseph Carl Robnett

Licklider [2].

Joseph Carl um dos desenvolvedores da Advanced Research Projects Agency

Network (ARPANET) antecessor da Internet, já imaginava uma rede de computado-

res intergaláctica onde todos estariam conectados e acessando dados e programas

de qualquer lugar.

John McCarthy, um dos pioneiros da Inteligência artificial na mesma década, pro-

pôs a ideia de que a computação deveria ser organizada na forma de um serviço de

utilidade pública, assim como os serviços de água e energia, em que os usuários só

pagam pelo que usam, como acontece hoje nesse novo modelo de computação [2].

Mesmo com essas ideias tendo surgido na década de 60, o termo Cloud Compunting

só foi mencionado em 1997 na palestra do professor de sistemas da informação

Ramnath Chellappa e só foi desenvolvida no ano de 1999 com o surgimento da Sa-

lesforce.com, a primeira empresa a disponibilizar aplicações na Internet [2]. Depois

do sucesso dessa empresa, outras grandes começaram a investir na área, como a

Amazon, a Google, a IBM e a Microsoft. A demora da implementação da ideia ocor-

reu, pois apenas nos anos 90 a Internet banda larga começou a ser oferecida.

A Amazon Web Services em 2002 ofereceu um conjunto de serviços baseados

em nuvem, como armazenamento, cálculos computacionais e até mesmo inteligên-

Page 17: TCC DANILO DO NASCIMENTO LIMA

17

cia humana, através da Amazon Mechanical Turk. Em 2006, a Amazon lançou o seu

Elastic Compute Cloud (EC2) como um serviço web comercial que permitia que as

pequenas empresas e indivíduos alugassem computadores para executar suas apli-

cações [3].

Outro grande marco veio em 2009, com Web 2.0, a Google e outras empresas

começaram a oferecer aplicativos corporativos baseados em navegador, além de

serviços como o Google Apps. O amadurecimento da tecnologia de virtualização, o

desenvolvimento de largura de banda de alta velocidade e o crescimento explosivo

de dados também permitiram que a computação em nuvem pudesse evoluir [3].

2.2 PRESENTE DA COMPUTAÇÃO EM NUVEM

Apesar de muitas pessoas e empresas utilizarem recursos computacionais de

forma proprietária de modo que eles são responsáveis pela gestão, manutenção e

atualização dos recursos computacionais que dispõem. Essas mesmas pessoas po-

dem estar utilizando computação em nuvens sem nem perceber, seja no trabalho ou

para se entreter, em atividades rotineiras como assistir a filmes e séries no Netflix,

acessar documentos pelo computador ou celular e recorrer a um aplicativo para

chamar o táxi. Todas essas aplicações são apenas viáveis devido à computação em

nuvem, tecnologia que existe há mais de uma década, mas só agora tem obtido ca-

da vez mais espaço e relevância.

A ideia inicial para o que conhecemos hoje como Computação em Nuvem, nas-

ceu com os sistemas distribuídos, que são um conjunto de unidades de processa-

mento independentes, que, por meio da troca de comunicação e gerenciamento de

sincronização, pode processar uma aplicação em diferentes localidades, de modo

que o usuário da aplicação vê apenas o todo. Mas a computação em nuvem hoje em

dia, vai muito além disso, trata-se de um formato de computação a partir do qual

aplicativos, serviços, dados e recursos de TI são disponibilizados aos usuários como

serviço, por meio da Internet. Alguns exemplos de empresas que usam esse modelo

computacional são o Dropbox, Gmail, Gol Linhas Aéreas, Outlook e Peixe Urbano

[2].

Page 18: TCC DANILO DO NASCIMENTO LIMA

18

Hoje em dia não necessariamente, as empresas precisam ter supercomputado-

res, pois o poder de processamento e os dados podem ficar nas nuvens. Apenas

precisamos de dispositivos que nos deem acesso a esses recursos. Dispositivos es-

tes que consequentemente são mais baratos e possuem uma maior portabilidade e

flexibilidade, como smartphones, tablets e netbooks. Só precisamos agora de dispo-

sitivos de entrada e saída e acesso à Internet, sendo os supercomputadores usados

somente por aqueles que realmente precisam desse tipo de máquina, o que não é o

caso da maioria das pessoas. O mundo está informatizado e conectado, a atenção

está voltada ao que há de mais prático e veloz. Com a computação em nuvem, tudo

isso é possível: versatilidade, rapidez e disponibilidade. Os usuários têm a possibili-

dade de acessar os seus arquivos pessoais de qualquer lugar, assim como poderão

editá-los, compartilhá-los e salvá-los, portanto que possuam uma conexão com a

internet [2].

De acordo com um recente relatório do Projeto de Divulgação de Carbono (Car-

bon Disclosure Project), as empresas que aperfeiçoarem as operações para aprimo-

rar o desempenho em TI não só reduzirão os investimentos de capital, mas também

diminuirão o consumo de energia e as emissões de carbono [4]. A diminuição de

gastos ocorre pois as empresas não precisarão mais gastar quantias elevadas para

comprar e manter computadores como servidores de dados ou manter seus siste-

mas funcionando. Elas precisarão apenas contratar outras empresas que manterão

essa infraestrutura e terão a tarefa de arcar com a manutenção e segurança de data

centers, assim evitando ter que gastar com energia elétrica, com técnicos e atualiza-

ções de equipamentos.

Segundo dados da Associação Brasileira das Empresas de Tecnologia da Infor-

mação e Comunicação (Brasscom) de 2015, foi demonstrado uma taxa de cresci-

mento de 10% em relação ao ano de 2014 na utilização da computação na nuvem, e

quase a metade dos empreendimentos nacionais já utiliza este tipo de recurso. Isso

se dá em função da ampliação da disseminação das informações a respeito deste

tipo de solução para os diversos tipos de negócio, tendo em vista que para muitos

ainda é um conceito inovador e totalmente inimaginável até então [5].

Mesmo com esse crescimento, o Brasil ficou em 22º lugar em ranking (com 24

países) que avalia políticas relacionadas à computação em nuvem de cada um deles

com base no desempenho em sete áreas. As nações avaliadas representam cerca

Page 19: TCC DANILO DO NASCIMENTO LIMA

19

de 80% do mercado de TI (Estudo realizado pela BSA) [6]. Apesar dessa posição, o

país progrediu em relação ao estudo de 2013, passando de 44,1 para 48,5 pontos.

Pesquisas recentes [6] mostram que quase todos os países realizaram melhorias em

suas políticas relacionadas à Cloud Computing desde o último relatório. Entretanto, a

lacuna entre os países com as melhores, intermediárias e piores colocações aumen-

taram. Segundo o levantamento, o Brasil avançou principalmente nas áreas de se-

gurança, infraestrutura e liberdade na internet. [6].

Page 20: TCC DANILO DO NASCIMENTO LIMA

20

3 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo, será abordado a definição, arquitetura, funcionamento, importância e

tecnologias utilizadas pela computação em nuvem.

3.1 DEFINIÇÃO

O termo Computação em Nuvem simplesmente significa armazenar e acessar

dados e programas através da Internet a partir de um local remoto ou computador,

em vez de acessá-los localmente. A infraestrutura da computação em nuvem possui

diversas características importantes para fornecer serviços pela rede com qualidade,

tais como: escalabilidade e elasticidade, que representam a capacidade do sistema

em se expandir quando necessário e se adaptar à carga necessária aumentando ou

diminuindo seus recursos respectivamente. Isto é bem diferente de uma simples

maquina remota oferecendo serviços pela rede, uma vez que ela não compõe um

sistema distribuído com recursos heterogêneos com capacidade de atender grandes

demandas. A nuvem é apenas uma metáfora para a Internet. Quando são executa-

dos dados ou programas a partir de um computador local, é chamado de computa-

ção e armazenamento local. Para ser considerado computação em nuvem é preciso

acessar os dados e programas através da Internet. No fim, o resultado é o mesmo,

mas com uma conexão on-line a computação em nuvem pode ser feita em qualquer

lugar, hora ou dispositivo [1].

A computação em nuvem pode também ser considerada um grande repo-

sitório de recursos virtualizados, em que hardwares e softwares virtuais podem ser

acessados facilmente pela Internet. Ela normalmente utiliza o modelo de cobrança

por utilização desses recursos, ou seja, o cliente deve realizar o pagamento quando

ele utiliza um determinado serviço.

Page 21: TCC DANILO DO NASCIMENTO LIMA

21

3.2 ARQUITETURA

Igual a qualquer outro modelo tecnológico, a Computação em Nuvem também

tem uma arquitetura que descreve seu mecanismo de trabalho, que é uma visão hie-

rárquica de descrever a tecnologia. Isso inclui as dependências que ele trabalha e os

componentes que o utilizam. Cloud Computing é uma tecnologia recente que neces-

sita completamente da Internet para funcionar. A arquitetura da nuvem pode ser di-

vidida em quatro camadas baseado no acesso da nuvem pelo seu usuário [1]:

Camada 1 (Camada Usuário/Cliente) - Essa camada é a mais baixa na arquitetura

da nuvem. Todos os clientes ou usuários pertencem a essa camada, em que o clien-

te/usuário inicia a conexão com a nuvem. O cliente pode ser representado por um

dispositivo classificado como thin client, que funciona como um “terminal burro” que

aproveita os recursos do computador que está associado, ou como thick client, que

possui recursos suficientes para realizar boa parte das operações por si próprio,

dando suporte básico para acesso às aplicações Web.

Camada 2 (Camada de rede) - Essa camada permite os usuários se conectarem

com a nuvem. Toda infraestrutura da nuvem é dependente dessa conexão, em que

os serviços são oferecidos aos clientes. No caso de uma nuvem pública, ela pode

ser acessada por qualquer usuário da rede global de Internet. A nuvem pública nor-

malmente está em uma localização específica desconhecida pelos usuários. Já no

caso de uma nuvem privada, a conectividade pode ser oferecida por uma conexão

de rede local (LAN).

Camada 3 (Camada de Gerenciamento de Nuvem) - Essa camada consiste em

softwares que gerenciam a nuvem. Os softwares podem ser um sistema operacional

(SO) em nuvem, que funciona como interface entre o servidor de dados (recursos

reais) e o usuário, ou um software que permite o gerenciamento de recursos. Esses

softwares geralmente permitem o gerenciamento de recursos (agendamento, provi-

sionamento, etc.), a otimização de recursos (consolidação de servidores, consolida-

ção de carga de trabalho de armazenamento) e governa a nuvem interna.

Page 22: TCC DANILO DO NASCIMENTO LIMA

22

Camada 4 (Camada de recursos de hardware) - Essa camada fornece recursos de

hardwares reais. Normalmente no caso de uma nuvem pública, o servidor de dados

é usado como um back-end, módulo de um sistema responsável pelas regras de

negócio. Ela também é aplicada na nuvem privada, podendo ser um servidor de da-

dos (data center), que é uma enorme coleção de recursos de hardware interconec-

tados entre si e está em um local específico ou em um sistema com alta configura-

ção, possuindo uma conexão de rede de alta velocidade e um algoritmo altamente

eficiente para transferir os dados do servidor para o gerente. Nesta camada, não só

pode haver uma série de servidores de dados para uma nuvem, como também pode

existir uma série de nuvens que compartilham um servidor.

3.3 FUNCIONAMENTO

Como mostrado na Seção 3.2, a arquitetura de computação em nuvem é base-

ada em camadas hierarquicamente, em que cada uma delas é responsável por reali-

zar tarefas a fim de disponibilizar recursos para as aplicações [7]. Alguns destes re-

cursos computacionais podem ser estruturados para realizar uma determinada tarefa

do sistema. Além disso, cada camada pode ter seu gerenciamento ou monitoramen-

to independente umas das outras, o que auxilia na eficiência da utilização dos recur-

sos.

Na camada que contém a infraestrutura física (camada de recursos de hardwa-

re), são encontrados centros de dados, clusters e outros recursos de hardware, que

oferecem flexibilidade e facilidade no atendimento da demanda por novos recursos.

A camada middleware (camada de gerenciamento de nuvem) é responsável por ge-

renciar a infraestrutura física e oferecer uma visão lógica da infraestrutura da nuvem.

Entre a camada cliente e a de middleware, pode haver uma camada que é respon-

sável por suportar a construção das aplicações através de ferramentas e dos ambi-

entes de desenvolvimento [7]. Portanto, ela é utilizada pelos desenvolvedores de

sistemas baseadas em nuvem. E a camada cliente é utilizada pelos usuários finais,

dando acesso às aplicações da nuvem. Dessa forma, todas as camadas abaixo da

Page 23: TCC DANILO DO NASCIMENTO LIMA

23

camada cliente ou de aplicação são responsáveis por oferecer as propriedades es-

senciais de um serviço em nuvem (escalabilidade, disponibilidade, transparência de

recursos e alto desempenho).

3.4 IMPORTÂNCIA

A importância da computação em nuvem hoje em dia não pode ser mais nega-

da, pois agrega muitas vantagens e facilidades tanto para os usuários quanto para

empresas ou o meio ambiente. A seguir, destacamos algumas dessas vantagens

oferecidas por esse novo paradigma.

A computação em nuvem proporciona a diminuição de lixo eletrônico descarta-

do no meio ambiente, devido à reutilização de hardwares oferecidos pela infraestru-

tura da computação em nuvem. Além disso, empresas têm um menor gasto com

hardware, pois a necessidade de computadores mais robustos e atualização de sof-

twares não é mais tão fundamental na execução de serviços quando estes utilizam

recursos da nuvem.

Outra vantagem é quando o usuário possui um documento importante e salva-

o na nuvem, podendo acessá-lo mesmo se seu dispositivo pare de funcionar através

de outro dispositivo com conexão à Internet. Assim, evitando perder todo seu traba-

lho ou progresso que havia feito nesse documento.

Quando uma empresa contrata um serviço oferecido através da computação

em nuvem, ela deixa de ser responsável pelos gastos com energia elétrica que seria

utilizada para manter a infraestrutura necessária para implantar localmente o serviço.

Além disso, a empresa não é mais encarregada de realizar a manutenção de máqui-

nas que executariam seus serviços, de investir em computadores de alto desempe-

nho, ou ainda de manter a segurança de seus dados, visto que todo esse gerencia-

mento é responsabilidade da empresa contratada que oferece os serviços em nu-

vem.

A computação em nuvens também está ajudando as pessoas na sua hora de

lazer, como a Netflix, que oferece filmes e seriados sob demanda, e jogos que utili-

Page 24: TCC DANILO DO NASCIMENTO LIMA

24

zam servidores para o seu processamento enviando somente as imagens já renderi-

zadas para o usuário.

A computação em nuvem já é muito relevante e vai ficar cada vez mais impor-

tante tanto para usuários comuns quanto para empresas e também para o meio am-

biente. No momento, já é difícil de viver o dia a dia do trabalho e lazer sem ela, pois

muitas das vezes, já estamos utilizando-a até mesmo sem nosso conhecimento.

3.5 TECNOLOGIAS UTILIZADAS PELA COMPUTAÇÃO NA NUVEM

Nessa seção, será abordado de maneira sucinta algumas tecnologias que a com-

putação em nuvem pode utilizar como a Virtualização, SOA, Web 2.0 e Multicores.

3.5.1 VIRTUALIZAÇÃO

A virtualização é uma tecnologia de apoio para os diferentes serviços de compu-

tação em nuvem. Ela ajuda a melhorar a escalabilidade e utilização de recursos de

infraestrutura [1]. Ela pode criar uma representação baseada em software, em vez

de um processo físico. Ao extrair dos recursos físicos um grupo de recursos virtuais

como sistemas operacionais, aplicações, servidores, armazenamento e redes, que

podem ser usados pelas máquinas virtuais, reduzindo as despesas de Tecnologia

em Informação e também aumentando a eficiência e a agilidade das máquinas utili-

zadas pelas empresas [8].

Alguns dos benefícios da virtualização é a diminuição de custos, aumento de vida

útil das tecnologias utilizadas e melhor aproveitamento dos recursos da infraestrutu-

ra física. [1]

É importante ressaltar que a computação em nuvem não é sinônimo de virtualiza-

ção. A computação em nuvem é implementada utilizando a virtualização, fornecendo

recursos compartilhados de computação, os quais podem ser tanto de software

Page 25: TCC DANILO DO NASCIMENTO LIMA

25

quanto de hardware, através da Internet a fim de utilizar de forma mais eficiente os

recursos de uma máquina. [1]

3.5.1.1 TIPOS DE VIRTUALIZAÇÃO:

Nesta seção, será abordado os tipos de virtualização que podem ser feitas em má-

quinas virtuais, sendo elas virtualização de aplicação, servidor, memória, armaze-

namento, rede e SO [1][8].

• Virtualização de Servidor – A maioria dos servidores não operam na sua

capacidade máxima e com a virtualização de servidor esse problema pode ser

resolvido, pois ela permite que vários sistemas operacionais sejam executa-

dos em um único servidor físico como máquinas virtuais, cada uma com

acesso aos recursos computacionais do servidor.

• Virtualização de Rede - Na virtualização de rede, é possível realizar a re-

produção de uma rede física utilizando software, em que os aplicativos são

executados na rede virtual como se estivessem em uma rede física. A virtuali-

zação de rede apresenta serviços e dispositivos lógicos do sistema de rede

como: portas lógicas, switches, roteadores, firewalls, VPNs (Virtual Private

Networks) e outros. As redes virtuais podem oferecer os mesmos recursos e

garantias de uma rede física e ainda fornecem os benefícios operacionais e a

independência de hardware da virtualização.

• Virtualização de Armazenamento – Conforme o tempo passa, maior é a

demanda de volume de dados que as empresas necessitam. A virtualização

de armazenamento abstrai os discos e as unidades flash dos servidores,

combinando-os em pools de armazenamento (que é um conjunto de discos no

qual o servidor armazena réplicas e pontos de recuperação.) de alto desem-

penho e fornece-os como software.

• Virtualização de Desktop (SO – Sistema Operacional) – A Implantação da

virtualização de desktop facilita o gerenciamento de diversos SOs perante a

necessidades de mudanças nos computadores que utilizam os sistemas ope-

Page 26: TCC DANILO DO NASCIMENTO LIMA

26

racionais virtuais. Ela ainda pode reduzir os custos da empresa e aumentar a

disponibilidade do serviço permitindo que seus funcionários utilizem máquinas

do tipo thin client e, portanto, de baixo custo e que o investimento de hardwa-

re de alto desempenho seja somente feito no data center.

• Virtualização de Memória - O processo de fornecer uma memória virtual pa-

ra as máquinas virtuais é conhecido como virtualização de memória ou a vir-

tualização de memória principal. Na virtualização de memória principal, a

memória principal física é mapeado para a memória principal virtual. A ideia

principal da virtualização de memória é mapear os números de página virtuais

para os números de página física. A virtualização da memória principal tam-

bém pode ser conseguida usando o software monitor de máquina virtual

(hypervisor).

• Virtualização de Aplicação - A virtualização de aplicativos é a tecnologia que

permite o software ser utilizado como serviço (SaaS) através da computação

em nuvem. Isto é, o usuário pode executar as aplicações sem a necessidade

de instalá-las localmente em suas máquinas. Normalmente, os aplicativos são

desenvolvidos e hospedado no servidor central e os usuários possuem uma

cópia virtual para acessar.

3.5.2 SOA E CLOUD

O Serviço SOA (Service-Oriented Architecture – Serviço orientado a arqui-

tetura, em português) e computação em nuvem são tecnologias distintas. SOA é um

conjunto de regras e padrões de projeto usados por sistemas para desenvolvimento

e integração. Um sistema baseado em SOA proporciona um conjunto de serviços de

baixo acoplamento que podem ser usados pelo consumidor de serviço. Já a compu-

tação em nuvem é um modelo de prestação de serviço que compartilha serviços e

recursos que são consumidos pelos usuários através da Internet. Dessa forma, SOA

também pode ser usado como uma tecnologia para auxiliar a implementação da

computação em nuvem [1].

Page 27: TCC DANILO DO NASCIMENTO LIMA

27

Existem várias tecnologias e padrões usados pelo SOA, que também poderiam

ser utilizados pela computação em nuvem. Um deles é o serviço Web (Web service),

o qual permite que componentes ou serviços funcionais fiquem disponíveis para

serem acessados pela Internet independente das plataformas e da linguagem de

programação utilizada.

A seguir, são descritas algumas vantagens do SOA:

• Reutilização de serviços (Reuse of services): Muitos dos serviços podem

ser reutilizados por aplicações distintas, consequentemente podendo resultar

em custos menores de desenvolvimento e manutenção [1].

• Agilidade (Agility): Este serviço pode agilizar a arquitetura de uma empresa

com a utilização de padrões, tais como serviços Web, auxiliando na reutiliza-

ção dos serviços por diversas aplicações [1].

• Monitoramento (Monitoring): Auxilia no monitoramento do desempenho de

vários serviços a fim de verificar modificações [1].

• Alcance estendido (Extended reach): No caso de colaboração entre empre-

sas ou em compartilhamento de processos, esse serviço possibilita obter o

serviço de vários outros processos para completar uma única tarefa [1].

3.5.3 TECNOLOGIA MULTICORE

Em uma tecnologia multicore, duas ou mais unidades centrais de processamento

trabalham juntas em um mesmo chip (circuito integrado). Nesse tipo de arquitetura,

um único processador físico contém a lógica de núcleo de dois ou mais processado-

res. Esta tecnologia permite que o sistema execute mais tarefas simultâneas ou não

com um maior desempenho geral do sistema. Ela também ajuda na redução do con-

sumo de energia e a alcançar um processamento mais eficiente. A tecnologia multi-

núcleo pode ser utilizada em desktops, computadores móveis, servidores e estações

de trabalho. Por isso, esta tecnologia é usada para acelerar o processamento em um

ambiente de nuvem multitenant, em que o isolamento de múltiplos usuários da nu-

vem deve ser garantido [1].

Page 28: TCC DANILO DO NASCIMENTO LIMA

28

A utilização de processadores multicore é uma tecnologia fundamental para a es-

calabilidade de MV (Máquinas virtuais) em um ambiente de computação em nuvem. Em um sistema multi-núcleo baseado num sistema de nuvem, que permite o uso de

multiplas máquinas virtuais para atingirem o limite do cache, memoria e da banda da

rede, permitem que memória e a CPU virtualizados possam atingir o limite maximo

imposto pela aquitetura. [1]

Além disso, a tecnologia multicore têm possibilitado o paralelismo na nuvem, au-

mentando ainda mais a velocidade e a eficiência do processamento na nuvem. A

questão principal é como essa tecnologia deve ser utilizada nos servidores em nu-

vens para alcançar o paralelismo real em termos de ganho de desempenho em um

ambiente de nuvem multitenant [1].

3.5.4 WEB 2.0

O termo Web 2.0 é dado ao avanço da tecnologia na Internet e aplicações que in-

cluem blogs, wikis, redes sociais e outros. Alguns contribuintes para a Web 2.0 são

os avanços tecnológicos possibilitados pela tecnologia Ajax e outras aplicações, tais

como o Eclipse que permitem a interação do usuário. [1]

Este termo foi utilizado pela primeira vez em outubro de 2004 pela

O'Reilly Media e pela MediaLive Internacional numa conferência sobre conceitos da

Web da próxima geração. Uma das diferenças mais signifcativas entre Web 2.0 e da

tradicional World Wide Web (conhecido como Web 1.0) é que a Web 2.0 facilita o

compartilhamento de informações entre os usuários da Internet, fornecedores de

conteúdo e empresas. Assim, podemos considerá-la como uma migração da Web de

somente leitura (read-only web) para a Web de leitura e escrita (read/write web). Al-

guns dos exemplos de aplicação da Web 2.0 são a Wikipédia, Facebook, e Twitter.

[1]

A ideia da Web 2.0 é tornar o ambiente online mais dinâmico. Sites Web

2.0 como redes sociais permitem aos usuários trocarem conteúdos multimídia de

diversos tipos, assim permitindo tanto a leitura como a escrita do usuário.

Page 29: TCC DANILO DO NASCIMENTO LIMA

29

As tecnologias discutidas na Seção 3.5 são essenciais para a implemen-

tação da computação em nuvem e devido a este modelo de negócio, ela oferece

diversas vantagens como, velocidade de implantação de aplicativos, menor custo de

operação e manutenções de recursos mais facilmente para os clientes [1].

4 MODELOS DE SERVIÇOS DA NUVEM

Neste capítulo, serão apresentados os modelos de serviços IaaS, PaaS, SaaS, entre

outros, suas características, vantagens e desafios.

4.1 INFRAESTRUTURA COMO SERVIÇO IAAS

A Infraestrutura como serviço (IaaS) muda a computação de uma infraestrutura física

para uma infraestrutura virtual. A IaaS fornece: computação, armazenamento e

recursos de rede virtuais vindos de recursos físicos. Todos os recursos virtuais são

dados às maquinas virtuais (MVs) que são configuradas pelo prestador de serviço e

utilizados pelos usuários finais ou arquitetos da Tecnologia de Informação [1].

Um provedor de serviço IaaS pode fornecer os seguintes serviços:

• Compute (Computacional): que inclui unidades centrais de processamentos

(UCPs) virtuais e uma memória principal para máquinas virtuais, que são for-

necidas para os usuários.

• Storage (Armazenamento): fornece armazenamento back-end para as ima-

gens das máquinas virtuais.

• Network (Rede): fornece componentes virtuais da rede, tais como roteador

virtual, switch, e ponte para as máquinas virtuais.

• Load balancers (balanceadores de carga): Load Balancing permite a divi-

são das tarefas e melhor aproveitamento dos recursos computacionais.

Page 30: TCC DANILO DO NASCIMENTO LIMA

30

4.1.1 CARACTERÍSTICAS DO IAAS

Provedores de IaaS disponibilizam recursos de computação virtual para os

clientes e estes pagam somente o que consumiram. A IaaS possui algumas

características da computação em nuvem, como o acesso à rede ampla, conjunto de

recursos, elasticidade e medição de serviço. Além delas, a IaaS tem as suas

próprias características [1]:

• Permite os usuários de TI acessarem recursos da infraestrutura pela internet.

• Os recursos físicos sendo descentralizado ou não, o gerenciamento é a partir

de um único lugar.

• IaaS fornece serviços de elasticidade e dimensionamento dinâmico, em que o

consumo de recursos pode ser aumentado ou reduzido de acordo com os re-

quisitos.

• Permite que vários usuários de TI compartilharem a mesma infraestrutura físi-

ca através do uso de máquinas virtuais.

• Os provedores de IaaS oferecem máquinas virtuais pré-configuradas com os

sistemas operacionais instalados, configurações de rede implementadas, etc.

Além disso, os usuários ainda podem realizar sua própria configuração nes-

sas máquinas.

• Permite aos usuários alugar ao em vez de comprar os recursos de hardware.

Os serviços consumidos pelos usuários são medidos e cobrados pelos forne-

cedores de IaaS com base no consumo.

4.1.2 ADEQUALIBILIDADE DO IAAS

IaaS pode reduzir o custo total de propriedade e aumentar o retorno sobre o

investimento para novas empresas que não podem investir mais na compra de

infraestrutura. Assim, existem tipos de cenários em que a utilização de IaaS é ade-

quado [1]. A seguir, eles são descritos:

Page 31: TCC DANILO DO NASCIMENTO LIMA

31

• Quando a demanda é muito volátil, não podemos prever os picos e baixos em

termos de demanda da infraestrutura. Nesta situação, não podemos adicionar

ou remover infraestrutura imediatamente de acordo com a demanda numa in-

fraestrutura física. Se existe uma procura imprevisível de infraestrutura, então

recomenda-se a utilização de serviços de IaaS.

• Quando novas empresas não podem investir mais na compra de infraestrutu-

ra para as suas necessidades de negócios. Usando a IaaS, essas empresas

podem reduzir o investimento de capital em hardware.

• Algumas organizações podem exigir grande infraestrutura para um curto perí-

odo de tempo. Quando isso acontece, alugar a infraestrutura necessária se

torna uma solução adequada.

Em contrapartida, os momentos em que não são adequados a utilização de IaaS são

[1]:

• Quando a política da empresa não permite que dados e aplicações sejam

hospedados por infraestruturas de terceiros.

• Quando a taxa de uso é mínima e a infraestrutura física é o suficiente para

suprir as necessidades de consumo dos usuários.

• Uma vez que os serviços de IaaS são acessados através da Internet, algumas

vezes, a performance pode ser a não esperada devido a latência da rede.

• Algumas organizações podem exigir controle físico sobre a infraestrutura.

Como os serviços de IaaS são recursos virtuais, não é possível ter controle

sobre a infraestrutura física.

4.1.3 VANTAGENS E DESAFIOS DA IAAS

As vantagens da IaaS são as seguintes [1]: 1. Os serviços de IaaS são fornecidos aos clientes se baseando no modelo pa-

gar conforme a utilização. Isso garante que os clientes paguem apenas por

aquilo que usarem. Este modelo elimina gastos desnecessários na compra de

hardware.

Page 32: TCC DANILO DO NASCIMENTO LIMA

32

2. Quando os fornecedores de IaaS alugam os recursos de computação para os

usuários, eles evitam o investimento na aquisição de uma infraestrutura de

hardware.

3. Com a elasticidade, a IaaS pode fornecer recursos com base nas necessida-

des do cliente, ampliando ou reduzindo os recursos conforme a demanda. Is-

so é feito automaticamente usando alguns balanceadores de carga. Eles

transferem os recursos adicionais requisitados para o novo servidor, melho-

rando a eficiência da aplicação.

4. A IaaS garante uma melhor utilização dos recursos e fornece um alto retorno

para os fornecedores de IaaS.

5. Em infraestruturas físicas tradicionais, os servidores dedicados são usados

para diferentes necessidades de negócios, podendo ter um alto investimento

em hardware. Isto não resulta em uma política de acordo com o movimento

Green IT (Tecnologia de Informação Verde – em português), que tenta levar

ao mundo tecnológico a responsabilidade socioambiental.

Por outro lado, a IaaS possui alguns desafios, os quais são citados a seguir.

1. IaaS não são capazes de garantir 100% de segurança para as máquinas vir-

tuais e os dados salvos nelas, pois a IaaS utiliza a virtualização e, assim, o

monitor de máquina virtual (hypervisors) possui um desempenho fundamental

nessa infraestrutura, sendo este vulnerável a muitos ataques. Caso um

hypervisor seja comprometido, qualquer máquina virtual pode ser atacada fa-

cilmente.

2. Como os fornecedores de IaaS não possuem normas específicas a seguir, é

muito difícil contratar outro fornecedor de IaaS, o que pode acarretar uma for-

te dependência dos clientes em relação aos seus fornecedores.

3. Como IaaS fornece recursos a partir dos servidores da nuvem, a latência po-

de ocasionar problemas de performance nas máquinas virtuais.

Page 33: TCC DANILO DO NASCIMENTO LIMA

33

4.2 PLATAFORMA COMO SERVIÇO PAAS

Além da Plataforma como serviço (PaaS) permitir que os programadores

desenvolvam aplicações online e permitir a distribuição imediata na mesma plata-

forma, ela oferece aos usuários um conjunto de tecnologias que auxiliam no desen-

volvimento de sistemas. Como exemplo, podemos citar os frameworks de aplicati-

vos, bancos de dados, ferramentas de teste, entre outros serviços conforme [1]. Isso

reduz a necessidade de compra e manutenção de ferramentas para o desenvolvi-

mento de uma aplicação, sendo interessante para economizar no custo de software

para desenvolvimento. Alguns dos fornecedores de PaaS, como o Microsoft Azure,

também oferecem ferramentas de construção, ferramentas de implantação e balan-

ceadores de carga de software como um serviço. Algumas dessas ferramentas são

citadas a seguir:

1. Linguagens de programação para os desenvolvedores de aplicações, como

Java, PHP, Python, entre outras. Frameworks de aplicação a fim de agilizar o

desenvolvimento de softwares, por exemplo, Spring, WordPress e Rack.

2. Sistemas de gerenciador de banco de dados, como o PostgreSQL e MySQL.

4.2.1 CARACTERÍSTICAS DO PAAS

Apesar das plataformas PaaS oferecerem serviços a fim de facilitar a vida do

programador como as tradicionais plataformas de desenvolvimento, elas possuem

características que as diferem das tradicionais. Tais características as tornam bem

interessante para os consumidores. Como apresentado em [1], essas cracterísticas

são as seguintes:

1) Como citado na secção 4.2, boa parte dos fornecedores PaaS oferece servi-

ços para desenvolver, testar, implantar, hospedar e manter aplicações no

Page 34: TCC DANILO DO NASCIMENTO LIMA

34

mesmo IDE. Além desses serviços, eles oferecem linguagens de programa-

ção, enquadramentos, bancos de dados e outros serviços de desenvolvimen-

to que permitem os desenvolvedores escolherem entre várias plataformas de

desenvolvimento. Isso não só diminui a carga de trabalho para os desenvol-

vedores como também diminui os custos para as empresas, pois elas não

precisam se preocupar em comprar uma versão do software para cada com-

putador da empresa para o programador desenvolver, implementar, modificar

e testar suas aplicações. Como o acesso à plataforma de desenvolvimento é

através da Web, o desenvolvedor pode acessá-la utilizando uma interface de

usuário Web.

2) Nem sempre o programador pode acessar a Internet, nesses casos o PaaS o

permite que trabalhe mesmo sem a conexão à Internet. Alguns dos fornece-

dores de tecnologia PaaS permitem o desenvolvimento off-line deixando o

desenvolvedor sincronizar seu código local com o remoto presente na plata-

forma PaaS. Assim os programadores podem desenvolver sua aplicação lo-

calmente e enviá-las para o servidor quando estiverem conectados à Internet.

3) Escalabilidade é um requisito importante para serviços baseados em PaaS.

Microsoft Azure assim como muitas outras plataformas fornecem escalabili-

dade integrada a um aplicativo, garantindo que o sistema possa lidar com di-

ferentes demandas eficientemente.

4) Desenvolver aplicações em grupo quando os integrantes do mesmo estão em

diferentes lugares é algo muito importante. A tecnologia PaaS permite a cola-

boração entre os desenvolvedores oferecendo ferramentas para o planeja-

mento e comunicação dos membros do projeto.

5) Os programadores conseguem desenvolver mais facilmente utilizando o

PaaS, pois os fornecedores PaaS oferecem ferramentas com interfaces gráfi-

cas que auxiliam no desenvolvimento das aplicações, como as IDEs para

PHP, ruby, .NET, etc.

Page 35: TCC DANILO DO NASCIMENTO LIMA

35

4.2.2 ADEQUALIBILIDADE DO PAAS

A tecnologia PaaS é muito utilizada para o desenvolvimento de aplicações por

diversas empresas, inclusive pelas mais tradicionais no desenvolvimento de software

[1]. Isso tem acontecido por causa de suas adequalibilidades citadas a seguir:

• PasS oferece ambientes de desenvolvimento colaborativo, em que os pro-

gramadores podem alterar diferentes partes do código e verificar as altera-

ções realizadas por outros.

• Empresas, como Microsoft Azure e Google App Engine que, que fornecem a

tecnologia PaaS disponibilizam aos programadores ferramentas para testes e

construção automatizada de uma aplicação, permitindo que os programado-

res se dediquem mais ao desenvolvimento em si do que em testes e implan-

tação.

• A tecnologia PaaS permite que sejam feitas atualizações das ferramentas ofe-

recidas sem a necessidade de alterar as máquinas dos usuários finais. Um

exemplo disso é a plataforma para desenvolvimento de páginas Web denomi-

nada WordPress, em que atualizações e novos plug-ins podem ser incorpora-

das à ferramenta sem que o desenvolvedor precise realizar modificações em

sua máquina.

Apesar das vantagens da PaaS descritas anteriormente, ela não é adequada em

determinadas situações, conforme enunciado em [1]. Um desses cenários ocorre

quando uma empresa decide alterar de fornecedor de PaaS e essas plataformas

não seguem o mesmo padrão de tecnologias, tornando a migração de sistemas em

uma tarefa não trivial. Por exemplo, quando uma empresa que utiliza uma determi-

nada tecnologia, como o WordPress para desenvolver suas páginas Web, decide

migrar para outro fornecedor de PaaS que não oferece essa ferramenta, ela deverá

utilizar outras tecnologias oferecidas para implementar suas páginas Web, o que

exigirá maior investimento da empresa para realizar a migração. Outra situação em

que o serviço de PaaS apresenta limitação ocorre, pois a PaaS não permite o con-

trole sobre a infraestrutura física dificultando o desenvolvimento de aplicações que

precisam desse controle, tornando a tecnologia PaaS não recomendada nesses ca-

Page 36: TCC DANILO DO NASCIMENTO LIMA

36

sos. Outro problema está no fato de que empresas que fornecem a tecnologia PaaS,

como a Microsoft Azure, usam suas próprias tecnologias que definem seu conjunto

de aplicativos, que podem não coincidir com as aplicações instaladas localmente,

ocasionando erros ou conflitos com softwares em desenvolvimento ou desenvolvidos

pelos programadores. Assim, nesse caso o PaaS não é recomendado, pois ele po-

deria ocasionar atrasos no desenvolvimento do software e consequentemente fazer

a empresa ter prejuízos.

4.2.3 VANTAGENS E DESAFIOS DA PAAS

Quando se utiliza os serviços de empresas que fornecem serviços PaaS

como a Google app engine, a infraestrutura utilizada fica transparente para os usuá-

rios. As empresas prestadoras do serviço disponibilizam para os desenvolvedores

ferramentas que possibilitam acelerar o processo de desenvolvimento, teste e im-

plantação de softwares, aumentando o foco do programador no desenvolvimento do

sistema. Abaixo, seguem mais algumas vantagens de PaaS [1]:

• Ela oferece metodologias ágeis de implementação de software, as quais são

requisitadas por empresas de software.

• Os desenvolvedores podem trabalhar em diferentes locais, pios as ferramen-

tas são oferecidas online, além de possibilitar o trabalho em conjunto. Isto

possibilita aumento na produtividade das empresas, o que torna essa vanta-

gem bastante interessante.

• Disponibilização de ferramentas para o cliente, como interface de usuário

web, APIs, IDEs, etc.

• Transferência do custo de manutenção da infraestrutura utilizada pelas em-

presas, para serviços da PaaS oferecidos pelos fornecedores.

Apesar do serviço PaaS apresentar as vantagens discutidas anteriormente, ele

possui algumas desvantagens [1], que são descritas a seguir:

Page 37: TCC DANILO DO NASCIMENTO LIMA

37

• Devido à falta de padronização nos serviços PaaS, seus usuários ficam

dependentes das tecnologias oferecidas pela plataforma, dificultando mi-

grações de sistema futuras. Por exemplo, uma empresa de desenvolvi-

mento que decida mudar do Google App Engine para Microsoft Azure ou

vice-versa, teria um esforço nesta migração, pois as tecnologias usadas

por eles, mesmo que façam funções parecidas, são diferentes. Assim, mi-

grar de fornecedor PaaS pode trazer prejuízo a empresas de desenvolvi-

mento.

• Apesar das fornecedoras da PaaS oferecerem serviços de segurança Co-

mo a Google App Engine com o Security Scanner, a segurança ainda é

problema em serviços de PaaS como nos outros serviços em nuvem.

• Falta de liberdade em definir as ferramentas que desejam utilizar numa

plataforma PaaS. Como exemplo, podemos citar o caso em que um pro-

gramador que desenvolve no Delphi Xe8 ou Lazarus deseja usar o serviço

PaaS da Google App Engine. Dessa forma, o desenvolvedor teria que re-

fazer todo o código, pois essa plataforma oferece apenas linguagens como

Python, Java, PHP e Go.

• Visto que muitas empresas de PaaS não oferecem acesso offline, progra-

madores devem possuir constantemente conexão à Internet, o que pode

não ser adequado nos cenários em que o usuário da plataforma não pos-

sui acesso à Internet ou possui acesso limitado.

4.3 SOFTWARE COMO SERVIÇO SAAS

A computação em nuvem oferece vários softwares como serviço e um exemplo

muito popular entre os usuários é o armazenamento em nuvem. Através deste servi-

ço é possível salvar fotos pessoais, músicas e filmes favoritos, acessar os arquivos

de qualquer lugar utilizando um computador com acesso à Internet e compartilhá-los

com outros usuários pela plataforma em nuvem. Como exemplos de plataformas em

nuvem que oferecem esse tipo de serviço podem ser citados o Google Drive,

OneDrive da Microsoft, Amazon iCloud Drive e o Dropbox.

Page 38: TCC DANILO DO NASCIMENTO LIMA

38

Diferente do modelo tradicional de software, em que as empresas compram um

conjunto de licenças de software para as várias aplicações que elas utilizam para

distribuírem nos seus setores de recursos humanos ou finanças, por exemplo, no

modelo SaaS, em vez de comprar licenças para desktops e servidores para as apli-

cações, a empresa pode obter as mesmas funções utilizando os serviços em nuvem

de um provedor através da Internet. O serviço SaaS pode ser acessado a partir de

qualquer navegador web em quaisquer dispositivos como laptops, tablets e smar-

tphones ou até mesmo a partir de um thin client, que apesar de suas limitações em

relação a computadores tradicionais, traz benefícios importantes como: menos vul-

nerabilidades a ataques, tem um ciclo de vida mais longo e é mais barato [1]. Assim,

eliminando a necessidade instalação, manutenção e atualização de softwares para a

equipe de TI dentro da empresa. Os serviços básicos oferecidos pelos fornecedores

SaaS, conforme em [1], são citados a seguir:

1. Redes sociais (Social networks): Até mesmo empresas como Facebook e Twitter tem grandes vantagens em utilizar a tecnologia SaaS para a sua sus-tentabilidade;

2. Gerenciamento de documentos (Document management): Devido ao grande crescimento do uso de documentos eletrônicos e da necessidade de disponibilizá-los de forma fácil e rápida, existem diversos fornecedores SaaS que oferecem a edição online de documentos de texto, planilhas e apresenta-ções, como os serviços oferecidos pelo Google Documentos, Planilhas e Apresentações. Além de poder compartilhar esses documentos com outros usuários do serviço.

3. Serviço empresariais (Business services): Os serviços Empresarias do SaaS incluem Planejamento dos Recursos da Empresa, Gestão do Relacio-namento com o Cliente, faturamento, vendas e recursos humanos. Um exem-plo desse serviço é o tuOtempO da Amazon Web Services (AWS), que é o primeiro CRM para Saúde que oferece recursos como Campanha de informa-ção, serviço de agendamento online, pagamento e consultas online, comuni-cação interativa com pacientes, resultados de exames online, pesquisa de sa-tisfação do paciente e agenda médica online.

4. Serviços de e-mail (Mail services): como os serviços de e-mail passam por desafios bem parecidos com as redes socias, eles também são oferecidos através da nuvem com SaaS.

Page 39: TCC DANILO DO NASCIMENTO LIMA

39

4.3.1 CARACTERÍSTICAS DO SAAS

Abaixo estão as características, conforme apresentado em [1], que diferenciam

o serviço SaaS dos modelos de sotware tradicionais:

• SaaS permite compartilhar um único software com vários usuários, sem a ne-

cessidade de instalação em cada máquina de usuário.

• Possibilita acessar a aplicação em qualquer lugar e utilizando múltiplos dispo-

sitivos conectado à Internet.

• As atualizações dos softwares ficam disponíveis a todos os usuários simulta-

neamente, visto que o gerenciamento das aplicações é realizado de forma

centralizada. Isto também garante que todos os usuários terão acesso às

mesmas versões de software.

• Oferece maior escalabilidade aos softwares, pois geralmente os serviços

SaaS também fazem uso da nuvem através dos serviços de PaaS e IaaS.

• Serviços de backup e recuperação são oferecidos pelo SaaS.

• SaaS permite integrar softwares ou serviço através de APIs padrões.

4.3.2 ADEQUALIBILIDADE DO SAAS

A utilização das aplicações do SaaS são mais adequadas nas seguintes

situações, conforme dsicutido em [1]:

• Quando o usuário não deseja comprar um conjunto de licença de software e

está à procura de um software que o pagamento é sob demanda, então o

modelo do SaaS é uma ótima opção. Além de baratear a aquisição do softwa-

re, o usuário não precisa comprar um conjunto de licença de software para

poder instalar nos desktops, eliminando também a necessidade de manuten-

ção e atualização de softwares em diversas máquinas.

• Como não existe requisitos mínimos de infraestrutura de hardware para as

aplicações SaaS, diferentemente das aplicações tradicionais, então o modelo

Page 40: TCC DANILO DO NASCIMENTO LIMA

40

SaaS é uma boa opção para empresas que querem economizar com infraes-

trutura física. Assim, não há necessidade de se preocupar com a infraestrutu-

ra física, podendo acessar o software de qualquer computador conectado à

Internet ou até mesmo a partir de um thin client.

• Como não dá para prever o número de usuários em aplicações populares

como redes sociais e e-mails, por exemplo, o Facebook e Outlook respecti-

vamente, a utilização dos recursos de escalabilidade dinâmica das aplicações

SaaS é bastante adequada a estes cenários.

Apesar de alguns fornecedores de software tradicionais migrarem para o mo-

delo SaaS por suas vantagens, que serão citadas na Seção 4.3.3, muitas aplica-

ções ainda não possuem suas versões para SaaS. A seguir, estão alguns cená-

rios em que a utilização do SaaS não é adequada:

• Como as aplicações SaaS dependem da conectividade com a Internet, como

o Facebook e o Outlook, utilizar aplicações SaaS tendo uma conexão à Inter-

net limitada ou de baixa velocidade pode não ser uma boa opção.

• Segurança de dados e controle de dados são sempre problemas com aplicati-

vos SaaS. Como os dados são armazenados em servidores de terceiros, não

há nenhuma garantia de que esses dados estarão seguros.

• Se a empresa possui uma aplicação instalada localmente que cumpre todas

as exigências da organização, não há necessidade de migração para o mode-

lo SaaS, evitando a perda de controle total sobre a ferramenta local.

4.3.3 VANTAGENS E DESAFIOS DA SAAS

Por causa dos benefícios de SaaS em relação a custos, novas empresas estão

fazendo uso deste serviço para diminuir gastos com softwares. Além disso, a SaaS

possui diversas outras vantagens como listados a seguir, conforme discutidas em

[1].

Page 41: TCC DANILO DO NASCIMENTO LIMA

41

• Os clientes não precisam instalar o software em seus dispositivos, pois eles

podem acessar diretamente dos provedores de serviços SaaS usando qual-

quer dispositivo conectados à Internet.

• Como os serviços de SaaS são cobrados aos usuários conforme eles utilizam

os serviços, a maioria dos fornecedores do SaaS oferecem planos de assina-

tura que beneficia diferentes perfis de clientes, de forma a possibilitar uma

diminuição do custo com software.

• SaaS realizam as atualizações das aplicações, o monitoramento e outras ati-

vidades de manutenção, o que diminui o custo da manutenção.

• A elasticidade dos serviços de SaaS em oferecer hardware adicional confor-

me a demanda é uma característica bem forte da SaaS, pois isso permite que

um software continue funcionando normalmente com seu aumento de carga

de uso.

• SaaS oferece mecanismos de backup e recuperação, através de réplicas dos

serviços SaaS distribuídos em vários servidores.

• SaaS permite que usuários compartilhem uma instância de software, aumen-

tando a utilização de recursos pelos provedores.

Embora o serviço SaaS apresente as vantagens descritas acima, ele possui

alguns desafios conforme discutidos em [1]. A seguir, eles são apresentados:

• Como a aplicação SaaS é compartilhada entre muitos usuários, pode ha-

ver vazamento de dados. Já que no SaaS os dados são armazenados no

centro de dados de um fornecedor de serviços, ou seja, são armazenados

numa empresa terceirizada e não na própria empresa que contrata o ser-

viço, isso torna imprescindível que o usuário deva ter cuidado ao selecio-

nar o provedor de SaaS para evitar a perda de dados.

• A dependência de conexão à Internet de alta velocidade em determinados

casos é um grande problema em aplicações SaaS, pois o acesso à Inter-

net do usuário pode ser muito lenta, impedindo de conseguir acessar os

serviços de maneira ideal.

Page 42: TCC DANILO DO NASCIMENTO LIMA

42

• Como os dados são armazenados por terceiros sem uma instalação local,

a empresa contrata um serviço em que ela não possui qualquer controle

sobre os dados ou infraestrutura física onde eles estão. O que torna o grau

de controle sobre as aplicações SaaS e de seus dados bem menor com-

parado a aplicações instaladas localmente.

4.4 OUTROS MODELOS DE SERVIÇOS

Nesta seção, será abordado brevemente outros modelos de serviços como Data as

a Service (DaaS), Communication as a Service (CaaS), Everything as a Service

(XaaS) também conhecido como EaaS e o Database as a Service (DBaaS) 1] [9]

[10].

• Dados como serviço (DAAS): O Serviço DaaS fornece dados sob demanda para os usuários finais, como:

textos, musicas, videos e imagens. É importante lembrar que o DaaS e o Banco de

Dados como Serviço (DBaaS) são serviços totalmentes diferentes, pois o foco do

modelo de Dados como Serviço está no conjunto de dados, de forma que apenas a

leitura dos dados é permitida. O DaaS está intimamente relacionado com outros mo-

delos de serviço como o SaaS, detalhado na Seção 4.3, facilitando sua integração

com ele. O Serviço DaaS é bastante utilizado em serviços de dados de geografia e

serviços de dados financeiros. Suas vantagens incluem agilidade, eficiência com os

custos e qualidade dos dados. [1]

• Comunicação como serviço (CAAS): O serviço CaaS fornece serviços relacionado à rede, como monitoramento da

rede, segurança de redes, largura de banda dedicada e encriptação de

comunicação, que pode permitir mensagens instantâneas e vídeos de conferência

por exemplo [9].

• Tudo como serviço (XAAS): Quando os Serviços SaaS, IaaS, PaaS são combinados podendo conter outros

modelos de serviços ou não, tem-se Tudo como serviço (XaaS ou EaaS) [10]. Como

Page 43: TCC DANILO DO NASCIMENTO LIMA

43

os modelos de serviços podem depender um do outro não é difícil de encontrar

empresas que utilizam mais de um modelo, um bom exemplo disso é quando as

aplicações SaaS utilizam o modelo de armazenamento IaaS, ou quando o as

plataformas PaaS utiliam os banco de dados do DBaaS.

• Banco de dados como serviço (DBAAS): DBaaS é um serviço que permite aos usuários finais a acessar o serviço de

banco de dados como Oracle, DynamoDB, MongoDB, sem a necessidade de instalá-

los ou mantê-los. O prestador de serviços é responsável pela instalação e

manutenção da bases de dados. Os usuários podem acessar diretamente os

serviços ou quaisquer API ou interface web, além de ser possível pagar de acordo

com o uso. [1]

Page 44: TCC DANILO DO NASCIMENTO LIMA

44

5 MODELOS DE IMPLEMENTAÇÃO EXISTENTE

Neste capítulo, serão abordados os quatro modelos de implementação existentes na

computação em nuvem, que atendem diferentes requisitos. Esses modelos são co-

nhecidos como: nuvem privada, pública, comunitária e híbrida [1].

5.1 NUVEM PRIVADA

A nuvem privada possui um tamanho menor comparada com os outros mode-

los, pois a infraestrutura dela é usada apenas por uma organização. Ela normalmen-

te é gerenciada pela própria organização, porém pode ser oferecida por terceiros.

Assim, o modelo pode ser implementado utilizando a própria infraestrutura da orga-

nização ou da prestadora do serviço. Diante dessa característica, a nuvem privada é

interessante quando a segurança dos dados é uma preocupação da organização

que utiliza o serviço de nuvem.

Este modelo de nuvem é mais seguro quando é implementada e gerenciada

pela própria empresa que a utiliza, visto que esse cenário dificulta o vazamento de

dados. Além disso, a empresa possui total controle sobre a nuvem e sua infraestru-

tura. Outra vantagem desse modelo está no fato de que ela possui um tamanho me-

nor comparado aos outros modelos, o que facilita o gerenciamento da nuvem.

Por outro lado, o modelo de nuvem privada possui algumas desvantagens.

Uma delas está no alto custo que o modelo pode trazer, visto que a própria organi-

zação necessita investir na infraestrutura e gerenciamento. Mesmo nos casos de

terceirização do serviço, este modelo pode custar mais caro por ser um serviço dedi-

cado e privado. Outro problema existente, devido à implementação pela própria or-

ganização usuária da nuvem, é na adaptação da infraestrutura caso a demanda pelo

serviço de nuvem aumente. Além disso, a organização precisa investir em mão de

obra qualificada para implementar o modelo de nuvem privado.

Page 45: TCC DANILO DO NASCIMENTO LIMA

45

5.2 NUVEM PÚBLICA

Na nuvem pública, a infraestrutura de hardware e software pode ser acessada

por qualquer usuário. Os serviços oferecidos por ela não são necessariamente gra-

tuitos, podendo ser necessário que o usuário pague conforme utiliza o serviço, como

é o caso do Microsoft Azure [1].

A alta escalabilidade é algo presente na nuvem pública, pois as empresas que

disponibilizam esse modelo, como o Amazon Web Services (AWS), garantem gran-

de quantidade de recursos para os clientes. Para usufruir desse serviço, tanto gran-

des empresas quanto usuários comuns pagam o que consomem sem a necessidade

de pagar o custo de implementação. Visto que a nuvem pública é oferecida por em-

presas de terceiros, em que diversos usuários compartilham a mesma infraestrutura,

esse tipo de modelo de nuvem possui um menor nível de segurança quando compa-

rado com os outros modelos, principalmente com a nuvem privada [1].

Nesse modelo, qualquer usuário pode acessar os serviços da nuvem pública

de qualquer lugar e horário desde que tenha acesso à Internet diferentemente dos

outros modelos, em que podem existir restrições de acesso. A nuvem pública permi-

te que a empresa contratante não precise se responsabilizar pela infraestrutura, o

gerenciamento, manutenção e escalabilidade da nuvem, pois a empresa contratada

realiza esses tipos de tarefa, como ocorre na nuvem oferecida pela Microsoft Azure.

Além disso, quando comparada com a outros modelos de nuvens, a nuvem pública é

a mais barata, pois a empresa contratante só precisa se preocupar em alugar os

serviços.

5.3 NUVEM COMUNITÁRIA

Na nuvem comunitária, é possível que um conjunto de organizações utilizem a

mesma nuvem, a qual pode ser administrada por uma ou mais organizações desse

conjunto. A infraestrutura dessa nuvem é compartilhada por diversas empresas que

possui interesses comuns [1].

Page 46: TCC DANILO DO NASCIMENTO LIMA

46

O interessante desse modelo de nuvem é que as empresas podem comparti-

lhar tanto os recursos da nuvem quanto os custos e responsabilidades. Mesmo que

o modelo de nuvem comunitária possa ser gerenciado por apenas uma das empre-

sas, é mais lucrativo que todas as organizações trabalhem em conjunto para realizar

o gerenciamento, implantação e manutenção da nuvem, pois com a colaboração

entre as empresas, o custo desse modelo se torna mais barato. Esse modelo de nu-

vem possui um tamanho maior de oferta de recursos que do modelo de nuvem pri-

vada e mais seguro que o modelo de nuvem pública.

Por outro lado, o modelo de nuvem comunitária é menos seguro que o modelo

privado, pois podem existir o vazamento de informações durante a troca de dados

entre as organizações. Além disso, o modelo de nuvem comunitária é bem menos

escalável do que o modelo público e, como é necessário um consenso entre as em-

presas participantes do modelo, a autonomia de cada empresa é minimizada, por

exemplo para o gerenciamento da nuvem.

5.4 NUVEM HÍBRIDA

Na nuvem híbrida, dois ou mais modelos de nuvem são utilizados simultanea-

mente, podendo ser o modelo de nuvem privada, pública ou comunitária, ligados por

uma tecnologia padronizada. Geralmente, são combinados os modelos de nuvem

privado com o público na tentativa de combinar a vantagem de ambos [1].

Com a combinação desses dois modelos de nuvem é possível obter a escalabi-

lidade da nuvem pública e o controle e segurança oferecidos pela nuvem privada.

Além disso, empresas poderiam diminuir o custo fazendo uso também do modelo de

nuvem comunitária.

Entretanto, a implantação, manutenção e gerenciamento da nuvem híbrida se

torna mais difícil e complexa, pois a empresa passa a administrar dois ou mais mo-

delo de nuvens diferentes. Além disso, a empresa necessita realizar a contratação

de funcionários especializados em ambos os modelos, podendo aumentar o custo de

implantação desse tipo de modelo de nuvem. Ademais, o modelo possui um alto ní-

vel de SLA (Service Level Agreement) [1].

Page 47: TCC DANILO DO NASCIMENTO LIMA

47

6 DESAFIOS E O FUTURO DA COMPUTAÇÃO EM NUVEM

Apesar das inúmeras vantagens que a computação em nuvem oferece, ela possui

desafios como segurança, disponibilidade, controle dos recursos e interoperabilida-

de, os quais serão discutidos nas seções seguintes. Além disso, esse capítulo abor-

da o futuro da computação em nuvem.

6.1 SEGURANÇA

Nos capítulos 4 e 5, a segurança da informação foi constantemente citada co-

mo um desafio na computação em nuvem. Isso se deve ao fato de que os dados das

aplicações em nuvem podem ser acessados de diversos lugares e dispositivos em

qualquer momento tendo uma conexão com a Internet. Todos os provedores têm

suas próprias políticas para proteger os dados do cliente, mas eles devem oferecer

alguns requisitos básicos de segurança: autenticidade, confidencialidade e integrida-

de. Quando os dados dos serviços em nuvem são críticos, os provedores devem

fornecer recursos confiáveis. Além disso, deve existir um controle de responsabilida-

de e acesso entre o provedor e o usuário, não permitindo a consulta de usuários

sem permissão a informações presentes nos serviços em nuvem [7].

Existem diversas formas de proteger os serviços oferecidos pela nuvem como

autenticação, criptografia, controle de acesso e autorização. Vale ressaltar que a

criptografia pode ser custosa em consultas em banco de dados. Dessa forma, outras

abordagens devem ser analisadas para garantir a privacidade dos dados [1].

6.2 DISPONIBILIDADE

Em computação em nuvem, a disponibilidade é um grande desafio, pois ela

depende tanto se o usuário possui conexão com a Internet quanto da qualidade des-

Page 48: TCC DANILO DO NASCIMENTO LIMA

48

se acesso. Além disso, os fornecedores devem prover alta disponibilidade dos servi-

ços, utilizando de técnicas de balanceamento de carga dinâmica, que são maneiras

eficientes de realizar a divisão de tarefas aproveitando os recursos computacionais

disponíveis através de técnicas como o Elastic Load Balancer, que distribui automa-

ticamente o tráfego de entrada das aplicações, Quantum Network Load Balancing,

que divide a carga de processos entre os nós e o Citrix NetScaler, que dividi as tare-

fas entre os nós [11]. Existe também a técnica de replicação dos serviços em nuvens

distintas, ela permite que os serviços estejam disponíveis em outra nuvem, podendo

atender às requisições do usuário, quando uma das nuvens apresente falhas impe-

dindo o acesso aos seus serviços [7].

6.3 CONTROLE DOS RECURSOS

Os recursos oferecidos pelos fornecedores da nuvem, por exemplo, armaze-

namento, processamento, memória, largura de banda de rede e máquinas virtuais,

são utilizados pelos usuários de forma transparente. Isto é, os usuários não possu-

em conhecimento sobre a infraestrutura implementada para suportar os serviços ofe-

recidos. Devido a isto, eles também não possuem qualquer controle sobre o hardwa-

re e software que compõem essa infraestrutura.

Muitas empresas preferem utilizar o modelo de nuvens privadas a fim de ter

uma maior segurança e controle sobre a nuvem e sua infraestrutura. Entretanto, o

modelo privado é extremamente custoso comparada aos outros modelos, principal-

mente, devido aos recursos necessários para sua implementação. Uma maneira de

contornar esse problema é oferecer segurança no modelo de nuvem pública através

de autenticação, criptografia, controle de acesso e autorização como mencionado na

Seção 6.1.

Page 49: TCC DANILO DO NASCIMENTO LIMA

49

6.4 INTEROPERABILIDADE

A interoperabilidade é um grande desafio enfrentado pelos serviços da compu-

tação em nuvem, visto que seus diversos fornecedores utilizam diferentes tecnologi-

as nos modelos de implementação da computação em nuvem, o que dificulta de

forma significativa a migração de seus clientes para outros fornecedores. Por exem-

plo, quando um cliente contrata o serviço da computação em nuvem da Google App

e decide migrar para os serviços oferecidos pela Microsoft Azure, ele pode gerar

uma grande carga de retrabalho a fim de adaptar todos os dados e sistemas para a

plataforma da Microsoft, os quais estavam implementados com as ferramentas e

tecnologias próprias da Google App [1].

O conceito da interoperabilidade refere-se em possibilitar de forma mais sim-

ples a migração de consumidores entre os diferentes fornecedores de serviços na

nuvem. A falta de padrões nos modelos de implementação dos serviços de nuvem

acaba tornando essa migração em uma tarefa não trivial e indo contra a interoperabi-

lidade necessária nos serviços de nuvem. Este cenário é agravado pelo fato de que

os fornecedores não têm interesse em facilitar a migração de clientes para que estes

possam ficar cada vez mais dependentes de suas ferramentas e tecnologias [1].

O XML e a utilização de APIs podem auxiliar na resolução do problema de inte-

roperabilidade [7], mas para tentar resolvê-los, primeiro deve-se solucionar os pro-

blemas de portabilidade, pois ambos, interoperabilidade e portabilidade, andam de

mãos dadas.

O maior problema para se alcançar a interoperabilidade é a falta de padroniza-

ção para os serviços PaaS, IaaS e SaaS. Devido aos termos de licenciamento de

software, isso não beneficiaria o modelo SaaS e nem o PaaS, mas por outro lado, a

padronização beneficiaria o IaaS tanto na carga de trabalho quanto em seus recur-

sos de máquinas virtuais e discos de armazenamento oferecidos [1].

Page 50: TCC DANILO DO NASCIMENTO LIMA

50

6.5 FUTURO DA COMPUTAÇÃO NAS NUVENS

A Computação em Nuvem já faz parte de diversas tarefas do nosso cotidiano de

maneira quase imperceptível. A partir do cenário atual, a tendência é que os forne-

cedores de serviços em nuvem consigam resolver os desafios de segurança, dispo-

nibilidade e interoperabilidade, aumentando a confiança dos possíveis clientes em

relação à computação em nuvem e consequentemente aumentando o números de

usuários.

Serviços de computação em nuvens como Netflix, Crunchyroll, serão cada vez

mais utilizados, podendo alterar o modo como os meios de comunicação tradicionais

oferecem seus conteúdos.

No cenário dos jogos digitais, a computação em nuvem também é presente, ofe-

recendo jogos disponíveis na nuvem para diversas plataformas em substituição aos

meios físicos de armazenamento (ex.: CDs, DVDs e Blu-ray). Como exemplos deste

tipo de plataforma, podemos citar o Steam e PSN, que oferecem vários títulos de

jogos para baixar diretamente da nuvem para a plataforma sem a necessidade de

adquirir uma mídia física reduzindo o custo dos jogos.

Resumindo, o número de usuários da computação em nuvem vai aumentar cada

vez mais e futuramente ela poderá afetar nossas vidas, tanto no lazer como no tra-

balho, nos permitindo fazer ambos em qualquer lugar em qualquer dispositivo.

A computação em nuvem também ajudará muito mais nos estudos e formação

de bons profissionais. Pois muitas empresas estão apostando no modo de ensino a

distância de qualidade com auxílio da computação em nuvem, que podem ser gratui-

tos ou pagos, ex: Curso Em vídeo, My English Online, Cederj, DevMedia entre ou-

tros.

Grandes empresas de tecnologia apontam diversos desafios que devem ser tra-

tados no futuro da computação em nuvem [15, 16]. Eles se referem à segurança,

interoperabilidade, habilidade de transacionar e migrar dados entre nuvens privadas

e públicas de modo mais rápido, eficiente e inteligente. O Google acredita que a In-

teligência Artificial permitirá integração mais simples entre ambientes públicos e pri-

vados da nuvem e que vale à pena investir nessas áreas. Já a Open Data Center

Page 51: TCC DANILO DO NASCIMENTO LIMA

51

Alliance [15] acredita que no futuro eles consigam identificar na nuvem o tipo de

computador que está acessando os serviços a fim de adaptá-los a estes dispositivos.

Page 52: TCC DANILO DO NASCIMENTO LIMA

52

7 PROVEDORES DE SERVIÇOS DE NUVEM

Neste capítulo, são abordados alguns provedores de serviços de nuvem como o Go-

ogle, Microsoft e IBM. Além disso, ferramentas oferecidas por estes provedores são

apresentadas.

7.1 GOOGLE

O Google é um dos maiores fornecedores de nuvem no momento, pois além de

fornecer serviços gratuitos ou com preços acessíveis por diferentes perfis de usuá-

rios, de forma segura, confiável e fácil de usar. Alguns dos seus serviços oferecidos

são plataforma em nuvem, Google App Engine, armazenamento de dados e muitos

outros recursos. A seguir, são discutidas alguns dos serviços fornecidos pelo serviço

de nuvem Google [1]:

• Armazenamento: O Google Cloud Storage une tanto a escalabilidade quanto

o bom desempenho da nuvem. Esse serviço on-line simplesmente oferece

armazenamento de arquivos para guardar e acessar dados na infraestrutura

do Google de modo seguro e estável [1].

• Plataforma em nuvem: Nesse serviço, o Google oferece plataformas como

serviço, auxiliando programadores a desenvolver, testar e implementar suas

aplicações através de sua infraestrutura escalável e confiável. Por exemplo, o

Google App Engine suporta várias linguagens de programação como Java,

Python e PHP, e ainda possibilita a execução de aplicações Web na infraes-

trutura do Google. As aplicações do App Engine são simples de construir,

manter e escalonar, conforme a demanda de processamento e armazena-

mento [1]. Apesar do App Engine ser um dos serviços mais conhecido do Go-

ogle, ele possui muitos outros como Container engine, que são clusters pode-

rosos que gerenciam e orquestram a execução do seus Docker Containers.

Page 53: TCC DANILO DO NASCIMENTO LIMA

53

Cloud Storage é um outro serviço oferecido pela Google que permite o arma-

zenamento de objetos unificado para programadores e empresas, servindo

para análise até arquivamento de dados. O Cloud Datastore é um banco de

dados NoSQL altamente escalável para seus aplicativos, Cloud Virtual Nert-

work é um conjunto de recursos de rede gerenciados pela Google, incluindo

seleção granular de intervalo de endereços IP, rotas, firewalls e rede privada

virtual, entre muitos outros serviços oferecidos [14]. Nesses modelos de servi-

ço, o usuário são cobrados apenas do que de fato é utilizado por ele.

A plataforma em nuvem pode também oferecer máquinas virtuais flexíveis

que permitem ao usuário personalizar a configuração das máquinas, como

capacidade de armazenamento e processamento, de acordo com suas ne-

cessidades. Além disso, o modelo PaaS do Google fornece fácil integração do

aplicativo criado pelo programador dentro da plataforma de nuvem, pagando

apenas quando o serviço for utilizado[1].

• Google Cloud Connect: depois que um arquivo texto ou de planilha é envia-

do para a nuvem da Google ele se torna um documento principal que pode

ser acessado e alterado por todos que tenha acesso a aquela nuvem, e se um

dos usuários fizer alguma alteração documento online, todos os outros pode-

rão vê-la. Se os documentos estiverem sincronizados com o Google Cloud

Connect ele envia os dados atualizados para todas as cópias baixadas do do-

cumento usando os metadados que são inseridos ao enviar o arquivo. [1]

• Google Cloud Print: Esses serviço permite que qualquer pessoa que possua

um conta gratuita do Google, possa utilizar a impressora com qualquer dispo-

sitivo portanto que ambos estejam conectados à internet e a impressora seja

compatível com o Google Cloud Print. Como a maioria das impressoras não

são compatíveis com o Google Cloud Print, é necessário utilizar um computa-

dor para fazer a ligação com o serviço e a impressora [1].

Page 54: TCC DANILO DO NASCIMENTO LIMA

54

7.2 MICROSOFT

A Microsoft oferece uma variedade de serviços em nuvem para organizações

de qualquer tamanho. Grande parte de seus serviços em nuvem oferecidos são uma

variação dos produtos que os usuários já usam off-line. Um exemplo disso é o paco-

te Office da Microsoft, que possui tanto sua versão off-line quanto sua versão online,

tornando muito mais fácil a migração para suas versões em nuvem [1].

A plataforma de computação em nuvem da Microsoft denomina-se de Microsoft

Azure. Ela fornece diversos tipos de serviços em nuvem, como armazenamento,

banco de dados, segurança, monitoramento etc. A seguir, são descritos alguns de

seus serviços de nuvem [1].

• Armazenamento: O armazenamento em nuvem da Microsoft ajuda a aliviar a

carga do gerenciamento de data center. Além disso, elimina despesas com

hardware e mantém opções em nuvem flexíveis, pelas quais você paga con-

forme o uso. Oferece ainda vários tipos de armazenamentos como o Blob, Fi-

la de Arquivos, Premium entre outros [12].

• Banco de Dados: O Azure fornece vários serviços de banco de dados, um

deles é o Banco de dados SQL para programadores de aplicativos, tornando

a compilação e o gerenciamento de aplicações mais fáceis e produtivas. Esse

serviço possui uma inteligência interna que aprende padrões e se adapta para

maximizar o desempenho, a confiabilidade e a proteção dos dados [12].

.

• Segurança: Umadas formas que a Microsoft Azure fornece para manter seus

dados ou aplicações em segurança é o serviço Central de Segurança do Azu-

re, que impede, detecta e reage às ameaças. Ademais, ele fornece uma visão

central do estado da segurança de todos os seus recursos, podendo verificar

se os controles de segurança adequados estão sendo usados e se foram con-

figurados corretamente e mostrando quais recursos exigem mais atenção

[12].

Page 55: TCC DANILO DO NASCIMENTO LIMA

55

• Monitoramento: O Azure Monitor é um dos serviços oferecidos pela Micro-

soft de monitoramento. Ele fornece dados de desempenho, acesso ao log de

atividades que acompanha todas as chamadas à API e logs de diagnóstico,

auxiliando técnicos de TI a depurar problemas nos recursos do Azure. Todos

os dados de monitoramento necessários para realizar as manutenções dos

recursos do Azure são disponibilizados pelo Azure Monitor [12].

• SharePoint: o SharePoint é uma ferramenta que possui uma interface gráfica

semelhante ao Microsoft Office. Ela pode ser utilizada para fornecer gerenci-

amento de documentos e arquivos, redes sociais, sites, pesquisa corporativa

entre outras funções. Além disso, o SharePoint permite a integração de sis-

temas e processos, e possui a capacidade de automação de fluxo de trabalho

[1].

7.3 IBM

A IBM oferece serviços PaaS, SaaS e IaaS através do modelo de implementa-

ção de nuvem pública e privada. Na primeira camada do modelo, a IBM fornece pla-

taformas de hardwares para a computação em nuvem com suporte para virtualiza-

ção. Na próxima camada do framework da IBM, é oferecido a virtualização propria-

mente dita, fornecendo soluções de infraestrutura de aplicativos IBM Websphere que

dá suporte a modelos de programação [1].

A camada de gerenciamento da estrutura de nuvem da IBM inclui ferramentas

de gerenciamento que oferecem recursos para monitorar operações e utilização de

medidores enquanto rastreiam custos e alocam faturamento. A última camada do

framework disponibiliza ferramentas para desenvolvimento e testes de aplicativos,

análises e segurança [1].

• Modelos de nuvem: como citado anteriormente a IBM oferece seus serviços

com o auxílio da implementação de modelos privados e públicos de nuvem, a

seguir será citado como eles são oferecidos [1]:

Page 56: TCC DANILO DO NASCIMENTO LIMA

56

1. Nuvem privada, possuída e administrada pelo cliente

2. Nuvem privada, o cliente é o dono, mas ela é operada pela IBM

3. Nuvem privada, possuída e administrada pela IBM

4. Serviços de nuvem privada virtual, se baseados no suporte multicliente

para a empresa

5. Serviços de nuvem pública, focado em servir os usuários

• IBM SmartCloud: O IBM SmartCloud é um conjunto de produtos e soluções

de computação em nuvem da IBM. Esse conjunto contém IaaS, SaaS e PaaS,

que são oferecidos através dos modelos de nuvem pública, privada e híbrida.

A IBM disponibiliza esse serviço através de três vertentes que são: Smar-

tCloud Foundation focada na infraestrutura, hardware, gerenciamento, inte-

gração e segurança, SmartCloud Services, que é construído utilizando, PaaS,

IaaS e serviços de backup e por último o SmartCloud Solutions, que fornece

análises e aplicações de marketing SaaS [1]. Juntamente com os modelos de serviços IaaS, PaaS e SaaS, a IBM tam-

bém Fornece o Business Process as a Service (BPaaS). Esse serviço de nu-

vem fornece ao Cliente: processamento, armazenamento, redes e outros re-

cursos de computação fundamentais onde o programador é capaz de implan-

tar e executar softwares [1].

• IBM BlueMix: Assim como a Microsoft possui o serviço de plataforma em nu-

vem Azure, a IBM possui o serviço PaaS IBM BlueMix que diferente da Micro-

soft ele é baseado em projetos de software livre. O BlueMix permite que pro-

gramadores construam, executem, gerencie aplicativos e serviços modernos

[13].

• IBM Watson: é um sistema construído pela IBM Research que atualmente as

empresas utilizam para executar sistemas otimizados de cargas de trabalho e

desempenhar diferentes funções, como análise complexa e processamento

de transações, um bom exemplo de como o Watson é usado, é o que uma

universidade dos Estados Unidos faz, utilizando sistemas otimizados de car-

gas de trabalho para compreender melhor as causas que originam o câncer e

outras doenças [13].

Page 57: TCC DANILO DO NASCIMENTO LIMA

57

• IBM Watson Analytics: IBM Watson Analytics encontra respostas em seus

dados, sem precisar fazer download de software. Sendo uma solução em nu-

vem para análise e visualização inteligente de dados, ela dá orientações para

a exploração de dados, automatiza a análise preditiva e permite criar dashbo-

ards e infográficos [13].

• Infraestrutura TI: Na infraestrutura TI são oferecidos vários serviços, um de-

les é o Armazenamento de Dados (IBM Storage) que oferece a velocidade e o

desempenho do rápido acesso a dados, com a agilidade e a eficiência da nu-

vem híbrida e do armazenamento definido por software, outro serviço IBM Li-

nuxONE que é uma plataforma Linux e software livre feita para a economia

dos aplicativos, etc [13].

• IBM Security: esse serviço da IBM ajuda a detectar, direcionar e prevenir vio-

lações de segurança por meio de soluções de hardware e software integra-

dos, alguns das ferramentas de segurança são QRadar SIEM proteção para

ativos, QRadar Log Manege gerencia Logs para proteção da infraestrutura de

TI, QRadar Vulnerability Maneger que faz um varredura inteligente procuran-

do por vulnerabilidades à segurança de aplicativos e dispositivos da rede [13].

Page 58: TCC DANILO DO NASCIMENTO LIMA

58

8 CONCLUSÕES E TRABALHOS FUTUROS

Devido ao grande crescimento da aplicação do paradigma da computação

em nuvem, conceitos e tecnologias envolvidas foram apresentadas neste traba-

lho, destacando as diversas inovações que ela proporciona para a computação

facilitando o dia a dia tanto de empresas quanto de programadores e usuários

comuns em diversas áreas. A computação em nuvem permite que empresas

consigam diminuir gastos referentes à infraestrutura, manutenção e gerencia-

mento de um hardware próprio, contribuindo para um menor consumo de ener-

gia elétrica e de máquinas.

A computação em nuvem já é fortemente presente no cotidiano de desen-

volvedores, usuários finais, grandes corporações e pequenas e médias empre-

sas, e cada vez mais empresas estão investindo e utilizando o serviço oferecido

pela computação em nuvem devido a sua praticidade tanto no modo de paga-

mento por demanda como na utilização dos serviços oferecidos na nuvem.

Mesmo com todas as suas vantagens, a computação em nuvem possui desafios

a serem superados, como segurança, interoperabilidade e disponibilidade.

Como trabalho futuro, outras tecnologias que implementam a computação

em nuvem podem ser discutidas, como também modelos de processo de softwa-

re e de programação, sistemas operacionais e desafios no desenvolvimento de

software em nuvem.

Page 59: TCC DANILO DO NASCIMENTO LIMA

59

REFERÊNCIAS BIBLIOGRÁFICAS

1. K. CHANDRASEKARAN. Essentials of Cloud Computing. CRC Press Tay-

lor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton,

2015.

2. Mayza Nunes. História da Computação nas Nuvens <http://www.dsc.ufcg.edu.br/~pet/jornal/agosto2012/materias/historia_da_com

putacao.html> Acesso em 10 ago. 2016.

3. Arif Mohamed. History of cloud computing <

http://www.computerweekly.com/feature/A-history-of-cloud-computing> Aces-

so em 10 ago. 2016.

4. Ana Cantu. A História e o Futuro da Computação em Nuvem <

http://www.dell.com/learn/br/pt/brbsdt1/sb360/social_cloud> Acesso em 15

ago. 2016.

5. Vert - Soluções em TIC. Investimentos em computação em nuvem cres-cem no Brasil <http://www.vert.com.br/blog-vert/investimentos-em-

computacao-em-nuvem-crescem-no-brasil/> Acesso em 15 ago. 2016.

6. Computerworld. Brasil fica entre os piores em ranking que avalia compu-tação em nuvem <http://computerworld.com.br/brasil-fica-entre-os-piores-em-

ranking-que-avalia-computacao-em-nuvem> Acesso em 15 ago. 2016.

7. Flávio R. C. Sousa, Leonardo O. Moreira e Javam C. Machado. Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios. Universidade

Federal do Ceará (UFC), ERCEMAPI, 2009. Capítulo 7.

Page 60: TCC DANILO DO NASCIMENTO LIMA

60

8. Vmware. O que é virtualização? <

http://www.vmware.com/br/solutions/virtualization.html> Acesso em 19 ago.

2016.

9. Dhiego Alves Oliveira, Kelvin Dias Lopes, Mário Carneiro Rocha, Domingos

Sávio Soares Felipe. Cloud Computing: definições e análise para além das vantagens. IFCE - Canindé, Brasil,2011.

10. Leandro José Aguilar Andrijic Malandrin. Modelo de suporte a políticas e gestão de riscos de segurança voltado à terceirização de TIC, Computa-ção em nuvem e mobilidade. Dissertação(Mestrado), Escola politécnica de

São Paulo, 2013.

11. Bruna Thomé, Eduardo Hentges, Dalvan Griebler. Computação em Nuvem: Análise Comparativa de Ferramentas Open Source para IaaS. Faculdade

Três de Maio (SETREM) – RS – Brasil, Escola politécnica de São Paulo,

2013.

12. Microsoft. Microsoft Azure, Produtos < https://azure.microsoft.com/pt-br/ >

Acesso em 22 nov. 2016.

13. IBM. IBM Cloud < https://www.ibm.com/cloud-computing/ > Acesso em 24

nov. 2016.

14. Google. Google Cloud Platform <https://cloud.google.com/products/> Aces-

so em 21 nov. 2016.

15. Olhar Digital. Qual o futuro da computação em nuvem? <

http://olhardigital.uol.com.br/video/qual-o-futuro-da-computacao-em-

nuvem/14732 > Acesso em 26 nov. 2016.

Page 61: TCC DANILO DO NASCIMENTO LIMA

61

16. Felipe Dreher. Google compartilha sua visão sobre o futuro da cloud computing <http://computerworld.com.br/google-compartilha-sua-visao-

sobre-o-futuro-da-cloud-computing> Acesso em 26 nov. 2016.