• Nenhum resultado encontrado

Cloud computing - estudo de caso: ferramentas de armazenamento

N/A
N/A
Protected

Academic year: 2021

Share "Cloud computing - estudo de caso: ferramentas de armazenamento"

Copied!
83
0
0

Texto

(1)

UNIJUI – UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL

DCEENG – DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS

CLOUD COMPUTING – ESTUDO DE CASO: FERRAMENTAS DE ARMAZENAMENTO

ROBERTO ELI SANMARTIM

Ijuí

(2)

UNIJUI – UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL

DCEENG – DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS

CLOUD COMPUTING – ESTUDO DE CASO: FERRAMENTAS DE ARMAZENAMENTO

ROBERTO ELI SANMARTIM

Trabalho de Conclusão de Curso

apresentado ao curso de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng), da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUÍ), como requisito para obtenção do titulo Bacharel em Ciência da Computação.

Orientador: Prof. Ms. Edson Luiz Padoin

Ijuí

(3)

CLOUD COMPUTING – ESTUDO DE CASO: FERRAMENTAS DE ARMAZENAMENTO

ROBERTO ELI SANMARTIM

Trabalho de Conclusão de Curso

apresentado ao Curso de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEENG), da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUÍ), como requisito para obtenção do titulo Bacharel em Ciência da Computação

_____________________________________ Orientador: Prof. Ms. Edson Luiz Padoin

BANCA EXAMINADORA

_____________________________________ Prof. Ms. Rogerio Samuel de Moura Martins

Ijuí

(4)

AGRADECIMENTOS

Agradeço primeiramente a Deus pela sabedoria e por sempre me iluminar e me dar forças nos momentos difíceis.

Meu maior agradecimento a meus pais Clecio e Maria Izabel por sempre me encorajarem em minhas escolhas, sempre me dando força para seguir em frente em busca de meu sonho em se tornar um profissional da área da Computação. Não medindo esforços para me ajudar sempre em tudo, sempre disponível para o que precisar.

A meu irmão Gabriel pelos momentos engraçados que me faziam esquecer por algum instante a tensão de finalizar meu TCC.

Ao meu professor orientador Ms. Edson Luis Padoin pela sua disponibilidade, auxílio e apoio em todas as horas. Por topar ser meu orientador mesmo estando a milhares de quilômetros de distância.

Aos demais professores pelos ensinamentos transmitidos, pela amizade, dedicação e paciência em todos os momentos do curso.

Aos meus colegas pelos momentos de alegria e companheirismo.

(5)

RESUMO

A Computação em Nuvem se tornou nos últimos anos uma ferramenta muito importante na área da tecnologia. Tarefas como obtenção, compartilhamento, manipulação e exploração de uma grande quantidade de dados são comuns nesta área. A computação em nuvem pode contribuir com este cenário à medida que pode disponibilizar recursos de processamento, memória, armazenamento para utilização imediata.

A procura pelo uso da computação em nuvem hoje no mercado é muito grande. Existem muitas ferramentas de armazenamento em nuvem, algumas são mais conhecidas e outras menos.

Este trabalho tem como objetivo entender o que é a computação em nuvem, quais os benefícios e risco a sua utilização, os modelos de serviço e os tipos de nuvem. Também fazer uma análise das ferramentas de armazenamento em nuvem, apontando suas principais características.

Palavras chave: Armazenamento em Nuvem, Casos de Uso, Computação em Nuvem.

(6)

ABSTRACT

Cloud computing has become in recent years a very important tool in the area of technology. Tasks such as obtaining, sharing, manipulation and exploration of a large amount of data is common in this area. Cloud computing can contribute to this scenario as it can provide processing resources, memory, storage for immediate use. The demand for the use of cloud computing in today's market is very large. There are many tools for cloud storage, some are more and others less known.

This study aims to understand what is cloud computing, what benefits and risk its use, service models and cloud types. Also make an analysis of cloud storage tools, pointing out their main characteristics.

(7)

LISTA DE ABREVIATURAS

API – Application Programming Interface

CaaS – Comunication as a Service

CPU – Central Processing Unit

DASD – Direct access storage device

DBaaS – Data Base as a Service

DevaaS – Development as a Service

EaaS – Everything as a Service

IaaS – Infra-estrutura como Serviço

NIST – National Institute of Standards and Technology

PaaS – Plataforma como Serviço

PDA – Personal digital assistants

QoS – Quality of Service

SaaS – Software como Serviço

SGBD – Sistema de Gerenciamento de Banco de Dados

SLA – Services Level Agreement

TI – Tecnologia da Informação

(8)

LISTA DE FIGURAS

Figura 1. Cloud Computing 17

Figura 2. Segurança na nuvem 21

Figura 3. Principais camadas de aplicação 33

Figura 4. Modelo de serviço SaaS 36

Figura 5. Modelo de serviço PaaS 38

Figura 6. Modelo de serviço IaaS 40

Figura 7. Modelos de Implantação 42

Figura 8. Nuvem Híbrida 46

Figura 9. Tela inicial Dropbox 53

Figura 10. Versionamento 55

Figura 11. Tela inicial Skydrive 57

Figura 12. Histórico de versões 59

Figura 13. Tela inicial Google Drive 60

Figura 14. Gerenciar versões 62

Figura 15. Tela inicial iCloud 64

Figura 16. Tela inicial Ubuntu One 67

Figura 17. Tela inicial Sugarsync 70

(9)

LISTA DE TABELAS

Tabela 1. Modelos de Serviços 40

Tabela 2. Valor Planos Dropbox 54

Tabela 3. Valor planos Skydrive 58

Tabela 4. Valor planos Google Drive 61

Tabela 5. Valor planos iCloud 65

Tabela 6. Valor planos Ubuntu One 68

Tabela 7. Valor planos Sugarsync 71

(10)

SUMÁRIO

1 INTRODUÇÃO ... 12 1.1 Justificativa ... 14 1.2 Objetivo Geral ... 14 1.3 Objetivos específicos ... 14 2 COMPUTAÇÃO EM NUVEM ... 16 2.1 Histórico ... 18 2.2 Tecnologias ... 19 2.2.1 Segurança ...19 2.2.2 Escalabilidade ...21 2.2.3 Interoperabilidade ...22 2.2.4 Confiabilidade...23 2.2.5 Disponibilidade ...24

2.2.6 Auto-serviço sob demanda ...24

2.2.7 Pooling de Recursos ...25

2.2.8 Elasticidade...26

2.2.9 Serviço Medido ...27

2.2.10 Portabilidade...27

2.2.11 Alta velocidade no acesso a banda larga ...27

2.2.12 Recursos Compartilhados ...28

2.2.13 Dispositivos de acesso ...29

2.2.14 Dispositivos de armazenamento ...29

2.2.15 Pay as you go ...31

2.2.16 Service Level Agreement (SLA) ...32

2.3 Modelos de Serviço ...32

2.3.1 Software como Serviço (SaaS) ...34

2.3.2 Plataforma como Serviço (PaaS) ...36

2.3.3 Infraestrutura como Serviço (IaaS) ...38

2.3.4 Comparação entre os tipos de serviços. ...40

2.3.5 Outros Modelos de Serviço ...41

2.4 Tipos de Nuvens ... 41

(11)

2.4.2 Nuvem Privada ...44

2.4.3 Nuvem Híbrida ...45

2.4.4 Comunidade ...46

2.5 Benefícios ... 47

2.6 Riscos ... 49

3 ESTUDO DE CASO: FERRAMENTAS DE ARMAZENAMENTO EM NUVEM ... 52

3.1 DropBox ... 53 3.2 SkyDrive ... 57 3.3 Google Drive ... 60 3.4 iCloud ... 63 3.5 Ubuntu One ... 66 3.6 SugarSync ... 70 3.7 Comparativos ... 73 4 CONCLUSÃO ... 77 5 REFERÊNCIAS BIBLIOGRÁFICAS ... 79

(12)

1 INTRODUÇÃO

