• Nenhum resultado encontrado

Computação em nuvens : uma visão geral

N/A
N/A
Protected

Academic year: 2021

Share "Computação em nuvens : uma visão geral"

Copied!
61
0
0

Texto

(1)

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

Niterói

2016

(2)

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

(3)

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.

(4)

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

(5)
(6)

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.

(7)

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

(8)

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

(9)

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.

(10)

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

(11)

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

(12)

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

(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 exis-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.

(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 modecapítu-los de implementação existentes como Nuvem Priva-da, Nuvem Publica, Nuvem Comunitária e HíbriPriva-da, abordando suas vantagens e

(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 serviservi-ç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.

(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

(17)

inteligên-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 gerenciaprocessa-mento 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].

(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

(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].

(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 daexecuta-dos ou programas a partir de um computador local, é chamado de computa-ção e armazenamento local. Para ser considerado computacomputa-çã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.

(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.

(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 cambase-adas hierarquicamente, em que cbase-ada uma delas é responsável por reali-zar tarefas a fim de disponibilireali-zar 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

(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, devidescarta-do à reutilização de hardwares oferecidescarta-dos 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, psalva-odendsalva-o acessá-lsalva-o mesmsalva-o se seu dispsalva-ositivsalva-o pare de funcisalva-onar 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

(24)

utili-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

(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

(26)

ope-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 virvir-tualizaçã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 prescompu-taçã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].

(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].

(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.

(29)

As tecnologias discutidas na Seção 3.5 são essenciais para a implemen-tação da compuimplemen-taçã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.

(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:

(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 inin-fraestrutura, 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 painfraestrutu-ra 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 pa-garante que os clientes paguem apenas por aquilo que usarem. Este modelo elimina gastos desnecessários na compra de hardware.

(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 clienfor-tes em relação aos seus fornecedores.

3. Como IaaS fornece recursos a partir dos servidores da nuvem, a latência po-de ocasionar problemas po-de performance nas máquinas virtuais.

(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

(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.

(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

(36)

ca-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:

(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 pospos-sui 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.

(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.

(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 atualizamanuten-çã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

(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 mode-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].

(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.

(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

(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ê-instalá-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]

(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 normalmen-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.

(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 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 contratanpermi-te 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].

(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 nunu-vem 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 Lení-vel Agreement) [1].

Referências

Documentos relacionados

Segundo Santos (2008) fidelização de clientes é medir, gerenciar e criar valor ao cliente e tornar a fidelização dos mesmos, parte da missão da empresa. O presente estudo

A adaptação com a sociedade paulistana foi um processo que costumou levar pouco tempo segundo os entrevistados, tanto que foi observada a intenção de seguir mantendo

Os números naturais como o próprio nome diz, são os números que naturalmente aprendemos, quando es- tamos iniciando nossa alfabetização. Nesta fase da vida, não estamos

Informe o seu médico ou farmacêutico se estiver a tomar, tiver tomado recentemente, ou se vier a tomar outros medicamentos, incluindo medicamentos obtidos sem receita médica

4 Painel traseiro 15 Pé regulador 5 Painel superior 16 Painel base 6 Cubas 17 Painel lateral esquerdo 7 Painel lateral direito 18 Estrutura mancal 8 Controlador digital 19 Dosador

Relativamente às questões do tipo E – Exercícios Práticos – são questões práticas (“arrumadas” de acordo com cada um dos capítulos da obra “Cálculo

Não se diga (a erronia seria imperdoável) que se trata de recurso. Nem no foi, nem no é. É ação contra quem viola ou ameaça violar a liberdade de ir, ficar e vir. Talvez

De acordo com a revisão da literatura e com a reestruturação e documentação das vivências profissionais do pesquisador de 15 anos em atividades empresariais e acadêmicas, o modelo