Neste trabalho serão analisados quais os benefícios que a Cloud Computing traz aos usuários. Quais as vantagens de se usar aplicações de armazenamento em nuvem.

Vivemos na era da informação, nosso ambiente é cercado de tecnologias que visam nos manter conectados com o mundo. Uma pessoa processa cerca de 34 gigabytes por dia e nos últimos três anos criou-se mais informações do que nos últimos quarenta mil anos de humanidade, toda essa evolução foi possível graças à inovação tecnológica, principalmente a criação da Internet (LIMA, 2010).

Com o crescente avanço tecnológico e maior velocidade e disponibilidade de acesso a internet, muitas empresas passaram a utilizar a computação em nuvem, ou cloud computing, que consiste em colocar dados, softwares e hardwares na rede, sem precisar instalá-los localmente. Muitas das empresas estão aderindo a essa tendência devido a um custo mais acessível que esse serviço proporciona ao invés de investir em uma ampla infraestrutura de TI dentro da empresa. Apesar da vantagem de não ser preciso manter os aplicativos, os computadores e nem as bases de dados dentro da própria organização, deve-se atentar para a segurança, pois quem estará com todas as informações são as empresas que oferecem os serviços de computação em nuvem (DIAS, 2013).

A evolução da computação e da internet foi relativamente rápida. Em menos de 40 anos mudamos um cenário centralizado com mainframes, em que as aplicações e os dados eram locais e distribuídos através de redes internas passando para aplicações desktops que compartilham a mesma base de dados. Depois, as aplicações passaram a ser acessadas via browser, disponibilizadas localmente pelas empresas até chegarmos ao nosso cenário atual, em que as aplicações são armazenadas em servidores públicos, com alto poder de processamento e disponibilidade, visando mantê-las sempre em funcionamento com o menor custo possível (SOUSA, MOREIRA e MACHADO, 2009).

A computação em nuvens trouxe de volta uma ideia de forma remodelada, a centralização. Criam-se vários datacenters distribuídos, controlados por empresas gigantescas como Microsoft, Google e Amazon e outras. Coloca-se o hardware feito

(13)

sob demanda, centrais de energia e resfriamento de última geração e softwares de controle que provêm aos clientes uma forma rápida de somar, ou retirar, máquinas de seu pátio computacional. Isto é a computação em nuvem. Uma forma de prover serviços com pagamento sob demanda de uso. Você paga pelo que usa e pelo que necessita (COMPUTERWORLD, 2010).

Este trabalho tem como objetivo demonstrar as vantagens da utilização da computação em nuvem através de um estudo das suas tecnologias, de seus riscos e benefícios e os diversos tipos de nuvem e também da analise de algumas ferramentas de armazenamento em nuvem.

Será feito um estudo sobre cada uma das principais ferramentas de armazenamento em nuvem disponível no mercado. Qual ferramenta possui melhor custo/beneficio, qual delas tem uma maior preocupação quanto à segurança das informações dos usuários.

O trabalho está assim organizado em cinco capítulos, sendo o primeiro a parte introdutória, onde explano sobre meus objetivos com o desenvolvimento deste trabalho.

No segundo capítulo será abordada a história da computação em nuvem, as tecnologias de segurança, escalabilidade, interoperabilidade, confiabilidade e disponibilidade. Os modelos de serviços. Também será abordado sobre os tipos de computação em nuvens, os benefícios e riscos.

No terceiro capítulo será abordado um estudo de caso das diversas ferramentas de armazenamento em nuvens disponíveis no mercado. As principais ferramentas abordadas serão Dropbox, Skydrive, Google Drive, iCloud, Ubuntu One, SugarSync. O estudo foi feito sobre essas ferramentas por serem as que estão em maior evidência e em constante evolução.

No quarto capítulo uma conclusão sobre o trabalho, o que de mais relevante foi possível abordar com este estudo.

E por fim o referencial teórico, apresentando todas as referências utilizadas neste estudo.

(14)

1.1 Justificativa

A motivação para desenvolver este trabalho, vem da grande procura do uso da computação em nuvem no mercado. Há muitas ferramentas para armazenamento em nuvem, algumas mais conhecidas e outas menos. Existem questionamentos sobre quais são os pontos positivos e negativos destas ferramentas, se os arquivos armazenados estão bem protegidos na nuvem, dentre as principais ferramentas disponíveis no mercado, quais possuem maiores facilidades para o uso no dia a dia.

1.2 Objetivo Geral

Esta pesquisa tem como objetivo geral analisar quais são os pontos favoráveis à utilização de computação em nuvem, quais suas funcionalidades, benefícios e riscos.

Também será feito um estudo de diversas ferramentas de armazenamento em nuvem e um comparativo entre elas. Justificando quais são mais recomendadas, usando como critérios, o custo, velocidade, segurança, Sistemas Operacionais que a aplicação suporta, tamanho máximo de cada arquivo e versionamento.

1.3 Objetivos específicos

Os objetivos específicos desta pesquisa são: • Entender o que é computação em nuvem; • Quais os benefícios de se usar;

• Segurança das aplicações; • Sua confiabilidade;

• Seus riscos;

• Tipos de Computação em Nuvem;

Também foi feito um estudo de caso, abordando algumas das principais ferramentas de armazenamento em nuvem. Fazendo uma análise destas

(15)

ferramentas, usando como critério, o custo, velocidade, segurança, sistema operacional que a aplicação suporta e se possui versionamento e outras características de cada ferramenta.

(16)

2 COMPUTAÇÃO EM NUVEM

Neste capítulo foi abordado o referencial teórico da computação em nuvem, o histórico e suas tecnologias, também foram abordados os modelos de serviço, os tipos de nuvens e os benefícios e riscos que ela traz a computação.

O termo computação em nuvem, do inglês, Cloud Computing, surgiu como um novo modelo de computação baseado em uma rede massiva de servidores virtuais ou físicos. É visto por alguns especialistas como um conceito mais avançado de virtualização (TAURION, 2007).

A computação em nuvem é uma revolução quanto à questão de armazenamento de dados e informações, pois nada mais é instalado e armazenado na própria maquina, tudo esta disponível na internet e pode ser acessado em qualquer lugar. O conceito de computação em nuvem significa possuir uma grande capacidade de armazenamento, processamento e compartilhamento de informações na qual o próprio cliente estabelece quais são as suas necessidades e paga pelos recursos ou tempo ao qual esta utilizando. Por isso ela é considerada como um serviço e não como um produto (FUGULIN, 2010).

O conceito de computação em nuvem usa da premissa da utilização de software ou sistemas em rede e da capacidade de dispor recursos ao usuário sob demanda. Desta maneira, as informações são permanentemente armazenadas em servidores na Internet (localizados na “nuvem”), sendo realizadas caches destes dados em notebooks, desktops, dispositivos móveis, entre outros computadores desktop, notebooks, dispositivos móveis, os quais estarão fazendo uso da infraestrutura em nuvem (FUGULIN, 2010).

Computação em nuvem é a computação considerada como um serviço, não como um produto. O interessado adquire hardware ou software, mas aluga e paga apenas pelo que utilizar (FERNANDEZ, 2011).

(17)

Figura 1. Cloud Computing

Fonte: VELTE, 2012, p.5.

A figura 1 é uma ilustração de como é a prestação de serviço, a empresa que contrata não paga pelo hardware e pela manutenção. Quem fica responsável por isso é a prestadora que deve compra equipamentos e fazer a manutenção dos mesmos (VELTE, 2012).

Com o Cloud Computing, o usuário não precisa investir na compra de computadores e infraestrutura de rede, pois vai utilizar os dispositivos na nuvem. Quem fica responsável por toda a infraestrutura física é o fornecedor, que possui uma rede escalável e elástica, sendo assim apenas cobra a demanda que o cliente usou de sua infraestrutura (VELTE, 2012).

Em suma, o Cloud Computing pode ser definido como um modelo no qual a computação (processamento, armazenamento e software) está em algum lugar da rede e é acessada remotamente, via internet. O que realmente significa é que alguém vai assumir a responsabilidade de entregar algumas funções de TI como serviços para alguns clientes e eles não precisam saber como funciona, eles simplesmente irão usar (FEIJÓ, 2009).

Há muitos motivos pelos quais as empresas estão mudando as soluções de tecnologia da informação, o que inclui computação em nuvem. Em primeiro lugar, o mercado de computação em nuvem ainda está em crescimento constante, as falhas ainda podem ser mais frequentes nesse primeiro momento, grandes empresas começarão a comprar estes conceitos que ajudarão a reduzir seus respectivos custos, pois irão obter os recursos apenas quando precisar deles e pagará apenas o

(18)

que for usar. Novas ferramentas de gerenciamento chegarão ao mercado, possibilitando o melhor uso desta nova tecnologia e consequentemente nuvens mais seguras irão surgir, isto é só uma questão de tempo (TAURION, 2009).

2.1 Histórico

O Conceito de computação em nuvem surgiu na década de 1960 por J.C.R. Licklider que imaginava a computação na forma de uma rede global e quem também introduziu a ideia de uma rede de computadores intergaláctica (CHIRIGATTI, 2009) (KAUFMAN, 2009; MODAMED, 2009).

Na década de 60, John McCarthy, famoso e importante pesquisador da área da informática, propôs a ideia de que a computação deveria ser organizada na forma de um serviço de utilidade pública (CHIRIGATI, 2009).

A primeira vez que o termo computação em nuvem foi utilizado, foi no ano de 1997 pelo então professor de sistemas de informação da University of Southern Califórnia Ramnath Chellappa (FERNANDEZ, 2011).

Outro marco importante para a computação em nuvem foi em 1999, com o surgimento da Salesforce.com, que foi a pioneira em disponibilizar aplicações empresarias através da internet. A partir de então outras empresas começaram a investir nesta área, como a Amazon, Google, IBM e Microsoft (MOHAMED, 2009) (CHIRIGATI, 2009).

Um fator predominante para o grande crescimento na demanda de computação em nuvem é o crescimento gigantesco de armazenamento de dados. De acordo com projeções da CenturyLink grande empresa do ramo de comunicação de dados dos EUA até 2015, a procura para armazenamento de dados irá aumentar em quatro vezes levando em conta novos dados e também os dados replicados (CANTU, 2012).

(19)

2.2 Tecnologias

A computação em nuvem não é somente uma nova tecnologia, mas sim a combinação de muitas tecnologias que já existiam anteriormente. Estas tecnologias têm crescimento em ritmos diferentes e em diferentes contextos e não foram desenvolvidas em um todo coerente, porém se uniram para criar o ecossistema para a computação em nuvem. Novos avanços nas tecnologias de armazenamento em disco, conexão banda larga e os servidores de baixo custo, combinaram para fazer da computação em nuvem uma solução mais convincente aos usuários (MATHER, 2009).

O entusiasmo com a computação em nuvem se deve às inúmeras vantagens que ela pode oferecer tanto aos fornecedores de tecnologia quanto aos usuários (MATHER, 2009).

2.2.1 Segurança

Um dos maiores desafios a serem enfrentados pela computação em nuvem, sem nenhuma dúvida é a segurança. Nesse novo modelo de computação, o Data Center armazena informações que os usuários armazenariam em seus próprios computadores. Além disso, esses usuários não sabem onde estão armazenados seus dados nem a fonte dos dados que estão armazenados junto aos deles. Assim, a proteção da privacidade dos usuários e a integridade das informações devem ser de responsabilidade dos prestadores de infraestrutura e de serviços (DIKAIAKOS, 2009).

A questão da incerteza quanto à segurança da computação em nuvem é o que mais tem causado preocupação quando se é abordado este tema (MATHER, 2009).

A disponibilidade de serviços permite que o usuário possa utilizar a nuvem onde e quando quiser. Como a nuvem fica na internet podem ocorrer atrasos e sistemas indisponíveis. Os ambientes de computação em nuvem possuem alta disponibilidade, portanto, estes podem utilizar técnicas de balanceamento de carga e composição de nuvens de forma a atender às necessidades dos usuários. Por

(20)

exemplo, podem-se construir aplicações altamente disponíveis com a implantação de duas ofertas de nuvem diferentes. Se caso uma nuvem falhar, a outra nuvem continua a apoiar a disponibilidade das aplicações (SOUZA, 2009).

Velte A., Velte T. e Elsenpeter (2010) destacam alguns pontos relevantes para a segurança nas nuvens.

• Monitoramento: maior facilidade no controle da segurança, pois o monitoramento não se da em servidores e em numerosos clientes, mas sim na nuvem;

• Intercâmbio Instantâneo: caso ocorram problemas com os dados armazenados, pode ser feito uma transferência instantânea para outro computador, sem compromete a integridade das informações;

• Construções Seguras: a rede e o software da própria empresa podem ser agrupados, gerando assim um nível maior de segurança nos dados. • Melhoria da Segurança de Software: como os fornecedores não querem

perder vendas, eles aplicam os melhores softwares para obter a maior segurança possível dos dados;

• Teste de Segurança: nos serviços SaaS, os testes de segurança que são realizados nas aplicações não são cobras dos clientes.

A utilização da computação em nuvem está crescendo principalmente em empresas de pequeno e médio porte, pela necessidade de maior segurança dos dados destas organizações. Na maioria das vezes estas empresas não possuem uma ampla área de TI para assegurar a integridade dos dados. E com o uso dos serviços nas nuvens, os níveis de segurança obtidos são bem maiores, garantindo assim maior qualidade dos dados e um menor investimento inicial (DIAS, 2012).

Conforme Velte (2012) p.138, para se proteger os dados, a maioria dos sistemas usa uma combinação das seguintes técnicas:

• Criptografia: um logaritmo complexo é usado para codificar a informação. Para decodificar os arquivos criptografados, o usuário precisa da chave de criptografia. Embora seja possível quebrar informações criptografadas, é muito difícil e a maioria dos hackers não tem acesso à quantidade de poder de processamento do computador que eles teriam de quebrar o código;

(21)

• Processos de autenticação: isto requer que o usuário crie um nome e uma senha;

• Práticas de autorização: o cliente enumera as pessoas que estão autorizadas a ter acesso às informações armazenadas no sistema de nuvem. Muitas têm vários níveis de autorização. Por exemplo, um trabalhador de linha de frente poderia ter acesso limitado a dados armazenados na nuvem e o chefe do departamento de TI pode ter completo e livre acesso a tudo.

Figura 2. Segurança na nuvem

Fonte: VELTE, 2012, p.139.

Mas mesmo com essas medidas em vigor, ainda existem preocupações de que os dados armazenados em um sistema remoto são vulneráveis. Há sempre a preocupação de que um hacker vai encontrar um caminho para um sistema seguro e acesso a dados. Além disso, um funcionário descontente poderá alterar ou destruir os dados usando as suas próprias credenciais de acesso (VELTE, 2012).

2.2.2 Escalabilidade

Embora as organizações possam ter centenas ou milhares de sistemas, a computação em nuvem fornece a capacidade de escala a dezenas de milhares de sistemas, bem como a capacidade de uma rede sólida, de banda e espaço de armazenamento (MATHER 2009).

A computação em nuvem é composta por uma enorme rede de nós que necessita ser escalável. A escalabilidade deve ser transparente para o usuário,

(22)

podendo estes dados estar na nuvem e armazenados em qualquer lugar sem a necessidade de saber onde estão estes dados e como eles são acessados (SOUSA, 2009).

A escalabilidade é uma característica fundamental na computação em nuvem. As aplicações desenvolvidas para uma nuvem precisam ser escaláveis, de forma que os recursos utilizados possam ser ampliados ou reduzidos de acordo com a demanda. Para que isso seja possível, as aplicações e os seus dados devem ser flexíveis (ou “elásticos”) o suficiente. Porém, tornar as aplicações e os dados “elásticos” pode não ser tão simples assim, dependendo da implementação (CHIRIGATI, 2009).

Além das aplicações e dos seus dados serem escaláveis, essa escalabilidade também deve ser realizada rapidamente, ou seja, a resposta das aplicações à demanda dos recursos não pode demorar. Essa particularidade é essencial, visto que, na computação em nuvem, trabalha-se com o modelo pay-per-use e, consequentemente, é importante evitar que os usuários desperdicem dinheiro (ARMBRUST, 2009).

Se o usuário é surpreendido por uma demanda repentina, a computação em nuvem pode ajudá-lo a gerenciar ao invés de comprar os ciclos da CPU ou armazenamento de um terceiro. Uma vez que os custos são baseados no consumo, provavelmente não teria de pagar tanto como se fosse o caso de comprar o equipamento. Depois de ter cumprido a necessidade de equipamento adicional, basta parar de usar o prestador de serviços em nuvem e o usuário não terá que lidar com equipamentos desnecessários irá simplesmente adicionar ou subtrair com base na necessidade de sua organização (RUSCHEL, 2008).

2.2.3 Interoperabilidade

A interoperabilidade diz respeito à capacidade dos usuários de executar os seus programas e os seus dados em diferentes nuvens e plataformas. Isso permite, por exemplo, que as aplicações não fiquem restritas a somente uma nuvem. Essa é uma característica amplamente desejável no ambiente da computação em nuvem. Ultimamente, muitas aplicações têm sido desenvolvidas considerando esse fator.

(23)

Porém, ainda há a necessidade da implementação de padrões e interfaces para que essa portabilidade seja possível (DIKAIAKOS, 2009).

A interoperabilidade está preocupada com a capacidade dos sistemas de se comunicar entre eles. Ela exige que a informação comunicada seja compreendida pelo sistema de recepção. No mundo da computação em nuvem, isso significa a capacidade de escrever código que trabalha com mais de um fornecedor de nuvem simultaneamente, independente das diferenças entre os prestadores de serviços (AHRONOVITZ, 2010).

A ausência, em geral, dessa característica acaba prejudicando a adoção da computação em nuvem por parte de muitas organizações (ARMBRUST, 2009).

Os usuários têm a preocupação de não conseguirem retirar seus dados e seus programas de uma nuvem e colocá-los em outra com relativa facilidade, havendo a sensação de que os dados ficam presos em uma determinada nuvem (CHIRIGATI, 2009).

Empresas de desenvolvimento de software têm interesse que aplicações possam ser transferidas para a nuvem de forma simples. Essas empresas também esperam que exista interoperabilidade entre diferentes serviços de nuvem, por exemplo, entre serviços de armazenamento. As APIs da Amazon estão se tornando um padrão de fato para serviços sob demanda. Contudo, a quantidade de tecnologias envolvidas é muito grande, tornando-se um desafio padronizar as diversas interfaces e serviços (SOUSA, 2009).

2.2.4 Confiabilidade

Um sistema é dito como confiável se ele não falhar com frequência, e principalmente, se ele não perder os dados ao falhar. As aplicações desenvolvidas para a computação em nuvem devem ser confiáveis, ou seja, elas devem possuir uma arquitetura que permita que os dados permaneçam intactos mesmo que haja falhas ou erros em um ou mais servidores ou máquinas virtuais sobre as quais as aplicações estão rodando. Essa característica está associada à realização de cópias de segurança dos dados. O armazenamento dessas cópias deve ser feito em local

(24)

seguro para que, caso haja alguma falha nas aplicações e elas percam os dados, estes, ou pelo menos uma parte deles, possam ser recuperados (CHIRIGATI, 2009).

2.2.5 Disponibilidade

Os usuários da computação em nuvem possuem uma grande preocupação com a questão da disponibilidade dos serviços. Eles esperam que as aplicações estejam sempre disponíveis, ou seja, em execução durante todo o tempo, principalmente nos momentos necessários. Porém, há exemplos de serviços que já ficaram indisponíveis por um determinado período, como o Gmail, que, em 08/11/2008, ficou fora do ar por, aproximadamente, uma hora e meia (ARMBRUST, 2009).

Portanto, uma alternativa é ter mais de um prestador de serviços e mais de uma nuvem, o que permite aos usuários executarem seus programas em uma nuvem enquanto a outra apresenta problemas técnicos. Mas essa alternativa pode não ser tão simples, no caso de uma aplicação não funcionar corretamente em outras nuvens (ARMBRUST, 2009).

Dependendo do fornecedor, o usuário pode contar com alta disponibilidade, já que, se, por exemplo, um servidor para de funcionar, os demais que fazem parte da estrutura continuam a oferecer o serviço (RUSCHEL, 2008).

2.2.6 Auto-serviço sob demanda

O usuário pode adquirir unilateralmente recurso computacional como tempo de processamento no servidor ou armazenamento na rede à medida que necessite e sem precisar de interação humana com os provedores de cada serviço. O hardware e o software dentro de uma nuvem podem ser automaticamente reconfigurados, orquestrados e estas modificações são apresentadas de forma transparente para o usuário, que possuem perfis diferentes e assim podem personalizar os seus ambientes computacionais, por exemplo, instalação de software e configuração de rede para definição de determinados privilégios (SOUSA, 2009).

(25)

Os usuários provisionam a utilização de recursos, tais como sistemas complementares (capacidade de processamento, software, recursos de armazenamento) e da rede (MATHER, 2009).

A computação em nuvem é um sistema autônomo gerenciado de forma transparente para os usuários. Hardware e software dentro de nuvens podem ser automaticamente reconfigurados, orquestrados e estas modificações são apresentadas ao usuário como uma imagem única. Essa autonomia é importante, pois reduz o custo de equipe de monitoramento do sistema tanto no âmbito centralizado quanto distribuído (Birman et al. 2009). Comparados com sistemas tradicionais, é possível identificar três fatores complexos: intervenção humana limitada, alta alternância na carga de processamento e uma variedade de infraestruturas compartilhadas. Na maioria dos casos, não existem administradores de sistemas para ajudar os desenvolvedores que acessam a nuvem, fazendo com que a plataforma seja automatizada ao máximo e os usuários podem variar a carga de trabalho habitual, necessitando de uma infraestrutura de virtualização eficaz. A gerência também é importante no contexto do desenvolvimento de tecnologia de auto sintonia. Assim sendo, técnicas adaptativas e online deverão ser desenvolvidas para tornar estes sistemas viáveis (SOUSA, 2009).

Os usuários não são mais confrontados com a escolha entre software obsoleto e atualização de altas despesas. Quando o aplicativo é baseado na web, as atualizações acontecem automaticamente e são disponibilizados na próxima vez que o usuário ocupar a nuvem. Sempre que o usuário acessar uma aplicação baseada na web, ele está recebendo a versão mais recente, sem a necessidade de pagar ou fazer o download de uma atualização (MILLER, 2009).

2.2.7 Pooling de Recursos

Os recursos computacionais do provedor são agrupados para servir múltiplos usuários através de um modelo multi-tenant, com diferentes recursos físicos e virtuais, dinamicamente atribuídos e ajustados de acordo com a demanda dos usuários. Estes usuários não precisam ter conhecimento da localização física dos

(26)

recursos computacionais, podendo somente especificar a localização em um nível mais alto de abstração, tais como o país, estado ou datacenter (SOUSA, 2009).

O provedor de recursos de computação é agrupado para atender vários consumidores através de um modelo muti-tenant ou também conhecido como Multi-Inquilino, com diferentes recursos físicos e virtuais atribuídos dinamicamente e novamente de acordo com a demanda do consumidor. Há um senso de independência local em que o cliente geralmente não tem nenhum controle ou conhecimento sobre a localização exata dos recursos disponibilizados, mas pode ser capaz de especificar o local em um nível maior de abstração (por exemplo, país, estado ou do datacenter). Exemplos de recursos incluem o armazenamento, processamento, memória, largura de banda de rede e máquinas virtuais (NIST, 2009).

2.2.8 Elasticidade

Recursos podem ser adquiridos de forma rápida e elástica, em alguns casos automaticamente, caso haja necessidade de escalar com o aumento da demanda, e liberados, na retração dessa demanda. Para os usuários, os recursos disponíveis para uso parecem ser ilimitados e podem ser adquiridos em qualquer quantidade e a qualquer momento (SOUSA, 2009).

Os usuários podem aumentar ou diminuir rapidamente os seus recursos de computação, conforme necessário, como também liberar recursos para outros usos, quando eles não são mais necessários (MATHER, 2009).

A elasticidade é definida como a capacidade de dimensionar os recursos, conforme necessário. Para o consumidor, a nuvem parece ser infinita e o consumidor pode comprar muita ou pouca potência de computação, como for necessário. Esta é uma das características essenciais de computação em nuvem, na definição do NIST (AHRONOVITZ, 2010).

(27)

2.2.9 Serviço Medido

Sistemas em nuvem automaticamente controlam e aperfeiçoam o uso de recursos por meio de uma capacidade de medição. A automação é realizada em algum nível de abstração apropriado para o tipo de serviço, tais como armazenamento, processamento, largura de banda e contas de usuário ativas. O uso de recursos pode ser monitorado e controlado, possibilitando transparência para o provedor e o usuário do serviço utilizado. Para garantir o QoS (Quality of Service), pode-se utilizar a abordagem baseada em níveis de acordo de serviço SLA (Services Level Agreement). O SLA fornece informações sobre os níveis de disponibilidade, funcionalidade, desempenho ou outros atributos do serviço como faturamento e até mesmo penalidades em caso de violação destes níveis (SOUSA, 2009).

A computação em nuvem reduz bastante os custos com hardware e manutenção de software para organizações de todos os tamanhos. Em primeiro lugar, o hardware, com menos hardware (servidores a menos) necessários na organização de software, devemos lembrar que todas as aplicações em nuvem são baseadas em outros lugares, portanto não há software em computadores da organização para a equipe de TI manter (MILLER, 2009).

2.2.10 Portabilidade

Portabilidade é a capacidade de executar componentes ou sistemas escritos para um ambiente em outro ambiente. No mundo da computação em nuvem, este termo se refere aos ambientes de software e hardware tanto físicos como virtuais (AHRONOVITZ, 2010).

2.2.11 Alta velocidade no acesso a banda larga

Um componente crítico da nuvem é a rede de banda larga, que oferece os meios para contato entre os componentes e proporciona uma das diferenças substanciais a partir do conceito de Utility Computing de trinta anos atrás. Acesso à

(28)

banda larga é hoje amplamente disponível, especialmente em áreas metropolitanas. O acesso generalizado sem fio (por exemplo, Wi-Fi, celular, emergentes WiMAX) está disponível, e estabelece dispositivos móveis como pontos de entrada para os recursos de TI da empresa e da nuvem (MATHER, 2009).

Uma vez que não se pode exigir que os sistemas que constituem uma nuvem sejam da mesma tecnologia. Os recursos estão disponíveis através da rede e acessados por meio de mecanismos que promovam o padrão utilizado por plataformas heterogêneas (por exemplo, telefones celulares, laptops e PDAs). A interface de acesso à nuvem não obriga os usuários a mudarem suas condições e ambientes de trabalho, como por exemplo, linguagens de programação e sistema operacional. Já os softwares clientes instalados localmente para o acesso à nuvem são leves, como um navegador de internet (RUSCHEL, 2008).

2.2.12 Recursos Compartilhados

Ao contrário dos modelos anteriores de computação, que assumiram recursos dedicados (ou seja, as instalações dedicadas a um único usuário ou proprietário), a computação em nuvem é baseada em um modelo de negócios em que os recursos são compartilhas (isto é, vários usuários usam o mesmo recurso) na rede (MATHER, 2009).

De acordo com NIST (Instituto Nacional de Padrões e Tecnologia), a proposta do modelo de computação em nuvem é ter uma aplicação atendendo a múltiplos clientes, chamados de tenants ou inquilinos. Inquilinos não são usuários individuais, mas empresas clientes do software. Uma arquitetura multi-inquilino é essencial para a computação em nuvem, pois permite que múltiplos inquilinos compartilhem recursos físicos comuns (hardware e software), mas permanecendo logicamente isolados. Recursos compartilhados são comuns na maioria dos sistemas baseados em nuvem (AHRONOVITZ, 2010).

(29)

2.2.13 Dispositivos de acesso

A gama de dispositivos de acesso para a nuvem tem se expandido nos últimos anos. Computadores domésticos e empresariais, computadores pessoais (notebooks), dispositivos de telefonia móvel, dispositivos móveis personalizados, todos estão online. Curiosamente, o crescimento do iPhone e da proliferação de aplicações disponíveis a partir da App Store ilustra uma melhoria em termos de acesso à nuvem. Este aumento no acessa é resultado do crescimento do uso e dos serviços na nuvem. Por exemplo, agora você pode usar o Skype através do seu iPhone e outros dispositivos móveis, trazendo esta rede peer-to-peer muito mais perto dos usuários. A Salesforce.com lançou uma aplicação que permite aos usuários acessar seus serviços a partir do iPhone, assim como muitos outros fornecedores (MATHER, 2009).

Computadores de baixo custo para o usuário consistem em uma vantagem quantitativa financeira na qual o usuário não precisa de um computador potente (e, portanto, de alto preço), precisa de um computador para executar a computação em nuvem que é baseado nas aplicações da web. Como o aplicativo é executado na nuvem, o computador não precisa do poder de processamento e espaço em disco rígido pelo software tradicional. Por isso os computadores de clientes que usam a tecnologia em nuvem podem ser de menor custo, com menos discos rígidos, menos memória, processadores mais eficientes, e assim por diante. Em suma, um computador de usuário neste cenário nem sequer precisa de um drive de CD ou DBD, porque não existem programas de software a serem carregados e os arquivos de documentos não precisam ser salvos (MILLER, 2009).

2.2.14 Dispositivos de armazenamento

Diminuir os custos de armazenamento e a flexibilidade com que o armazenamento pode ser implantado mudou o conceito de armazenamento. O dispositivo de armazenamento fixo de acesso direto (DASD) foi substituído por redes de armazenamento (SANs), que reduziram os custos e permitiram muito mais flexibilidade em armazenamento no sistema corporativo. SAN software gerencia a

(30)

integração dos dispositivos de armazenamento e pode independentemente alocar espaço de armazenamento sob demanda através de um número de dispositivos (MATHER, 2009).

Observando o que ocorre quando um computador não tem espaço para armazenar e executar uma tonelada de aplicativos baseados em software com menos programas sobrecarregando a memória do computador, os usuários verão melhor o desempenho de seus computadores. Simplificando, computadores em um sistema de computação em nuvem irão arrancar mais rápidos e terão maior velocidade, porque eles têm menos programas e processos carregados na memória (MILLER, 2009).

A nuvem oferece armazenamento em uma capacidade quase ilimitada. Considere quando o seu computador está funcionando fora do espaço de armazenamento. Por exemplo, em computador com 200GB de disco rígido a capacidade é muito pequena, quando comparado com as centenas de petabytes (um milhão de gigabytes) disponíveis na nuvem. Tudo que seria preciso armazenar é possível, mas não podemos esquecer que quantidade de dados armazenados acarreta em valores pagos aos provedores de serviços de nuvem (MILLER, 2009).

O gerenciamento de dados é considerado um ponto crucial no contexto de computação em nuvem. Os SGBDs relacionais não possuem escalabilidade quando milhares de sítios são considerados. Assim, aspectos que fazem processamentos de consultas e de armazenamento de dados e controle transacional têm sido flexibilizados por abordagens que garantem a escalabilidade, mas ainda não existem soluções que combinem para melhorar o desempenho sem comprometer a consistência dos dados (BRANTNER, 2008).

Existem diversas abordagens para gerenciar dados em nuvens, dentre as quais podemos citar o Microsoft Azure e HBase. Uma das características mais importantes é o trade-off entre funcionalidades e custos operacionais que os provedores de serviços enfrentam. Os serviços em nuvem para dados oferecem APIs mais restritas que os sistemas que gerenciam os bancos de dados relacionais, com uma linguagem minimalista de consulta e garantia de consistência limitada. Isso exige mais capacidade de programação dos desenvolvedores, mas permite aos provedores construírem serviços mais simples e oferecerem SLA. De acordo com Armbrust (2009), a criação de um sistema de armazenamento que combina as

(31)

características de computação em nuvem, de forma a aumentar a consistência de dados, disponibilidade e a escalabilidade de um problema de pesquisa em aberto (SOUSA, 2009).

2.2.15 Pay as you go

Este termo Pay as you go refere-se que, os usuários irão pagar apenas os recursos que eles realmente irão usar e só o tempo que lhes impõe os valores (MATHER, 2009).

Esse tipo de serviço faz com que o usuário tenha um melhor controle de gastos ao usar aplicativos, pois a maioria dos sistemas de computação em nuvem oferece aplicações de forma gratuita e, quando não gratuitas, são pagas somente pelo tempo que se usa os recursos. Não é necessário pagar por uma licença integral de uso de software (DELMIRO, 2010).

Embora pesquisas em computação tenham investigado vários modelos econômicos de infraestrutura computacional durante a última década, a computação em nuvem tem uma abordagem mais aplicada aos negócios e relacionada ao custo. Assim, a computação em nuvem apresenta diversos modelos de preço, sendo estes organizados em três grupos: preço diferenciado, preços por unidade e assinatura de serviços básicos. Preço diferenciado é o modelo adotado pela Amazon, onde os serviços são oferecidos em vários níveis de especificações, tais como aplicação de memória e tipo de CPU, o valor cobrado é um preço específico por unidade de tempo. Preço por unidade é normalmente aplicado a dados transferidos ou ao uso de memória. Este modelo é mais flexível do que o de preço diferenciado, já que permite aos usuários personalizarem a alocação de memória de seus sistemas baseados nas necessidades de aplicações específicas. O modelo de assinatura de serviços básicos é o modelo de preços mais amplamente utilizado, permitindo aos usuários preverem suas despesas previamente na utilização de um serviço. Contudo, este modelo não tem a precisão em cobrar dos usuários o que eles têm realmente utilizado (SOUSA, 2009).

(32)

2.2.16 Service Level Agreement (SLA)

Um SLA é um contrato entre prestadores de serviço e um consumidor, que especifica as exigências dos consumidores e o empenho do provedor para eles. Normalmente, um SLA inclui itens como tempo de atividade, privacidade, segurança e procedimentos de backup (AHRONOVITZ, 2010).

A política é um termo geral para um procedimento operacional. Por exemplo, uma política de segurança pode especificar que todos os pedidos para um serviço na nuvem particular devem ser criptografada (AHRONOVITZ, 2010).

A governança diz respeito aos controles e processos que garantem que políticas serão aplicadas (AHRONOVITZ, 2010).

2.3 Modelos de Serviço

No modelo de software tradicional as aplicações destes softwares são baseados em um modelo com grandes custos de licenciamento inicial e anual e custos de suporte. Aumentar o número de usuários pode aumentar o custo da base do pacote, devido à necessidade de implementações de servidores adicionais de hardware e suporte de TI. Os custos do licenciamento são muitas vezes com base em métricas que não estejam diretamente alinhados com o uso (tipo de servidor, o número de CPUs, alguma característica física entre outros) e não são virtuais. Um pacote típico de software empresarial requer uma implantação de hardware, servidores, backup e rede de abastecimento. Arquitetura de segurança também é tributada em um esforço para proteger este valioso recurso contra acesso não autorizado. Então nos softwares tradicionais as aplicações tendem a ser altamente customizáveis, o que tem um custo em dólares e mão de obra (MATHER, 2009).

A ideia de computação em nuvem consiste na disponibilização de serviços através da Internet, estes serviços são pagos conforme a necessidade de uso (pay-per-use), dando ao cliente a possibilidade de aumentar ou diminuir sua capacidade de armazenamento conforme a quantidade necessária para o uso (MATHER, 2012).

(33)

Existem muitos tipos de serviços oferecidos pela computação em nuvem. Esta diversidade de serviços é muito apropriada, pois permite que as empresas adquiram os serviços mais adequados às suas necessidades (TAURION, 2009).

Diante disso, a arquitetura da computação em nuvem pode ser dividida em três camadas abstratas a mais baixa das camadas é a de infraestrutura como serviço (IaaS), a segunda camada é a de plataforma como serviço (PaaS) e última, a camada de software como serviço (SaaS). Cada camada pode possuir seu gerenciamento ou monitoramento de forma independente das outras camadas, melhorando a flexibilidade, reusabilidade e escalabilidade no sentido de substituição ou adição de recursos computacionais sem afetar outras camadas (SOUSA, 2009).

Pode-se observar na Figura 2 as camadas de aplicação, plataforma e infraestrutura

Figura 3. Principais camadas de serviço

Fonte: GIEZENDANNER, 2010.

A arquitetura da computação em nuvem é dividida em três camadas. A cama mais baixa, chamada de Camada de Infraestrutura. É através dela que os prestadores de infraestrutura disponibilizam os serviços de rede e armazenamento da nuvem. Fazem parte desta arquitetura os servidores, sistemas de armazenamento, como data centers, e roteadores. A camada do meio, chamada Plataforma, possui uma abstração mais elevada e provê serviços para que as aplicações possam ser desenvolvidas, testadas, implementadas e mantidas no

(34)

ambiente da nuvem pelos prestadores de serviços. Já a camada mais alta, chamada de Software ou Aplicação é aquela que oferece diversas aplicações como um serviço para o usuário. (CHIRIGATI, 2009).

Os serviços são diversificados, e isto é um ponto positivo, no qual permite que o cliente adquira os serviços mais adequados às suas necessidades, o que também pode ser negativo devido à maior parte dos serviços não ser compatíveis entre si (TAURION, 2009).

2.3.1 Software como Serviço (SaaS)

SaaS representa os serviços de mais alto nível disponibilizado na nuvem. Estes serviços dizem respeito a aplicações completas que são oferecidas aos usuários. Somente uma instância de cada aplicação permanece em execução na nuvem e, através da virtualização ela serve a múltiplos usuários (CHIRIGATI, 2009).

Um SaaS é disponibilizado por prestadores na cama de aplicação. Ele roda inteiramente na nuvem e pode ser considerada uma alternativa a executar um programa em uma máquina local. Softwares de aplicação, como processadores de texto e SGBDs, são exemplos de SaaS (CHIRIGATI, 2009).

É um modelo em que o aplicativo é oferecido como um sérvio aos clientes que o acessam através da Internet. Quando o software é hospedado off-site, o cliente não precisa adquirir licença de uso ou de suporte. Por outro lado, está fora do alcance do cliente quando o serviço de hospedagem decide mudar. A ideia é que se use o software fora da caixa e que não precisam ser feita muitas mudanças ou que seja solicitado à integração com outros sistemas (VELTE, 2011).

O modelo SaaS é um modelo que entrega software como um serviço, de uma forma diferente do modelo tradicional, no qual a empresa adquiri uma licença de uso e instala o software nos seus próprios servidores. O modelo SaaS muda estas regras, transformando a maneira como software é comercializado, pois com o modelo SaaS, não são mais necessários os contratos de manutenção, pois estas atividades ficam a cargo do provedor e não mais da empresa. O usuário passa a somente usar o software sem se preocupar com as atividades de instalação, manutenção e upgrades da aplicação (TAURION, 2009).

(35)

Um ótimo exemplo de SaaS pode ser dado através de um editor de texto. No modelo tradicional da computação, o usuário precisa ter uma cópia do software e sua respectiva licença para uso no seu desktop ou notebook. O usuário adquire a licença para uso por 24 horas por dia, 7 dias por semana, mesmo que não esteja usando o software à noite ou nos finais de semana. Além disso, se o usuário levar o trabalho para casa e tiver que acessar de outro computador, terá que obter uma segunda licença para este computador. No modelo SaaS, quando o software não está sendo usado, não está sendo pago e o usuário pode usar o editor em casa ou no escritório, sob a mesma assinatura, pagando apenas pelo tempo de uso (TAURION, 2009).

O provedor faz todo o processo e atualizações assim como mantém a infraestrutura funcionando.

Há muitos tipos de softwares que se assemelham ao modelo do SaaS. Basicamente o software que executa uma tarefa simples sem a necessidade de interagir com outros sistemas faz dele candidatos ideais para o SaaS. Os clientes que não estão propensos a executar a programação de software, mas necessitam de aplicativos potentes podem também se beneficiar. Algumas destas aplicações incluem (VELTE, 2011):

• Gerenciamento de recursos do cliente (CRM); • Videoconferência;

• Gerenciamento de serviços de TI; • Contabilidade;

• Análise da web;

• Gerência do conteúdo web.

A ideia é que o usuário deixe de utilizar o software “de caixinha” ou “sob encomenda” e passe a comprar software de acordo com suas necessidades. Por exemplo: uma empresa de dez pessoas invés de encomendar um software, pode pagar uma taxa mensal para usar um software com a quantidade de usuários que ela precisa. Essas mensalidades são relativamente baixas e se encaixam melhor na realidade de pequenas e médias empresas (GONÇALVES, 2008).

Como o software está na web, ele pode ser acessado pelos usuários de qualquer lugar e a qualquer momento, permitindo mais integração entre unidades de uma mesma empresa ou outros serviços de software. Assim, novos recursos podem

(36)

ser incorporados automaticamente aos softwares sem que os usuários percebam estas ações, tornando a evolução e atualização transparente dos sistemas. O SaaS reduz os custos, pois é dispensada a aquisição de licenças de software, porém é cobrada uma taxa mensal baseada no número de funcionários que acessam o serviço (SOUSA, 2009).

Figura 4. Modelo de Serviço SaaS

Fonte: VELTE, 2012, p.173.

Dando um exemplo SaaS fornece um aplicativo ou uma parte de software do provedor de serviços (VELTE, 2012).

Outra maneira de pensar em SaaS é o serviço de e-mail baseado na web oferecido por empresas como Microsoft (Hotmail), o Google (Gmail) e o Yahoo (Yahoo Mail). Cada serviço de correio satisfaz os critérios básicos: o fornecedor (Microsoft, Yahoo, e assim por diante) hospeda todos os programas e dados em um local central, fornecendo aos usuários finais acesso aos dados e software, que é acessado através da World Wide Web (VELTE, 2012).

Um exemplo de SaaS é o Google Apps que oferece um conjunto grande de ferramentas para empresas, como e-mail, agenda, pacote Office, armazenamento de dados na nuvem, comunicador, etc. Ou também o Microsoft Office 365 que oferece o pacote completo de ferramentas Office (Word, Excel, PowerPoint, etc) na nuvem (KLEIN, 2013).

2.3.2 Plataforma como Serviço (PaaS)

Oferece uma infraestrutura de alto nível de integração para implementar e testar aplicações na nuvem. O usuário não administra ou controla a infraestrutura

(37)

subjacente, incluindo a rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre as aplicações implantadas e, possivelmente, as configurações de aplicações hospedadas nesta infraestrutura. A plataforma PaaS oferece um sistema operacional, linguagens de programação e ambientes de desenvolvimento para as aplicações, auxiliando a implementação de software, já que contém ferramentas de desenvolvimento e colaboração entre desenvolvedores (SOUSA, 2009).

Fornece todos os recursos necessários para construir aplicativos e serviços diretamente da Internet, sem precisar baixar ou instalar software. Os serviços PaaS incluem design de aplicativos, desenvolvimento, testes, implantação e hospedagem (VELTE, 2010).

A PaaS oferece uma infraestrutura de alto nível para implementar e testar aplicações na nuvem. O usuário não controla a infraestrutura, incluindo rede, servidores, sistema operacional ou armazenamento, mas tem controle sobre as aplicações implantadas e, possivelmente, as características das aplicações hospedadas nesta infraestrutura. A PaaS fornece um sistema operacional, ambientes de desenvolvimento para aplicações e linguagens de programação para aplicações, auxiliando a implementação de sistemas de software, que contém ferramentas de desenvolvimento e colaboração entre desenvolvedores (SOUSA, 2009).

Os prestadores de serviços que produzem um PaaS, por exemplo, podem construir essa plataforma tendo em vista a integração de um sistema operacional, de um middleware, de um ambiente de desenvolvimento e de softwares de aplicação. Os prestadores de serviços que usarão essa plataforma irão ver como uma API. Eles irão interagir com a plataforma através da API sem ter a preocupação de gerenciar os recursos, o que torna o processo de desenvolvimento de aplicações mais rápido e simples. Por outro lado, esses prestadores de serviços ficam limitados pelas capacidades que a plataforma pode oferecer (SUN, 2009).

Um ponto negativo do PaaS é a falta de interoperabilidade e portabilidade entre os fornecedores. Isto é, se o usuário criar um aplicativo com um determinado fornecedor de nuvem e decidir trocar para outro provedor, isso não poderá ser feito a não ser que se pague um preço muito elevado. Além disso, se o provedor sai do negócio, as aplicações e os dados são perdidos (VELTE, 2010).

(38)

Figura 5. Modelo de Serviço PaaS

Fonte: VELTE, 2012, p.14.

Na figura 5 PaaS permite ao cliente acessar uma plataforma computacional sobre uma solução de cloud computing (VELTE, 2012).

Um exemplo de PaaS é o Google App Engine, oferece ferramentas e frameworks para desenvolvimento de aplicações e componentes de solução como o Compute Engine (computação) e o Cloud Storage (armazenamento), entre outros (KLEIN, 2013).

2.3.3 Infraestrutura como Serviço (IaaS)

O IaaS é a parte responsável por prover toda a infraestrutura necessária para a PaaS e o SaaS.

È o serviço oferecido na camada de infraestrutura. Estes serviços incluem servidores, sistemas de armazenamento, roteadores e outros sistemas que são agrupados e padronizados a fim de serem disponibilizados pela rede. É importante salientar que são os prestadores de infraestrutura que, através da virtualização, oferecem esses serviços por demanda aos prestadores de serviços. (SOUSA, 2009) (VAQUERO, 2009).

O provedor oferece a infraestrutura de armazenamento e processamento, e tem como objetivo principal facilitar o fornecimento de recursos de computação necessários para criar um ambiente de aplicação. O usuário não administra ou

(39)

controla a infraestrutura, mas tem controle sobre os sistemas operacionais, armazenamentos e aplicativos implantados (SOUSA, 2010).

A computação de Alto Desempenho (High-Performance Computing) pode-se beneficiar com as nuvens que proveem IaaS, uma vez que esse tipo de computação exige um grande processamento (SUN, 2009).

É importante salientar que neste modelo praticamente toda a tarefa de manutenção da aplicação até o sistema operacional fica a cargo do contratante. A vantagem disso é não ter que manter o “datacenter” propriamente dito. O contratante não precisa se preocupar com a atualização de hardware, infraestrutura de rede física, cabeamento e segurança física do datacenter (PIGATTO, 2009).

O nível de infraestrutura de software fornece recursos fundamentais para camadas de nível superior, permitindo a criação de novos ambientes de software ou novas aplicações. De acordo com Youseff (2008), este nível pode ser organizado em: recursos computacionais, armazenamento de dados e comunicação (PIGATTO, 2009).

• Recursos computacionais: Neste nível, máquinas virtuais (virtual machines) é a melhor maneira de oferecer recursos computacionais, já que oferecem ao usuário maior flexibilidade, uma vez que ele normalmente possui permissão total para o uso da máquina virtual, estando apto a personalizar o software e obter maior performance e eficiência.

• Armazenamento de Dados: O segundo recurso de infraestrutura é o armazenamento de dados, o qual permite ao usuário armazenar seus dados em discos remotos e acessá-los a qualquer momento e de qualquer lugar. Este serviço é comumente conhecido como DaaS – Data-Storage as a Service (armazenamento de Dados como Serviço).

• Comunicação: Uma vez que a necessidade de garantia de QoS – Quality of servisse (Qualidade de Serviço) para uma rede de comunicação cresce ao tratar-se de um sistema em nuvem, a comunicação se torna um componente vital da infraestrutura em questão. Em consequência disto, estes sistemas possuem a obrigação de fornecer certas capacidades de comunicação, orientada a serviço, configuráveis, programáveis, previsíveis e confiáveis.

(40)

Um exemplo típico de IaaS é o Amazon EC2. A Amazon é hoje a líder global em serviço de Cloud Computing, e o EC2 (Elastic Compute Cloud) é um “serviço da Web que fornece uma capacidade de computação redimensionável na nuvem”. Com o EC2 é possível dimensionar máquinas virtuais de acordo com a demanda e paga-se somente a capacidade utilizada (KLEIN, 2013).

Figura 6. Modelo de Serviço IaaS

Fonte: VELTE, 2012, p.15.

Na figura 6, a representação de um modelo de serviço IaaS, onde permite que os provedores de serviço aluguem recursos de hardware.

2.3.4 Comparação entre os tipos de serviços.

Tabela 1. Modelos de Serviços.

(41)

2.3.5 Outros Modelos de Serviço

Atualmente a computação em nuvem é dividida em sete tipos. Nesta seção serão abordados os outros modelos de serviço da computação em nuvem.

• DevaaS (desenvolvimento como serviço) são as ferramentas de desenvolvimento na nuvem como ferramentas compartilhadas, ferramentas de desenvolvimento web-based e serviços baseados em mashup (SILVA, 2013).

• CaaS (Comunicação como Serviço) é uma solução de comunicação Unificada hospedada em Data Center do provedor ou fabricante, pode ser alugado a partir de um único fornecedor. Tais comunicações podem incluir voz sobre ip (VoIP), mensagens instantâneas (IM), aplicações de videoconferência usando dispositivos fixos ou móveis (ROUSE, 2013).

• EaaS (Tudo como serviço) como o próprio nome diz, é quando se utiliza tudo, infraestrutura, plataformas, software, suporte, enfim, tudo o que envolve a Tecnologia da Informação e Comunicação como um serviço (SILVA, 2013).

• DBaas (Banco de dados como serviço) é um banco de dados executado em uma plataforma de computação em nuvem, como a Amazon EC2. Existem dois modelos de implantação: os usuários podem executar bancos de dados na nuvem de forma independente, ou podem comprar o acesso a um serviço de banco de dados, mantido por um provedor de banco de dados na nuvem (SCALEDB, 2012).

2.4 Tipos de Nuvens

Tratando-se do acesso e da disponibilidade de ambientes de computação em nuvem, têm-se tipos diferentes de implantação. A restrição ou abertura de acesso depende do processo de negócios, do tipo de informação e do nível de visão desejado. Pode-se perceber que certas empresas não desejam que todos os usuários possam acessar e utilizar determinados recursos no seu ambiente de computação em nuvem. Dessa forma, surge a necessidade da criação de ambientes

(42)

mais restritos, onde somente alguns usuários devidamente autorizados possam utilizar os serviços providos. Então neste sentido, podemos afirmar que existem três tipos de ofertas de computação em nuvem (TAURION, 2009).

As nuvens podem ser classificadas em três tipos básicos: públicas, privadas, híbridas e comunidade. A escolha entre elas depende das necessidades das aplicações que serão implementadas (DIKAIAKOS, 2009).

O termo nuvem é uma metáfora usada para a internet e é uma representação simplificada da complexidade que esta se encontra, onde dispositivos são interconectados formando a internet. Nuvens privadas e públicas são subconjuntos da internet e são definidas com base na relação do usuário com a empresa. Nuvens privadas e nuvens públicas também podem ser referidas como nuvens internas ou externas, a diferenciação é baseado na relação da nuvem com a empresa (MATHER, 2009).

Os conceitos de nuvens públicas e privadas são importantes porque suportam a computação em nuvem, permite o provisionamento da dinâmica, são escaláveis e possuem recursos virtualizados através da internet. Os usuários finais que utilizam os serviços oferecidos via computação em nuvem podem não ter conhecimento, experiência, ou controle sobre infraestrutura tecnológica que os suporta (MATHER, 2009).

A computação em nuvem pode ser divido em quatro tipos básicos de implementação: pública, privada, híbrida e a comunidade. Como mostra a Figura 7 abaixo.

Figura 7 – Modelos de Implantação

(43)

2.4.1 Nuvem Pública

Na nuvem pública, a infraestrutura é disponibilizada para terceiros, sendo necessário para acesso somente que o usuário conheça a localização do serviço. Neste modelo de nuvem, não pode ser aplicada qualquer restrição de acesso quanto ao gerenciamento de redes, nem utilizar técnicas para autenticação e autorização (SOUSA, 2009).

Neste modelo as aplicações de diversos usuários ficam misturadas nos sistemas de armazenamento, o que a principio pode parecer ineficiente. Porém, se para a implementação de uma nuvem pública considera questões fundamentais, como desempenho e segurança, a existência de outas aplicações sendo executadas na mesma nuvem permanece transparente tanto para os prestadores de serviços como para os usuários (CHIRIGATI, 2009).

Nuvens públicas descrevem a computação em nuvem, no sentido convencional, onde os recursos são dinamicamente provisionados em uma refinada base de dados de autosserviço através da Internet, aplicações web ou serviços web, a partir de um site, provedor de terceiros que compartilham recursos e as contas em uma granulação fina, com base utility computing (MATHER, 2009).

Ela está hospedada, operando e sendo gerenciada por um fornecedor terceirizado. O serviço é oferecido a vários clientes que utilizam desta mesma infraestrutura (MATHER, 2009).

Em termos simples, o serviço de nuvem pública é caracterizado por estar disponível para os clientes a partir de um provedor de serviços terceirizado através da internet. O termo “público” não significa que os dados do usuário estão visíveis a qualquer um. Fornecedores de uma nuvem pública normalmente fornecem um controle de acesso para seus usuários. As nuvens públicas oferecem uma elasticidade de baixo custo e fácil implementação (AHRONOVITZ, 2010).

São serviços em nuvem fornecidos por terceiros (fornecedores). Elas existem além do firewall da empresa e são completamente hospedadas e gerenciadas pelo provedor da nuvem (AMRHEIN, 2009).

Uma nuvem pública pode estar sendo hospedada, operada e gerida por um fornecedor terceirizado de um ou mais centro de dados. O serviço é oferecido a múltiplos clientes sobre uma infraestrutura em comum (MATHER, 2009).

Referências

Documentos relacionados

3.5. As inscrições deverão ser realizadas por meio da página do prêmio a partir do dia. As inscrições incompletas ou com relatos incompletos ou no formato inadequado

Os bónus de equipa dentro do plano de níveis são pagas mensalmente em volume de reencomendas (vendas de todos os parceiros após o Faststart).. Compressão de

O cinema mantém até hoje uma estreita relação com o meio teatral. Os dois requisitos básicos para o bom critério destas artes cênicas são: o artifício de

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Na apresentação dos dados estatísticos, ficou demonstrada à todos os participantes a dimensão da pesquisa, abrangendo o setor produtivo como um todo, enfocando a produção

O toxicômano não suporta qualquer coisa que barre seu gozo, não tolera a frustração, suprimindo-a pelo objeto droga e, a partir de então, encontrando uma solução para

A incorporação ao Sistema Interligado Nacional (SIN) da Interligação Sudeste/Nordeste, em 2003, composta pelos circuitos 500kV Serra da Mesa – Rio das Éguas – Bom