Sie sind auf Seite 1von 131

RAFAEL DA SILVA MOREIRA

RICARDO MEGALE BAUMGARTNER

DESENVOLVIMENTO EM CLOUD COMPUTING

UNIVERSIDADE DO VALE DO SAPUCA


POUSO ALEGRE MG
2013
RAFAEL DA SILVA MOREIRA
RICARDO MEGALE BAUMGARTNER

DESENVOLVIMENTO EM CLOUD COMPUTING

Trabalho de concluso de curso apresentado


ao Curso de Sistemas de Informao da
Universidade do Vale do Sapuca para a
obteno do ttulo de Bacharel em Sistemas
de Informao sob a orientao do professor
Ednardo David Segura.

UNIVERSIDADE DO VALE DO SAPUCA


POUSO ALEGRE MG
2013
Dedicamos,

As nossas famlias, amigos e professores que


foram muito importantes em nossa vida
acadmica, nos ajudando nessa conquista.
AGRADECIMENTOS

Ao Prof. Ednardo David Segura, por sua orientao competente e pelos estmulos constantes
ao longo desta caminhada.

De Ricardo Megale Baumgartner:


Agradeo em primeiro lugar a Deus que me iluminou durante esta caminhada. Agradeo
tambm de forma especial minha me, Sandra, pois foi quem sempre fez todo o possvel para
que eu chegasse aonde cheguei, minha irm Luciana, pois com quem sei que posso contar em
qualquer situao. Minha namorada Marina, que de muitas formas sempre me deu foras e
coragem com apoio nos momentos de dificuldade. E meu companheiro Rafael que caminhou
comigo nestes longos meses de trabalho.

De Rafael da Silva Moreira:


Agradeo em primeiro lugar a Deus que me iluminou e me deu foras e coragem durante esta
caminhada. Aos meus pais (Nelson da Silva Moreira e Darcy Ribeiro de Lima Moreira), que
sempre me apoiaram. Minha irm (Juliana Lima Moreira) e minha namorada (Aline Raquel
do Esprito Santo) que sempre estiveram do meu lado me apoiando e me dando foras para
seguir essa caminhada. Tambm agradeo ao meu companheiro de trabalho (Ricardo Megale
Baumgartener) e a todos os professores do curso, que foram to importantes na minha vida
acadmica.
O nico lugar onde o sucesso vem antes do
trabalho no dicionrio.

(Albert Einstein)
BAUMGARTNER, Ricardo Megale; MOREIRA, Rafael da Silva. Desenvolvimento em
Cloud Computing. 2013. Curso de Sistemas de Informao, Universidade do Vale do
Sapuca, Pouso Alegre, 2013.

RESUMO

A necessidade de acesso a recursos de forma rpida, com baixo custo fez surgir o cloud
computing, um modelo computacional que permite a utilizao de recursos apenas na
quantidade e tempo que forem necessrios. Pelo fato de esse modelo ser uma tendncia para a
rea de tecnologia da informao, o objetivo desta pesquisa mostrar os conceitos, as
vantagens e desvantagens, os riscos e as possibilidades que ele oferece, documentando teorias
e definies. A partir de toda a pesquisa realizada foi possvel alm da compreenso de seu
funcionamento, tambm a criao de uma aplicao que utilizasse esses conceitos e teorias.
Para que, alm de documentadas, elas fossem demonstradas.

Palavras-chave: Modelos de servio, Nuvem, Cloud, Cloud Computing, Computao em


Nuvem, Modelos de Implantao, Modelos de Servios, Nuvem Hbrida, Nuvem Pblica,
Nuvem Privada, Escalabilidade, Amazon Web Services, Windows Azure, Google AppFabric.
BAUMGARTNER, Ricardo Megale; MOREIRA, Rafael da Silva. Desenvolvimento em
Cloud Computing. 2013. Curso de Sistemas de Informao, Universidade do Vale do
Sapuca, Pouso Alegre, 2013.

ABSTRACT

The requiring access to quickly resources, with low cost and without the need for physical
equipment has raised the cloud computing, a computational model that allows the use of
resources in the quantity and time needed. Because this model is an Information Technology
tendency, the objective of this resource is show the concepts, the advantages and
disadvantages, the risks and possibilities that it offers, documenting theories and definitions.
From all the research done was possible further the understand its functioning, also creating
an application that utilizes this concepts and theories. For besides documented they were
demonstrated.

Palavras-chave: Modelos de servio, Nuvem, Cloud, Cloud Computing, Computao em


Nuvem, Modelos de Implantao, Modelos de Servios, Nuvem Hbrida, Nuvem Pblica,
Nuvem Privada, Escalabilidade, Amazon Web Services, Windows Azure, Google AppFabric.
LISTA DE ABREVIATURAS E SIGLAS

ACL Access Control List.


AWS Amazon Web Services.
CSA Cloudy Security Alliance.
CSS Cascade Style Sheet.
DNS Domain Name System.
DOM Document Object Model.
EBS Elastic Block Store.
EC2 Elastic Compute Cloud.
EMR Elastic Map Reduce.
FAI Faculdade de Administrao e Informtica.
GAE Google AppEngine.
GLP General Public License.
HTML Hypertext Markup Language.
HTTP Hypertext Transfer Protocol.
IAAS Infrastructure as a Service.
IAM Identity and Access Management.
ID Identidade.
IDE Integrated Developement Enviroment.
IFE Instituto Federal de Educao, Cincia e Tecnologia.
IIS Internet Information Services.
IP Internet Protocol.
MIT Massachusetts Institute of Tecnology.
NTFS New Technology File System.
PDO PHP Data Objects.
PHP Hypertext Preprocessor.
PAAS Platform as a Service.
RAM Random Access Memory.
RDS Relational Database Service.
S3 Simple Storage Service.
SAAS Software as a Service.
SDB Simple Database.
SDK Software Development Kit.
SES Simple Email Service.
SLA Service Level Agreement.
SMTP Simple Mail Transfer Protocol.
SNS Simple Notification Service.
SOAP Simple Object Access Protocol.
SQS Simple Queue Service.
SVN Subversion.
UNIFEI Universidade Federal de Itajub.
UNIVS Universidade do Vale do Sapuca.
VPC Virtual Private Cloud.
W3C World Wide Web Consortium.
XML Extensible Markup Language.
LISTA DE FIGURAS

Figura 1 Cdigo exemplo de uma estrutura HTML .............................................................. 19


Figura 2 Sintaxe CSS............................................................................................................. 22
Figura 3 Exemplo de PHP inserido no HTML ...................................................................... 23
Figura 4 Plataforma como servio ......................................................................................... 30
Figura 5 Modelos de servios da computao em nuvem ..................................................... 31
Figura 6 Modelos de servios ................................................................................................ 31
Figura 7 Modelos de implantao ......................................................................................... 33
Figura 8 Principais componentes e servios do Windows Azure .......................................... 39
Figura 9 Funcionamento das roles ......................................................................................... 40
Figura 10 Funcionamento dos blobs...................................................................................... 41
Figura 11 Funcionamento do tables ...................................................................................... 42
Figura 12 Funcionamento das queues ................................................................................... 42
Figura 13 Viso geral do Azure Virtual Network .................................................................. 44
Figura 14 Roteamento do Traffic Manager ........................................................................... 45
Figura 15 Principais componentes ......................................................................................... 46
Figura 16 Estudo de caso com CloudFront ........................................................................... 48
Figura 17 Arquitetura de um sistema no GAE. ..................................................................... 55
Figura 18 Ciclo de vida do programa de conscientizao ..................................................... 58
Figura 19 Funcionamento do servidor ................................................................................... 60
Figura 20 Aplicao implantada no Elastic Beanstalk .......................................................... 63
Figura 21 Arquitetura Elastic Beanstalk ................................................................................ 64
Figura 22 Instncia criada no RDS ........................................................................................ 64
Figura 23 Configurao da IDE para acesso ao RDS. ............................................................ 65
Figura 24 Efetuando copia de um snaphost para outra regio. .............................................. 66
Figura 25 Aplicao desenvolvida. ........................................................................................ 67
Figura 26 Arquitetura de usurio utilizando os recursos AWS .............................................. 68
Figura 27 Cdigo PHP pra criao do bucket no S3 ............................................................. 69
Figura 28 Buckets de usurios no S3. ..................................................................................... 69
Figura 29 Cdigo PHP para criao de lbuns e arquivos. ................................................... 70
Figura 30 lbuns e fotos criados pela aplicao ................................................................... 70
Figura 31 Cdigo PHP para excluso de lbuns e arquivos. ................................................. 71
Figura 32 Painel de configurao do Elastic Beanstalk ........................................................ 72
Figura 33 Instncia criada no EC2. ....................................................................................... 73
Figura 34 Painel de estatstica da instncia ........................................................................... 74
Figura 35 Estatsticas de uso da aplicao com uma instncia............................................... 74
Figura 36 Configuraes de escalabilidade. .......................................................................... 75
Figura 37 Estatsticas de uso da aplicao com uma instncia.............................................. 75
Figura 38 Criao da segunda instncia. ............................................................................... 76
Figura 39 Estatsticas de uso da aplicao com duas instncias............................................ 76
Figura 40 Segunda instncia sendo terminada. ..................................................................... 76
SUMRIO

INTRODUO ........................................................................................................................ 13
2. QUADRO TERICO ........................................................................................................... 17
2.1 CLOUD COMPUTING...................................................................................................... 17
2.2 SEGURANA DA INFORMAO ................................................................................. 18
2.3 TECNOLOGIAS USADAS NA APLICAO DA PESQUISA ..................................... 18
2.3.1 HYPERTEXT MARKUP LANGUAGE (HTML) ......................................................... 19
2.3.2 JAVASCRIPT ................................................................................................................. 20
2.3.3 JQUERY .......................................................................................................................... 21
2.3.4 CASCADING STYLE SHEET (CSS) ............................................................................ 22
2.3.5 PHP .................................................................................................................................. 23
3 QUADRO METODOLGICO ............................................................................................. 25
3.1 TIPOS DE PESQUISA....................................................................................................... 25
3.2 CONTEXTOS DA PESQUISA ......................................................................................... 26
3.3 INSTRUMENTOS ............................................................................................................. 26
3.4 PROCEDIMENTOS........................................................................................................... 27
3.4.1 PLANEJAMENTO.......................................................................................................... 27
3.5 CARACTERSTICAS DO CLOUD COMPUTING ......................................................... 27
3.6 MODELOS DE SERVIOS .............................................................................................. 29
3.7 MODELOS DE IMPLANTAO .................................................................................... 32
3.8 SEGURANA .................................................................................................................... 33
3.8.1 CONTROLES DE SEGURANA .................................................................................. 34
3.8.2 PADRES DE SEGURANA DA FEDERAO ....................................................... 35
3.8.3 SLA.................................................................................................................................. 36
3.8.4 FATORES DE SEGURANA NA MIGRAO PARA NUVEM ............................... 36
3.8.5 OUTRAS QUESTES DE SEGURANA .................................................................... 37
3.9 PLATAFORMAS DE DESENVOLVIMENTO ................................................................ 38
3.9.1 WINDOWS AZURE ....................................................................................................... 38
3.9.2 AWS AMAZON .............................................................................................................. 45
3.9.3 GOOGLE APP ENGINE ................................................................................................ 55
3.10 ESTUDOS DE CASO ...................................................................................................... 57
3.10.1 GRUPO ING ................................................................................................................. 57
3.10.2 GOL LINHAS AREAS ............................................................................................... 59
3.10.3 PEIXE URBANO .......................................................................................................... 61
3.10.4 FOURSQUARE ............................................................................................................ 61
3.11 DESENVOLVIMENTO DO SOFTWARE ..................................................................... 62
3.12 IMPLANTAO ............................................................................................................. 63
3.13 MIGRAO ENTRE REGIES..................................................................................... 65
3.14 RESULTADOS ................................................................................................................ 67
4 DISCUSSO DOS RESULTADOS ..................................................................................... 73
5 CONSIDERAES FINAIS ................................................................................................ 77
REFERNCIAS ....................................................................................................................... 78
INTRODUO

Todas as reas de conhecimento sofrem alteraes ao longo do tempo, sejam pela


mudana do modo em que as pessoas interagem com o mundo ou pela inveno de uma nova
tecnologia, seja pela descoberta de novos recursos ou pela escassez deles. Com a rea da
tecnologia no diferente e uma dessas mudanas, que est transformando o modo como
consumimos a tecnologia, j comeou (TAURION, 2010).
O uso de computadores principalmente com conexo internet se tornou muito
presente na vida das pessoas. Com a rpida evoluo das tecnologias de comunicao,
possvel encontrar conexo internet com altas velocidades e preos acessveis, criando um
cenrio favorvel para a utilizao da computao em nuvem.
Cloud computing, que na sua traduo para o portugus significa Computao em
Nuvem, descrita como o uso de recursos computacionais (hardware e software) que so
oferecidos como um servio atravs de uma rede, geralmente a internet (GUIMARES,
2012).
A grande caracterstica que distingue o cloud computing do modelo convencional de
entrega de recursos de computao (processamento, espao em disco e etc.) a escalabilidade
deles. De acordo com a necessidade em que forem requisitados esses recursos sero
entregues, podendo ser em grande quantidade, assim como em um momento de ociosidade
podero ser entregues de forma reduzida.
Esses recursos so disponibilizados atravs de data centers1 onde as aplicaes so
implementadas e usam os recursos que so disponibilizados para o processamento,
armazenamento e controle da aplicao. Com isso o usurio necessita apenas de um simples
hardware2 com uma boa conexo com a internet para acessar as aplicaes a qualquer hora e
lugar (TAURION, 2010).
Atualmente as empresas que disponibilizam esse servio com melhor qualidade e
maior diversificao so a Google com o Google Apps, Microsoft com o Azure e a Amazon
com o AWS. Com destaque para a ltima que, alm de oferecer suporte para as principais
linguagens de programao, tambm disponibiliza seus servios de forma independente uns
dos outros.

1
Data Centers so centrais de armazenamento e processamento de dados onde vrios servidores so alocados.
2
Hardware a parte fsica de um computador formada pelos componentes eletrnicos.
Esse novo modelo pode reduzir custos, pois sistemas de gerenciamento mais robustos
no mais necessitaro de grandes recursos fsicos como servidores potentes e uma rede bem
estruturada para serem implantados. O processamento dos dados ser feito na nuvem pelos
servidores e entregue ao computador que requisitou atravs do navegador de internet
(TAURION, 2009).
O fato de ser possvel acessar as aplicaes de qualquer local pode facilitar a
disposio de uma empresa espalhada geograficamente permitindo, por exemplo, a integrao
sem a necessidade de uma grande infraestrutura e gastos com manuteno, diminuindo os
custos e riscos que podem ocorrer quando se tem uma estrutura de comunicao complexa.
Como o acesso a essas aplicaes no requer compatibilidade com o sistema
operacional instalado, possvel utilizar a aplicao tanto no Windows como no Linux ou
IOS no sendo necessria a troca de equipamentos ou de sistemas operacionais por
incompatibilidade.
A computao em nuvem confundida s vezes com a computao em grade (Grid
Computing), pois as duas tecnologias visam flexibilidade atravs de recursos ociosos de
vrios computadores. A grande diferena a alocao de recursos que, na computao em
nuvem, so alocados conforme a demanda e na computao em grade feita uma distribuio
por igual desses recursos (TAURION, 2009).
A segurana dos dados sempre foi uma preocupao global na rea tecnolgica. O
risco existe em computadores pessoais, tablets, celulares e em grandes empresas. Todos esto
vulnerveis e isso no diferente quando se utiliza o cloud computing. Em um documento
feito pela CSA (Cloud Security Alliance) foram listadas e descritas grandes ameaas
segurana da computao em nuvem na atualidade.
Dentre elas esto questes importantes, como violao e perda dos dados, maior
facilidade de interceptao de informaes por conta de trafegarem na internet e a perda de
credenciais de acesso, que poderiam prejudicar de forma irreversvel uma organizao.
Essa uma questo primordial e delicada para a computao em nuvem, pois ir
influenciar no rumo desse modelo. A escolha da utilizao do cloud computing deve levar em
conta o grau de necessidade de uso do sistema. Quando preciso ter certeza da localizao
dos dados e disponibilidade total da aplicao, sem depender da conexo com a internet ou ter
nveis maiores de segurana deve-se considerar uma nuvem privada (TAURION, 2009).
Esse novo modelo j despertou o interesse de muitas pessoas, como Edin (2011) que
elaborou um trabalho em que comenta as vantagens e desvantagens da computao em nuvem

14
explicando a arquitetura, os modelos e duas das principais plataformas de desenvolvimento
em cloud computing. Tambm realizou um comparativo entre a Amazon AWS e o Microsoft
Azure. Nesse comparativo ele constata que o Azure por ter uma plataforma onde fornece
integradas todas as ferramentas necessrias para o desenvolvimento, torna mais fcil o
gerenciamento das instncias e aplicaes implantadas no servidor, mas suporta uma
quantidade menor de linguagens de programao. Tambm viu que a Amazon fornece a
infraestrutura primria, com acesso sob demanda s instncias de mquinas virtuais
personalizveis e tem suporte a um nmero maior de linguagens para programao.
Hsu (2009) apresentou um estudo de caso com os diversos conceitos em relao ao
cloud computing, debatendo sobre a implantao desse modelo na empresa Pathwork que
necessitava suprir sua necessidade de processamento. Ele ressalta os benefcios obtidos nessa
implantao como economia e maior capacidade computacional sem precisar investir em
infraestrutura.
Melo (2009) tambm mostrou os conceitos que definem o que a computao em
nuvem, destacando suas vantagens, desvantagens e os principais servios da nuvem. Tambm
citou sobre a segurana, confiabilidade e as empresas que oferecem esse servio.
Muitos j documentaram e estudaram esse novo modelo computacional e pelo fato de
a tecnologia evoluir de um modo muito rpido, pensou-se ser vlido estudar novamente esses
conceitos para criar um estudo mais recente. Pesquisas anteriores no demonstraram esse
modelo em funcionamento, por isso esta pesquisa tem o objetivo geral de estudar os principais
conceitos do cloud computing e demonstrar esse modelo em uso. Para o alcance dele foram
seguidos alguns passos:

Mostrar as vantagens e desvantagens desse modelo computacional em relao ao


modelo tradicional;
Estudar os modelos de implantao e de servios;
Analisar casos de uso para mostrar algumas possibilidades da computao em nuvem;
Analisar os aspectos de segurana dos dados nesse modelo;
Desenvolver uma aplicao para demonstrar o uso desse modelo computacional.

O estudo para o conhecimento dessa plataforma justifica-se pela reduo de recursos


materiais e financeiros necessrios para empresas de qualquer segmento, pois permitir a

15
contratao de sistemas mais robustos utilizando menos recursos computacionais, barateando
vrias tecnologias, deixando-as mais acessveis para a populao.
Esse modelo computacional permite ainda que projetos carentes, de incluso social,
escolas ou rgos pblicos, possam ter acesso a vrias tecnologias com um gasto muito
menor, possibilitando que eles tenham melhor qualidade, beneficiando a sociedade. Com a
reduo da infraestrutura de hardware necessria para esse modelo, a quantidade de lixo
tecnolgico gerado ser drasticamente reduzida, sendo um aliado para um desenvolvimento e
uma sociedade sustentvel.
Com a documentao dos principais conceitos e da utilizao das principais
ferramentas do cloud computing como o uso dos recursos sob demanda, utilizao de banco
de dados, criao de instncias, redes virtuais dentre outras, espera-se que este projeto possa
ser utilizado como auxlio em estudos ou pesquisas sobre o assunto abordado.
O trabalho se divide em quatros captulos. Sendo o primeiro capitulo uma introduo
sobre o tema que ser abordado mostrando conceitos bsicos e o objetivo dessa pesquisa. O
segundo captulo apresenta as teorias e descries de ferramentas utilizadas para a
demonstrao da pesquisa. O terceiro captulo demonstra o tipo e o contexto da pesquisa, os
instrumentos para produo de dados e os procedimentos. No quarto e quinto captulo
encerrou-se com a discurso de resultados que traz, como contedo, o que foi alcanado com
os estudos por trs desta pesquisa. Por fim so apresentadas as referncias utilizadas para a
formao deste documento.

16
2. QUADRO TERICO

Neste tpico sero abordadas as principais ferramentas, conceitos, caractersticas,


modelos de implantao, modelos de servios, questes de segurana e estudos de caso, assim
como as linguagens PHP, JavaScript, HTML e CSS suportadas pelos servidores para o
desenvolvimento em nuvem e foram utilizadas na aplicao deste projeto.

2.1 Cloud Computing

Quando o termo computao em nuvem apareceu pela primeira vez, descobriu-se uma
forma de computao rpida. Uma analogia muito utilizada foi a da eletricidade que gerada
por vrios fornecedores, entregue sob demanda e paga pela quantidade usada. Esse foi o
conceito que deu origem s nuvens pblicas que fornecem recursos de computao na forma
comumente chamada infrastructure-as-a-service (IaaS). As nuvens pblicas no atendem a
todos os clientes principalmente em questes de segurana, por esse motivo surgiram nuvens
privadas e hbridas (HADHAT, 2012).
O preo das mquinas virtuais muito baixo, por isso usurios e desenvolvedores
podem, por meio de pagamento eletrnico, ter acesso e alocar esses recursos instantaneamente
no sendo necessria a espera por meses para um novo servidor ser montado e estar
disponvel (HADHAT, 2012).
Muitas organizaes ainda no esto prontas pra mover todas suas aplicaes para
provedores de nuvens pblicas. Em geral, isso ocorre por causa de conceitos em torno de
conformidade e governana, por isso existem vrios aspectos de segurana e modelos de
servios que devem ser analisados para a escolha da utilizao ou no dessa tecnologia
(HADHAT, 2012).

17
2.2 Segurana da informao

Quando as informaes eram armazenadas apenas em papel, a segurana era mais


simples, pois trancar os documentos e restringir o acesso fsico quele local era relativamente
simples. Com o avano tecnolgico e o uso de computadores, a segurana ficou um pouco
mais complicada. Com isso a segurana atingiu uma complexidade muito grande e a
necessidade de desenvolvimento de equipes e de mtodos de segurana cada vez mais
sofisticados se tornou essencial. Junto a isso, os sistemas de informao tambm adquiriram
uma grande importncia para a maioria das organizaes, j que, sem computadores e redes
de comunicao, a prestao de servios de informao torna-se praticamente impossvel
(ARTHUR, 2009).
Por isso o uso de alguns mtodos para garantir a segurana dos dados trafegados
nessas redes se tornou indispensvel. Existem alguns aspectos a serem analisados como:

Anlise de riscos;
Poltica de segurana;
Controle de acesso fsico e lgico;
Treinamento e conscientizao dos funcionrios;
Plano de contingncia;

A informao o patrimnio mais valioso de uma empresa e levar a srio a segurana


dessas informaes fundamental. Se todos os envolvidos no processo de manipulao desse
patrimnio seguirem as regras, os riscos diminuem consideravelmente (ARTHUR, 2009).

2.3 Tecnologias usadas na aplicao da pesquisa

Aqui sero abordadas as linguagens de desenvolvimento usadas para o


desenvolvimento dessa pesquisa explicando-as e mostrando suas principais ferramentas.

18
2.3.1 Hypertext Markup Language (HTML)

HTML (Hypertext Markup Language) que, traduzindo, significa linguagem para


marcao de hipertexto, foi criada na dcada de noventa por Tim Barners-Lee. As
especificaes da linguagem so controladas pela W3C3 a fim de padronizar o uso dela
(SILVA, 2011).
Essa linguagem foi criada princpio, com objetivo de divulgao, porm no se
imaginava que futuramente a utilizao cresceria de maneira exorbitante. Essa evoluo do
HTML fez com que surgisse uma serie de bugs que necessitaram de correes. Com isso
foram incorporadas novas tecnologias como o CSS e JavaScript, que sero abordadas adiante
(ALVAREZ, 2004)
O HTML uma linguagem usada para a estruturao de uma pgina web e limita-se a
criar os rtulos e campos de um formulrio para serem preenchidos pelos usurios e nada
mais, no sendo usada para empregar estilos, funcionalidades ou efeitos visuais. A Figura 1
mostra um exemplo de uma estrutura HTML (SILVA, 2011).

Fig. 1 Cdigo exemplo de uma estrutura HTML Fonte: Elaborado pelo autor.

Nesse exemplo podemos identificar algumas das principais tags para documentos
HTML.

3
W3C Abreviao para World Wide Web Consortium.
19
<html> define o incio do documento. Indica ao navegador que o contedo entre essas
tags devem ser tratadas como cdigo;
<head> so etiquetas e contedo do cabealho;
<body> so etiquetas e contedo do corpo, contendo parte do documento que ser
mostrado pelo navegador, como textos e imagens;

Uma pgina HTML um arquivo que contm escrito todo o cdigo em modo texto.
Esse arquivo possui a extenso de .html ou .htm, no existindo diferena alguma entre qual
delas utilizar, porm aconselhado utilizar sempre a mesma extenso em todos os arquivos
para que no haja confuso (ALVAREZ, 2004).

2.3.2 JavaScript

O JavaScript uma linguagem de programao. Seu ncleo assemelha-se ao C, C++ e


Java que contm em seu ncleo as construes de programao como a instruo if, o lao
while e o operador &&. Essa linguagem interpretada com recursos de orientao a objetos e
o ncleo de utilizao geral da linguagem foi incorporado ao Netscape, Internet Explorer e
outros navegadores para programao web (GOODMAN, 2002).
Essa linguagem foi criada para dar interatividade a uma pgina web, fornecendo
funcionalidades aos botes e formulrios. Inicialmente foi desenvolvida para rodar no lado
cliente, mas atualmente existem interpretadores que possibilitam seu uso no lado servidor
tambm (SILVA, 2010).

20
2.3.3 jQuery

O jQuery uma biblioteca JavaScript de software livre e aberto, desenvolvida por


John Reisig. Essa biblioteca tem seu uso regido conforme as regras estabelecidas pelo MIT4 e
pela GPL5. Ela pode ser utilizada para projetos pessoais e comerciais (SILVA, 2012).
Essa biblioteca simplifica e muito o uso do JavaScript. Com ela, efeitos e
funcionalidades que gerariam confusas e numerosas linhas de cdigos, so possveis em
poucas linhas. Essa biblioteca bem descrita por Silva (2010, p. 25).

JQuery destina-se a adicionar interatividade e dinamismo s pginas web,


proporcionando ao desenvolvedor funcionalidades necessrias criao de scripts
que visem a incrementar, de forma progressiva e no obstrutiva, a usabilidade, a
acessibilidade e o design, enriquecendo a experincia do usurio.

O jQuery pode ser utilizado em um site para as seguintes funcionalidades:

Adicionar efeitos visuais e animaes;


Acessar e manipular o DOM6;
Buscar informaes no servidor sem necessidade de recarregar a pgina;
Prover interatividade;
Alterar contedos;
Modificar apresentao e estilizao;
Simplificar tarefas especficas de JavaScript;

Com isso entende-se que o jQuery uma biblioteca de extrema importncia, pois traz
recursos que minimizam as dificuldades em programao e geram grandes benefcios em um
site como adicionar interatividade e dinamismo as pginas web.

4
MIT Abreviao de Massachusetts Institute of Technology.
5
GPL Abreviao de General Public License.
6
DOM Abreviao para Document Object Model
21
2.3.4 Cascading Style Sheet (CSS)

O CSS a sigla para Cascading Style Sheet que, traduzido, significa efeitos de estilo
em cascata. definido como um modo simples e organizado de adicionar estilos, fontes e
posio para as marcaes, deixando o HTML com sua funo original de exclusivamente
fazer a marcao e estruturao dos contedos. Cabe ao CSS todas as funes de apresentao
da pgina web (SILVA, 2012). Segundo Miyagusku (2007, p. 8);

A funo principal das CSS , justamente, extrair a formatao de uma pgina do


cdigo HTML, separando-a do contedo propriamente dito (informaes).Alm de
aumentar o nvel de organizao, isso indica que elas podem definir, de antemo, a
formatao de todos os elementos de uma ou vrias pginas.

O CSS foi criado proveniente das deficincias e limitaes que o HTML passou a
apresentar. Com a necessidade de sites mais complexos, repletos de recursos e informaes, a
questo da formatao e manuteno de arquivos HTML passou a ficar complicada para os
programadores. Para resolver esse problema surgiu o CSS que separa as configuraes de
formataes do contedo do arquivo HTML. A configurao de formatao fica em um
arquivo parte. Abaixo a Figura 2 apresenta a sintaxe do CSS (MIYASGUSKU, 2012).

Fig. 2 Sintaxe CSS Fonte: http://www.maujor.com/tutorial/sintaxetut.php

A sintaxe de uma regra CSS est descrita no seletor apresentado acima. O elemento
antes das chaves { } (pargrafos, cabealhos, componentes de lista de tabelas entre outros)

22
indica o elemento da pgina HTML. Os atributos que esto dentro das chaves e seus
respectivos valores definem a formatao do elemento.
A utilizao do CSS fornece a certeza de que todo o site estar padronizado e
formatado, proporcionando uma enorme economia de trabalho, pois dispensa a repetio de
cdigo em cada arquivo HTML. Tambm o mesmo cdigo CSS pode ser reaproveitado para
definir o layout em outros arquivos HTML.

2.3.5 PHP

O PHP (Hypertext Preprocessor) uma linguagem de script de uso geral utilizada


especialmente para o desenvolvimento de aplicaes web dentro do HTML. A Figura 3 ilustra
um exemplo do PHP inserido no HTML.

Fig. 3 Exemplo de PHP inserido no HTML


Fonte: http://www.php.net/manual/pt_BR/intro-whatcando.php

Ao invs de muitos comandos para mostrar HTML, as pginas PHP contm o HTML
juntamente com seus cdigos, neste caso, mostra na tela a frase "Ol, Eu sou um script PHP!.
O cdigo delimitado por tags iniciais e finais (<?php e ?>) que permitem mudar do HTML
para a linguagem PHP.
O que distingui o PHP de algo como JavaScript no lado do cliente que o cdigo
executado no servidor, gerando HTML que ento enviado para o cliente. O cliente recebe os
resultados da execuo desse script, mas no sabe como o cdigo fonte.

23
O PHP uma linguagem de script do lado do servidor, portanto, possvel coletar
dados de formulrios, gerar pginas com contedo dinmico ou enviar e receber cookies7.
Existem alguns campos onde os scripts podem ser utilizados:

Script no lado do servidor (server-side);


Script de linha de comando;
Utilizado para aplicaes desktop;

Ele pode ser utilizado na maioria dos sistemas operacionais, incluindo Linux, variantes
Unix (incluindo HP-UX, Solaris e OpenBSD), Microsoft Windows, Mac OS X, RISC OS, e
outros. Tambm suportado pela maioria dos servidores web atuais, incluindo Apache,
Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet Servers,
Oreilly Website Pro Server, Caudium, Xitami, OmniHTTPd, e outros.

7
Cookies so grupos de dados trocados entre o navegador e o servidor de pginas, colocado num arquivo de
texto criado no computador.
24
3 QUADRO METODOLGICO

Neste captulo so abordados os mtodos adotados para conduzir a pesquisa. Nele so


definidos o tipo de pesquisa, o contexto da pesquisa, participantes e procedimentos para
desenvolvimento do projeto.

3.1 Tipos de pesquisa

Para atingir os reais objetivos desta pesquisa, foi utilizado um design que a caracteriza
como exploratria. Esse tipo de pesquisa permitiu um estudo para obter os conhecimentos
necessrios sobre o tema proposto.
Para Andrade (2007, p.111), Pesquisa o conjunto de procedimentos sistemticos,
baseado no raciocnio lgico, que tem por objetivo encontrar solues para problemas
propostos, mediante a utilizao de mtodos cientficos.
A pesquisa exploratria pode ser entendida como um estudo que tem como principal
objetivo descobrir ideias, percepes, gerar hipteses precisas sobre um determinado assunto.
Caracteriza-se por sua flexibilidade e versatilidade, pois no so empregados procedimentos
formais de pesquisa (HONORATO, 2004).
Gil (2007, p.43) afirma que:

As pesquisas exploratrias tm como principal finalidade desenvolver, esclarecer


modificar conceitos e ideias tendo em vista, a formulao de problemas mais
precisos ou hipteses pesquisveis para estudos posteriores. De todos os tipos de
pesquisa, estas so as que apresentam menor rigidez no planejamento.
Habitualmente envolve levantamento bibliogrfico e documental, entrevistas no
padronizadas e estudos de caso.

Ainda Gil (2007) diz que o objetivo de pesquisa exploratria fornecer a viso geral
de modo aproximativo, sobre determinado assunto. Esse tipo de pesquisa bastante utilizado
quando o tema proposto pouco conhecido e explorado.
Com base nessas informaes o tipo de pesquisa que melhor se define nesse trabalho
a pesquisa exploratria, com objetivo de explorar as documentaes bibliogrficas existentes

25
em sites e livros, pesquisar as teorias j definidas, explorar os recursos da nuvem escolhida e
abordar de maneira clara tudo que foi pesquisado.

3.2 Contextos da pesquisa

O objetivo desse projeto definir e comparar as principais plataformas de


desenvolvimento para o cloud computing. Para isso realizou-se uma breve definio de
algumas empresas que provm esse servio. O provedor a ser utilizado para demonstrao
prtica dos recursos ser o AWS Amazon, que disponibiliza a maior variedade de servios na
nuvem.
Esta pesquisa, por ter informaes comparativas entre os servidores mais conhecidos
em cloud computing, servir de base de conhecimento para estudantes, profissionais da rea
de tecnologia da informao e empresas que pretendem contratar e utilizar esse servio.

3.3 Instrumentos

Para a obteno e organizao das informaes, diviso das tarefas e desenvolvimento


desta pesquisa foram feitas reunies entre os participantes. Os dados foram conseguidos
atravs de pesquisas bibliogrficas, conhecimento dos provedores de cloud computing
existentes e compreenso dos servios oferecidos. Aps isso foi possvel analisar e organizar
as informaes.
Os encontros dos membros da equipe tiveram o propsito de discutir a linha a ser
seguida, pois o tema escolhido muito abrangente, em busca de definir o que seria necessrio
ser pesquisado e compreendido. Essas reunies permitiram que fossem propostas situaes e
tomadas decises quanto ao desenvolvimento do projeto, como as tecnologias abordadas e
tambm o modo como seriam demonstradas.

26
3.4 Procedimentos

Durante a fase de desenvolvimento foi necessrio adquirir conhecimentos das


tecnologias utilizadas na pesquisa para a utilizao no projeto proposto.
O primeiro passo foi o estudo da Amazon Web Services, em que ser implantado o
software desenvolvido para demonstrao do modelo cloud computing. Esse estudo aconteceu
por meio de tutoriais e da documentao oficial oferecida pela empresa, alm de vdeos de
palestras e blogs.
A seguir foram explorados alguns recursos como a criao de uma mquina virtual,
configurao de um banco de dados e o armazenamento de arquivos.
Aps o conhecimento do AWS foi pesquisado outros dois importantes servidores de
cloud computing, o Windows Azure e Google App Engine. Os estudos foram feitos em cima
de vdeos, tutoriais e da documentao oferecida pelas empresas em seus respectivos sites.

3.4.1 Planejamento

Foram escolhidas as tecnologias para uso no desenvolvimento da aplicao. O banco


de dados usado foi o MySQL, o Xampp foi utilizado para simular um servidor local e permitir
que a aplicao pudesse ser desenvolvida localmente, evitando gastos com o provedor de
servios.
A IDE8 escolhida foi o NetBeans e junto dele foi usado um controlador de verso para
que os desenvolvedores trabalhassem juntos facilitando a criao e mescla dos cdigos, assim
como a realizao de backups.

3.5 Caractersticas do Cloud Computing

O modelo de computao em nuvem formado por trs modelos de servios, quatro


modelos de implantao e cinco caractersticas que, juntos, so julgados essenciais para que
uma aplicao se caracterize no modelo de cloud computing (BADGER, 2011). Essas
8
IDE um programa de computador que rene caractersticas e ferramentas de apoio ao desenvolvimento
de software com o objetivo de agilizar este processo.
27
caractersticas so as principais diferenas entre computao em nuvem e a TI9 tradicional
(SNOWMAN, 2010). Essas caractersticas so citas a seguir.

On-demand self-service (Autosservio sob demanda) onde o usurio pode escolher


os recursos computacionais conforme a necessidade, sem necessitar de interao
humana com o provedor de servio.
Broad network access (Acesso por banda larga) quando recursos esto disponveis
atravs da internet e podem ser acessados por mecanismos padronizados independente
da plataforma, possibilitando o acesso atravs de celulares, notebooks, desktops, etc.
Resource pooling (Agrupamento de recursos) quando o provedor de servios agrupa
os recursos computacionais para atender vrios clientes (armazenamento,
processamento, memria, banda larga e mquinas virtuais10) utilizando um modelo
multi-tenant11 em que os recursos fsicos e virtuais so atribudos e realocados
dinamicamente de acordo com a demanda do cliente. Geralmente o cliente no tem
controle ou conhecimento sobre a localizao exata de onde os arquivos esto
armazenados, mas pode especificar o local como o estado, pas ou data center de sua
preferncia.
Rapid elasticity (Elasticidade rpida) quando recursos podem ser disponibilizados e
configurados rapidamente ou, em alguns casos, configurados de forma automtica,
aumentando ou diminuindo a quantidade de recursos de acordo com a necessidade do
usurio.
Measured service (servio mensurado) a nuvem controla e otimiza automaticamente a
utilizao dos recursos de acordo com o servio fornecido. O uso dos recursos pode
ser controlado e monitorado tanto pelo usurio quanto pelo provedor de forma
transparente.

9
TI Abreviao de Tecnologia da Informao.
10
Mquina Virtual um software de ambiente computacional em que um sistema operacional ou programa pode
ser instalado e executado.
11
Multi-Tenant uma arquitetura que permite que mltiplos usurios compartilhem os mesmos recursos fsicos
do servidor, mas permaneam logicamente isolados.
28
3.6 Modelos de Servios

O conceito de computao em nuvem baseado na entrega dos servios atravs da


internet, servios esses que so cobrados apenas pelo seu uso (pay-per-use), dando ao usurio
a possibilidade de aumentar ou diminuir as capacidades de armazenamento e processamento
conforme o necessrio (TAURION, 2009).
A grande diversificao dos servios pode ser um ponto positivo, o qual permite que o
cliente adquira os servios mais adequados s suas necessidades, porm pode tambm ser
negativo, pois a maior parte dos servios podem no ser compatveis entre si (TAURION,
2009). Os modelos de servios so divididos em trs grupos (SNOWMAN, 2010).

SaaS (Software como um Servio): uma aplicao completa sendo executada na


nuvem e disponvel para os clientes sem a necessidade de configuraes adicionais. Os
usurios deste servio no tm contato com os servios tcnicos que ficam a cargo da
empresa prestadora de servio, os custos so reduzidos, pois no necessita de
aquisio de licenas de software12. Os servios podem ser acessados pelo usurio de
qualquer dispositivo com acesso a internet. Muitos destes softwares j so muito
utilizados diariamente sem que o usurio saiba que est utilizando um servio da
nuvem. Alguns exemplos de SaaS so o Google Apps, Salesforce, Facebook,
Linkedin, Sky Drive, dentre outros.
PaaS (Plataforma como um Servio): Permite que o usurio possa desenvolver suas
aplicaes e disponibiliz-las na nuvem. Esse tipo de plataforma oferece suporte para
implementar e testar aplicaes nas nuvens. O usurio no gerencia ou controla a
camada, mas controla a aplicao desenvolvida na nuvem. o provedor da PaaS que
fornece o sistema operacional, a linguagem de programao e o ambiente de
desenvolvimento para o usurio desenvolver suas aplicaes. So exemplos de PaaS o
Google AppEngine, Windows Azure, Aneka Software, Bungee Connect, Heroku,
Force.com, Amazon S3, dentre outros. A plataforma como um servio fica bem
ilustrada na Figura 4.

12
Software conjunto de instrues a serem seguidas por uma mquina.
29
Fig. 4 Plataforma como servio
Fonte: https://chapters.cloudsecurityalliance.org/brazil/files/2012/04/cap17.pdf

IaaS (Infra-Estrutura como um Servio): O provedor oferece a infraestrutura de


armazenamento e processamento para facilitar a entrega dos recursos de computao
necessrios para criar um ambiente de aplicao. O usurio no administra ou controla
a infraestrutura, mas tem controle sobre os sistemas operacionais, armazenamentos e
aplicativos implantados. IaaS baseado em tcnicas de virtualizao. Seus recursos
podem ser diminudos ou aumentados de acordo com a necessidade do usurio. Os
Exemplos de IaaS so o Amazon EC2, Flexiscale, GoGrid, Eucalyptus, Tecla Internet,
Cloud Server Locaweb, dentre outros.

A Figura 5 mostra a separao das reponsabilidades de cada plataforma.

30
Fig. 5 Modelos de servios da computao em nuvem
Fonte: http://www.solidq.com/sqj/pt/Documents/2010_August_Issue/SQJ%20002.pdf

As plataformas de servios se suportam e se completam de acordo com uma


hierarquia. Cada uma delas tem um responsvel diferente pela sua gerencia, isso fica bem
ilustrado na Figura 6.

Fig. 6 Modelos de servios


Fonte: http://www.qarea.com/articles/cloud-computing-outlook-iaas-paas-and-saas

O provedor responsvel por disponibilizar, gerenciar e monitorar toda a estrutura da


computao em nuvem, deixando o desenvolvedor e o usurio nal sem essa responsabilidade
e fornecendo servios nos trs modelos. Os desenvolvedores utilizam os recursos fornecidos e
disponibilizam servios para os usurios nais.

31
3.7 Modelos de Implantao

Existem alguns modelos para se seguir na hora de implantar o cloud computing, eles
devem ser analisados e escolhidos cuidadosamente. Eles so divididos em trs tipos e
descritos a baixo (ASHLEY, 2009).

Nuvens pblicas so servios de nuvem prestados por um terceiro (fornecedor) que


existe alm do firewall13 da empresa e so hospedados e gerenciados pelo provedor da
nuvem. So ainda responsveis pelo provisionamento, instalao e manuteno sejam
do software, da infraestrutura de aplicao ou da infraestrutura fsica. Estes servios
so oferecidos como conveno sobre configurao, que significa que so entregues
com a ideia de acomodar os casos de uso mais comuns. Outro ponto a se analisar
que, como os consumidores tm pouco controle sobre a infraestrutura, os processos
que exigem estrita segurana no so aconselhados para o uso em uma nuvem pblica.
Nuvens privadas so servios de nuvem prestados dentro da empresa. Estas nuvens
existem dentro do firewall e so gerenciadas pela mesma. As nuvens privadas
oferecem muitos dos mesmos benefcios que as nuvens pblicas, porm nesse modelo,
a empresa responsvel pela instalao e manuteno da nuvem. Nesse caso a grande
vantagem a segurana e a personalizao da nuvem de modo a atender
completamente as necessidades da empresa, alm de oferecerem um controle mais
detalhado sobre os vrios recursos que a constituem. Em contrapartida a dificuldade de
se fazer isso e o custo de se estabelecer uma nuvem interna podem ser um obstculo.
O custo da utilizao contnua da nuvem pode ser maior que o de se usar uma nuvem
pblica. As nuvens privadas so ideais quando o trabalho que est sendo feito, por
motivos de segurana ou preocupaes regulamentares no indicada para a nuvem
pblica.
Nuvem hbrida uma combinao de nuvens pblicas e privadas. Estas nuvens so
criadas pela empresa, e a responsabilidade da administrao fica dividida entre a
empresa e o provedor de nuvem pblica. A nuvem hbrida aproveita servios que esto
tanto no espao pblico quanto privado, por isso a soluo quando a empresa precisa
tanto dos servios da nuvem pblica quanto da privada. Uma nuvem hbrida bem
13
Firewall um software que tem como funo proteger uma rede do acesso de pessoas ou outros softwares no
autorizados.
32
construda poderia atender tanto os processos crticos, como aqueles que so
secundrios para o negcio. A grande desvantagem deste modelo a dificuldade em se
criar e administrar, pois servios de diferentes fontes devem ser disponibilizados como
se fossem originados de um nico local. Deve ser levado em considerao que este
um modelo relativamente novo e as melhores prticas e ferramentas continuam a
surgir. A disposio desses modelos ilustrada na Figura 7.

Fig. 7 Modelos de implantao


Fonte: http://www.ibm.com/developerworks/br/cloud/library/cl-hybridcloud1/

Os modelos de implantao permitem ao usurio usar as tecnologias disponibilizadas


na nuvem de acordo com suas necessidades, porm necessria uma anlise cautelosa para
definir qual o modelo mais apropriado para as necessidades do negcio, principalmente em
questes de segurana.

3.8 Segurana

A segurana tem uma grande importncia no cloud computing e a popularizao da


computao em nuvem est diretamente relacionada com a confiana que se tem no modelo e
nas tecnologias envolvidas (TCLBRAZIL, 2010).

33
O fato de o cloud computing ainda ser um conceito e um modelo computacional em
crescimento torna fundamental a ateno s evolues das tecnologias e conceitos que o
formam e o sustentam. Essa evoluo, ainda prematura, do modelo de cloud computing pode
levar gestores de TI a tomarem decises com algum grau de risco, pois nem sempre as
tecnologias envolvidas esto no nvel de maturidade que seria desejvel, no permitindo que
se tenha certeza do resultado final. Por esses motivos, a segurana se torna um ponto crtico
que deve ser muito bem analisado (TAURION, 2010).

3.8.1 Controles de segurana

Existem alguns controles de segurana, necessrios para tornar um ambiente de


computao em nuvem seguro de forma correta (CASES, 2010). Os principais controles
seguem descritos a seguir:

Gerenciamento de Ativos: Deve ser possvel gerenciar todos os hardwares, redes e


softwares, fsicos ou virtuais e fornecer acesso a eles para auditorias e verificaes de
rotina.
Criptografia: Gerenciamento de chaves e de certificados muito importante, pois eles
sero os responsveis por garantir ou negar o acesso aos dados de pessoas no
autorizadas.
Segurana de dados/armazenamento: muito importante que o provedor seja capaz de
armazenar dados criptografados e tambm saber que alguns usurios precisaro
armazenar seus dados em locais separados dos dados de outros clientes
Segurana do terminal: Os usurios devem ter o poder de gerir a segurana de suas
instncias criadas na nuvem.
Relatrio e auditoria: Um dos fatores de segurana mais importantes a capacidade de
auditoria para se conseguir detalhes de um fato ocorrido, como falhas de sistema,
invases e ataques diretos.
Segurana de rede: necessrio garantir o trfego de rede em nvel de comutador14,
roteador15 e pacote.

14
Comutadores so semelhantes aos hubs, mas podem identificar o destino e enviam essas informaes apenas
para os computadores que devem receb-las.
34
Polticas de segurana: Para tornar o controle de acesso e a alocao de recursos
eficaz, preciso definir, resolver e implantar polticas de segurana de forma
consistente.
Automao de servios: Possuir uma forma automatizada de gerenciar e analisar os
fluxos e processos de controle de segurana para auxiliar as auditorias extremamente
importante para que as auditorias sejam feitas com maior agilidade.

Na escolha de um provedor para servios de cloud computing, os controles de


segurana devem ser levados em conta, o provedor deve dar suporte a esses controles
permitindo ao usurio uma forma confivel de trabalhar e gerenciar o acesso aos dados.

3.8.2 Padres de segurana da federao

Federao o conceito que torna a computao em nuvem possvel, pois ela a


capacidade de vrios recursos independentes (ativos, identidades, configuraes, etc.) se
comportarem como um nico recurso (CASES, 2010).
Uma autoridade de autenticao fornece para as duas partes uma relao de confiana,
pois a empresa que presta os servios deve trocar credenciais de segurana (certificados) e
criar tokens16 assinados digitalmente usando essas credenciais, formando assim uma base
segura para todos os padres de federao (CASES, 2010).

O gerenciamento de identidades o padro que permite definir um provedor de


identidade que possa aceitar as credenciais do usurio (ID, senha, certificado, etc.) e retornar
um token de segurana assinado para o ID17 daquele usurio, fazendo com que o provedor de
servio permita o acesso.
O gerenciamento de acesso permite que polticas sejam gravadas para examinar tokens
de segurana.
A auditoria e conformidade faz com que auditorias de dados sejam difundidas em
diversos domnios para documentar a conformidade com acordos de servio e outros
regulamentos.

15
Roteador um dispositivo que encaminha pacotes de dados entre redes de computadores.
16
Token um dispositivo que auxilia quanto segurana ao gerar uma senha temporria.
17
ID Abreviao de identidade.
35
O gerenciamento da configurao a capacidade de federar dados de configurao
para servios, aplicativos e mquinas virtuais.
Como as melhores prticas costumam se tornarem padres, importante que um
desenvolvedor observe as que j existem, pois assim estar usando-as e cumprindo os padres
de federao.

3.8.3 SLA

O Service Level Agreement (SLA) ou contrato em nvel de servio um contrato,


negociado entre as partes, para um servio de tecnologia da informao ou de
telecomunicaes e tem por objetivo especificar os requisitos mnimos como a qualidade do
servio, critrios de cobrana, provisionamento, processo de atendimento e relatrios
fornecidos ao cliente que devero ser cumpridos na entrega do servio. O no cumprimento
do acordo pode acarretar em penalidades para o provedor de acordo com o contrato (TUDE,
2003).
Os contratos SLA no existem com o objetivo de melhorar a qualidade do servio e
sim para servir como base legal para um eventual problema jurdico. Mais importante do que
a qualidade do servio imposta no contrato, deve-se exigir solues para diminuir o tempo de
recuperao da aplicao no caso de queda do servidor, pois isso pode trazer grandes
prejuzos (GOLDEN, 2011).

3.8.4 Fatores de segurana na migrao para nuvem

Realizar uma migrao de uma aplicao para a nuvem pode ser uma tarefa
complicada, pois a segurana nessa rea traz muitos desafios, mas muitos deles podem ser
superados quando se tem um planejamento de migrao. Para isso preciso ter conhecimento
de quais os servios que podem se aproveitar da migrao para a nuvem e quais os problemas
de segurana, privacidade e regulamentao podem ocorrer com a migrao do servio
(ALLIANCE, 2012).
Existem ocasies em que se pode optar por no realizar a migrao por questes
legais, em situaes que exijam que os dados fiquem localizados em um data center no pas

36
de origem, dever ser realizado um estudo referente ao assunto, pois como a legislao varia
conforme o pas em que os dados esto hospedados, a migrao para nuvem jamais dever ser
feita sem que esse aspecto seja analisado (ALLIANCE, 2012).
A maior causa de migraes fracassadas a falta de um planejamento inicial e a no
compreenso das implicaes de se realizar essa migrao. O modelo de servio que se
escolhe para a migrao deve ser muito bem estudado, pois dependendo da situao, uma total
readaptao precisa ser feita (ALLIANCE, 2012).
Em uma migrao que inclua o desenvolvimento de novas aplicaes j na nuvem, no
s os servios para o usurio final sero afetados, mas tambm a plataforma de
desenvolvimento.

3.8.5 Outras questes de segurana

Mesmo que todo o contrato seja revisado e estudado por todos da empresa, no fim o
contratante tem que confiar que este contrato ser respeitado, pois a partir da assinatura, todos
os dados da empresa sero manuseados por pessoas com quem o contratante provavelmente
nunca ter contato (ALLIANCE, 2012).
Durante o processo de escolha do provedor importante entender previamente alguns
aspectos como a liberao de logs, pois caso o contratante necessite de algum tipo de
investigao nos seus dados ele precisa saber qual a poltica do provedor para liberar essas
informaes (ALLIANCE, 2012).
preciso ter um conhecimento prvio das condies de liberao desses dados, pois se
houver a necessidade de uma ordem judicial, preciso saber por quanto tempo esses logs
ficam armazenados ou ainda se existe uma garantia de que eles no sero mesclados com os
de outros clientes (ALLIANCE, 2012).
necessrio tambm lembrar de que no basta ter certificaes para servios SLA18 se
a equipe interna que gerencia o data center no possui um treinamento adequado e no segue
um padro de segurana para acesso dos dados (ALLIANCE, 2012).
de extrema importncia que o contratante do servio tenha um conhecimento
profundo da poltica de segurana usada pelo provedor e saber onde ficam armazenados os
dados fisicamente. No necessrio saber o endereo do data center, mas precisa-se saber a

18
SLA Abreviao para Service Level Agreement.
37
localizao geogrfica do mesmo, pois em caso de falha desse servidor, os dados podem ser
transferidos para fora do pas de origem, com leis diferentes e por isso o contratante fica
sujeito a regras diferentes do seu pas de origem (ALLIANCE, 2012).
Alm de todas essas preocupaes contratuais e com o manuseio dos dados, outro
ponto importante so os empregados mal intencionados ou despreparados que so
responsveis por 80% de ataques maliciosos dentro das empresas, sendo mais nocivos que
usurios de fora dessa rede (GRIMES, 2010)
O risco aumenta se o contratante no sabe exatamente qual o tipo de treinamento que
os funcionrios recebem e qual o tipo de punio dada para infraes no possvel vazamento
de dados (ALLIANCE, 2012).
Por fim os dados so de propriedade do cliente e isso tem que ser explcito em
contrato, pois o manuseio ser realizado pelo provedor de servios da nuvem, mas os dados
sempre sero do cliente. Para evitar futuras complicaes, o contratante tem que exigir uma
documentao contratual quanto a essa propriedade final dos dados ALLIANCE, 2012).

3.9 Plataformas de Desenvolvimento

Aqui sero abordados os principais servidores que oferecem esse modelo


computacional como servio, explicando seu funcionamento e mostrando as principais
ferramentas oferecidas.

3.9.1 Windows Azure

O Windows Azure uma plataforma que suporta vrias linguagens e atua como um
ambiente de desenvolvimento, hospedagem de servios e gerenciamento, fornecendo uma
computao sob demanda e armazenamento para hospedar, escalar e gerenciar aplicaes web
suportando SOAP19, XML20 e PHP21 dentre outros (MICROSOFT, 2010).

19
SOAP Sigla de Simple Object Access Protocol.
20
XML Sigla de Extensible Markup Language.
21
PHP Sigla de Hypertext Preprocessor.
38
O Azure uma plataforma como servio (PaaS) que disponibiliza as principais
funcionalidades como processamento, armazenamento, gerenciamento e administrao das
aplicaes, alm do suporte ao modelo de software como servio (SaaS). Para complementar
essa plataforma, existem 3 servios que podem ser considerados os mais importantes, como o
SQL Azure, Windows Azure AppFabric e o Windows Azure Storage. Esses servios podem
ser utilizados pelas aplicaes hospedadas na plataforma principal, como ilustrado na Figura
8 (CAMBIUCCI, 2011).

Fig. 8 Principais componentes e servios do Windows Azure


Fonte: http://msdn.microsoft.com/pt-br/library/hh150078.aspx

Para compreender melhor necessrio entender o funcionamento do Azure Services.


Ele um conceito que faz o isolamento entre os processos, utilizando as roles que so as
instncias da mquina virtual e so classificadas em trs tipos (CAMBIUCCI, 2011).
Web Role - Instncia que recebe e trata requisies http. Cada web role executado
sobre o Internet Information Services (IIS). As requisies so feitas para o mesmo
DNS e so enviadas para o load balancer (balanceador de carga), que responsvel
por distribuir as requisies pelos web roles da aplicao, no dividindo o
processamento, pois cada instncia executada em uma mquina virtual diferente.
Quando um web role recebe uma requisio que demanda muito processamento essa
tarefa enviada para o worker role atravs de uma queue (fila).

39
Worker Role Tem como funo processar todos os pedidos armazenados na fila
pelos web roles, sendo o responsvel por realizar as tarefas mais lentas. Pode em
alguns casos conectar-se a outras instncias.
VM Role So instncias que do acesso ao sistema operacional, pois representam a
maquina virtual criada pelo usurio.

A Figura 9 representa o funcionamento mais comum das roles.

Fig. 9 Funcionamento das roles


Fonte:http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2011_2/valverde/NotesImages/Topic7NotesImage5.gif

Os web roles e worker roles permitem um maior grau de abstrao onde o usurio se
preocupa apenas com a aplicao, sem ser responsvel por atualizaes de infraestrutura ou
sistema operacional. Se for necessrio maior controle e customizao o VM role permite que o
usurio fique responsvel por essas atualizaes (CAMBIUCCI, 2011).

3.9.1.1 Azure Storage

Os servios de storage do Azure fornecem acesso a um sistema escalvel de


armazenamento que mantm trs cpias dos dados em segundo plano garantindo a
disponibilidade dos dados (SOUZA, 2012). Existem trs tipos de storage que so citados a
seguir (CAMBIUCCI, 2011).
40
Blobs - So arquivos binrios ou textos armazenados em containers. Podem conter
tags que descrevem o arquivo ou adicionam informaes sobre seu contedo. Cada
container pode conter um ou mais arquivos de qualquer tipo (vdeo, imagens, udio,
etc.), podendo ser pblico ou privado. A Figura 10 mostra o funcionamento dos blobs.

Fig. 10 Funcionamento dos blobs Fonte: http://i.msdn.microsoft.com/dynimg/IC501803.jpg

Tables uma persistncia baseada em tabelas de forma no relacional. Para os tipos


relacionais o Windows Azure oferece o SQL Azure. A Figura 11 mostra o
funcionamento deste tipo de armazenamento.

41
Fig. 11 Funcionamento do tables Fonte: http://i.msdn.microsoft.com/dynimg/IC501804.jpg

Queues um mecanismo de comunicao assncrona que permite a comunicao


entre processos, web roles e worker roles por meio de mensagens colocadas na fila. A
Figura 12 mostra o funcionamento das queues.

Fig. 12 Funcionamento das queues


Fonte: http://i.msdn.microsoft.com/dynimg/IC501804.jpg

42
Existe ainda um quarto tipo de armazenamento chamado Drive que oferece uma
unidade NTFS22, permitindo a manipulao de arquivos. Ele montado a partir de um blob
ampliando as funcionalidades das aplicaes na nuvem (CAMBIUCCI, 2011).

3.9.1.2 SQL Azure

O banco de dados do SQL Azure, permite que se crie, dimensione e estenda


aplicativos na nuvem. Permite tambm a criao de blobs, que so um jeito simples de
armazenar grandes volumes de texto ou dados binrios, com dimensionamento automtico
para atender a grandes taxas de transferncia e volumes (MICROSOFT, 2013).
As aplicaes podem aproveitar recursos como persistncia de dados, business
intelligence23, sincronizao, replicao de dados, relatrios, data mining, dentre outras, a
partir de uma infraestrutura de alta escalabilidade e provisionamento dinmico
(MICROSOFT, 2013).

3.9.1.3 Windows Azure AppFabric

O Windows Server AppFabric da plataforma Windows Azure permite que aplicaes


sejam criadas e gerenciadas de maneira fcil, ajudando os desenvolvedores a conectar
aplicativos e servios nas nuvens ou em um ambiente local. Isso inclui aplicativos executados
no Windows Azure, Windows Server e vrias outras plataformas, incluindo Java, Ruby, PHP
e outros (MICROSOFT, 2013).
O Service Bus ajuda a fornecer conectividade segura entre servios e aplicativos,
permitindo navegar em firewalls ou nas fronteiras da rede e usar uma variedade de padres de
comunicao. Os servios que se registram no service bus podem ser descobertos e acessados
facilmente em qualquer parte da rede. (MICROSOFT, 2013).
O Microsoft Access Control ajuda a criar autorizao federada para o seus aplicativos
e servios, sem a programao complicada que normalmente necessria para proteger
aplicativos que vo alm dos limites organizacionais (MICROSOFT, 2013).

22
NTFS - New Technology File System
23
Business intelligence Traduo inteligncia de negcios em ingls.
43
3.9.1.4 Windows Azure Virtual Network

O Virtual Network um servio que permite aumentar a capacidade das redes locais
utilizando os servios do Azure, fazendo com que ele seja uma extenso da rede com criao
de mquinas virtuais, atribuio endereos e configurao de DNS24 (COND, 2013). A
Figura 13 ilustra esse servio em funcionamento.

Fig. 13 Viso geral do Azure Virtual Network


Fonte: http://blogs.msdn.com/b/conde/archive/2013/05/06 an-250-ncio-virtual-networks-agora-suporta-
windows-rras-e-conex-227-o-ponto-para-rede-virtual.aspx

3.9.1.5 Windows Azure Traffic Manager

O Azure Traffic Manager permite controlar a distribuio do trfego de acesso aos


servios do Azure, atravs de polticas de acessos (MICROSOFT, 2013). A Figura 14
exemplifica como feito esse controle.

24
DNS Domain Name System
44
Fig. 14 Roteamento do Traffic Manager
Fonte: http://msdn.microsoft.com/pt-br/library/window
sazure/hh744833.aspx

O usurio solicita o servio atravs de um domnio, que aponta para o DNS do Traffic
Manager que usa o mtodo de balanceamento de carga previamente definido e o status do
monitoramento para escolher qual servio deve atender solicitao. Depois de feita a
escolha, ele resolve o DNS do servio que ir atender a requisio e retorna o IP25que o
usurio ir usar para ter o acesso direto (MICROSOFT, 2013).

3.9.2 AWS Amazon

A Amazon Web Services (AWS) oferece um conjunto completo de servios de


aplicativos e infraestrutura que permite executar desde aplicativos empresariais e grandes
25
IP Sigla de Internet Protocol.
45
projetos de dados a jogos sociais e aplicativos mveis, fornecendo uma ampla infraestrutura.
(AMAZON, 2013). Os principais componentes desse servidor esto ilustrados na Figura 15.

Fig. 15 Principais componentes do AWS


Fonte: http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/images/services.png

A Amazon oferece servios distribudos nas seguintes categorias:


computao/processamento, distribuio de contedo, banco de dados, instalao e
gerenciamento de servios, e-commerce, mensagens, monitoramento, rede, pagamento e
faturamento, armazenamento, suporte, anlise de trfego web e fora de trabalho
(BARBOLO, 2011).
Pelo fato de a Amazon Web Services ser a pioneira e mais experiente do mercado
decidiu-se utiliz-la como base para esse projeto. Outro motivo foi o fato de este provedor
oferecer seus servios de forma independente uns dos outros, diferente dos concorrentes que
oferecem um conjunto de servios para a contratao.

46
3.9.2.1 Elastic Compute Cloud (EC2)

O Elastic Compute Cloud (EC2) um servio que fornece recursos computacionais


escalveis e redimensionveis de forma simples, permitindo que se altere esses recursos, para
mais ou para menos, medida que for necessrio (AMAZON, 2013).
O EC2 um ambiente de computao virtual que permite a utilizao de interfaces de
servios web para iniciar instncias de sistemas operacionais e gerenciar permisses de acesso
de rede usando o nmero de sistemas que o usurio desejar.

3.9.2.2 Elastic MapReduce (EMR)

O Elastic MapReduce (EMR) um servio que permite s empresas, pesquisadores,


analistas de dados e desenvolvedores processar, de um modo mais prtico e econmico,
grandes quantidades de dados (AMAZON, 2013).
O EMR utiliza o framework26 Apache Hadoop que fica nos servidores do Simple
Storage Service (S3) e do EC2. O EMR mais utilizado para tarefas como indexao,
minerao de dados, anlise de logs, data warehousing27, aprendizagem de mquina, anlise
financeira, simulao cientfica e pesquisas em bioinformtica (BARBOLO, 2011).

3.9.2.3 Auto Scaling

O Auto Scaling permite que os servidores do EC2 aumentem ou diminuam os recursos


automaticamente de acordo com definies estabelecidas previamente para a aplicao. Tendo
a alocao de recursos em perodos de pico de forma automtica como o principal benefcio
desse servio (BARBOLO, 2011).

26
Framework uma abstrao que une cdigos comuns entre vrios projetos de software provendo uma
funcionalidade genrica.
27
Data Warehousing um sistema de computao utilizado para armazenar informaes relativas s atividades
de uma organizao em bancos de dados.
47
3.9.2.4 CloudFront

O CloudFront um servio que permite distribuio de contedo com baixa latncia e


alta taxa de transferncia, atravs de caches em provedores de internet de vrias regies do
mundo, sendo utilizado para distribuir contedos estticos ou streamings de mdias
(BARBOLO, 2011).
Em um estudo de caso realizado na Frost & Sullivan, empresa multinacional que
realiza consultoria de inteligncia de mercado e patrocinada pela Amazon, os resultados
encontrados com o CloudFront esto ilustrados na Figura 16.

Fig. 16 Estudo de caso com CloudFront


Fonte: http://media.amazonwebservices.com/FS_WP_AWS_CDN_CloudFront.pdf

Como nos mostra o resultado do estudo de caso, o CloudFront se mostrou muito mais
eficiente do que os servios das outras duas empresas (cujo os nomes no foram revelados)
em que foram realizados os mesmos testes, mostrando assim ser uma boa opo de servio
para esse tipo de necessidade.

48
3.9.2.5 Simple DB (SDB)

O SimpleDB (SDB) um armazenamento de dados altamente disponvel, flexvel e


no relacional (AMAZON, 2013). O SDB foi criado para trabalhar em conjunto com o S3 e o
EC2. Um exemplo uma aplicao de compartilhamento de fotos e vdeos sendo executada
no EC2, enquanto fotos e vdeos ficam armazenados no S3 e os comentrios e opinies dos
usurios ficam no SDB (TAURION, 2009).
Esse servio deve ser usado por aplicaes que precisam apenas indexar e consultar
dados, sem envolver transaes ou comandos mais complexos (BARBOLO, 2011).

3.9.2.6 Relational Database Service (RDS)

O Relational Database Service (RDS) um servio que facilita a configurao e a


implementao de um banco de dados relacional e os recursos so semelhantes aos do banco
de dados MySQL (AMAZON, 2013). possvel configurar backups automticos, adicionar
ou remover recursos, e configurar rplicas que aumentam a confiabilidade e velocidade de
acesso aos dados (BARBOLO, 2011).

3.9.2.7 Elastick Beanstalk

O Elastic Beanstalk permite implantar e gerenciar aplicaes que estejam na nuvem de


modo simples e rpido trabalhando automaticamente com os detalhes de distribuio da
capacidade de provisionamento, balanceamento de carga, dimensionamento automtico e
monitorando a aplicao. Utiliza servios como o EC2, S3, Simple Notification Service e o
Auto Scaling (AMAZON, 2013).

49
3.9.2.8 Fulfillment Web Service (FWS)

O Fulfillment Web Service permite que um vendedor terceirize a entrega de produtos


atravs da Amazon. Ele envia seus produtos para a Amazon, onde eles so estocados e
catalogados, colocando-os como disponveis. Quando um consumidor realiza a compra de um
produto, a Amazon empacota o pedido e faz a entrega. Esse servio permite que aplicaes de
vendedores se integrem com o servio de entrega da Amazon (AMAZON, 2013).

3.9.2.9 Simple Queue Service

O Simple Queue Service (SQS) permite criar filas de mensagens no servidor de


servios com isso o desenvolvedor pode mover dados entre componentes distribudos de seus
aplicativos que executem tarefas diferentes, sem perder mensagens ou sendo necessrio que
cada componente esteja sempre disponvel (AMAZON, 2013).
No SQS uma mensagem pode ser armazenada por at quatorze dias e no pode ser lida
por mais de uma instncia simultaneamente, sendo bloqueada enquanto lida. Se o
processamento da mensagem falhar, ela voltar a ficar disponvel na fila e se for processada
com sucesso ela ser excluda da fila (BARBOLO, 2011).

3.9.2.10 Simple Notification Service

O Simple Notification Service (SNS) funciona como um servio que facilita a


configurao, operao e o envio de notificaes a partir do provedor. O SNS um servio
que permite enviar notificaes facilitando o envio de mensagens via http28, smtp29 ou outro
protocolo por aplicaes, integrando mdulos ou mantendo assinantes de contedo
atualizados (AMAZON, 2013).

28
HTTP um protocolo de comunicao.
29
SMTP o protocolo padro para envio de e-mails atravs da Internet.
50
3.9.2.11 Simple Email Service

O Simple Email Service (SES) um servio de envio de e-mails para empresas e


desenvolvedores. Ele elimina a o trabalho de criar uma soluo de e-mail interna ou instalar e
operar um servio terceirizado, se integrando com outros servios da AWS, facilitando o
envio de e-mails de aplicativos hospedados (AMAZON, 2013).

3.9.2.12 CloudWatch

O CloudWatch permite monitorar o desempenho operacional e a utilizao dos


recursos de aplicativos que estejam sendo executados na nuvem. As verses mais simples so
gratuitas, j as com maiores detalhes de monitoramento so taxadas (AMAZON, 2013).

3.9.2.13 Route 53

O Route 53 um servio de consulta de DNS 30 que resolve endereos de domnios


pblicos. Com ele possvel instncias do EC2 ou no S3 e direcionar o acesso de um domnio
externo a esses servios, facilitando o acesso a eles (AMAZON, 2013).

3.9.2.14 Virtual Private Cloud

O Virtual Private Cloud (VPC) um servio que permite aproveitar uma seo privada
e isolada da nuvem onde possvel executar recursos em uma rede virtual. Possibilita tambm
definir uma topologia de rede que se assemelhe a uma rede real, com o controle total sobre o
ambiente de rede virtual, incluindo a seleo do seu prprio intervalo de endereos IP 31,

30
DNS um sistema de gerenciamento de nomes hierrquico.
31
IP uma identificao de um dispositivo (computador, impressora, etc) em uma rede local ou pblica.
51
criao de sub-redes e configurao de tabelas de roteamento e gateways32de rede
(AMAZON, 2013).

3.9.2.15 Elastic Load Balancing

O Elastic Load Balancing o servio que distribui requisies de acesso para as


aplicaes acessarem as instncias ativas do EC2, balanceando a carga pelos diversos
servidores, tornando possvel aumentar a tolerncia a falhas, a velocidade de acesso e a
disponibilidade de uma aplicao (BARBOLO, 2011).

3.9.216 Simple Storage Service

O Simple Storage Service (S3) um armazenamento para a internet, oferecendo


quatro mecanismos de controle de acesso diferentes como o Identityand Access Management
(IAM), Access Control Lists (ACLs), polticas de bucket33 e autenticao de sequncia de
caracteres de consulta (AMAZON, 2013).
Ele tambm possui armazenamento de dados para vrias instalaes e dispositivos,
armazenando de forma sncrona seus dados em vrias instalaes antes de confirmar a troca
de dados (AMAZON, 2013).

3.9.2.17 Amazon Elastic Block Store

O Amazon Elastic Block Store (EBS) fornece volumes de armazenamento em bloco.


Eles so vinculados rede e podem ou no ser vinculados a uma instncia do EC2 em
execuo e expostos como um dispositivo dentro da instncia (AMAZON, 2013).

32
Gateway uma mquina intermediria geralmente destinada a interligar redes, separar domnios de coliso,
ou mesmo traduzir protocolos.
33
Bucket um objeto abstrato cujo papel conter dados prprios de um usurio.
52
3.9.2.18 Import/Export

O Import/Export um servio usado para transferncia de uma grande quantidade de


dados para os servidores da Amazon. A partir de um dispositivo de armazenamento os dados
so enviados de um dispositivo para os servidores ou dos servidores para o dispositivo. Este
servio considerado relevante quando a transferncia de dados pela internet muito intensa
e demorada (BARBOLO, 2011).

3.9.2.19 Suporte Premium

O Suporte Premium atua como um canal de suporte fornecido em tempo integral por
engenheiros de suporte tcnico. O servio ajuda clientes a utilizarem os produtos e recursos
fornecidos de forma correta (AMAZON, 2013).

3.9.2.20 RedShift

At a data de pesquisa deste projeto, o Amazon Redshift se encontra em verso beta.


Ele um servio para processamento de dados que variam de gigabytes at petabytes com e
custos abaixo de mil dlares por terabyte por ano, ou seja, um dcimo do custo das solues
tradicionais de data warehouse 34.
possvel utilizar o Redshift diretamente com o S3 e com o DynamoDB para retirar
dados do MapReduce, RDS e dos bancos de dados do EC2, permitindo combinar e analisar
dados de vrias fontes (AMAZON, 2013).

34
Data Warehouse - Depsito de dados digitais que serve para armazenar informaes detalhadas relativamente
a uma empresa, criando e organizando relatrios.
53
3.9.2.21 OpsWorks

O OpsWorks se encontra em sua verso beta at a data em que essa pesquisa foi feita.
Ele uma plataforma para o gerenciamento de qualquer escala ou complexidade na nuvem,
oferecendo uma facilidade no gerenciamento do ciclo de vida dos aplicativos, incluindo
provisionamento de recursos, gerenciamento de configurao, implementao de aplicativos,
atualizaes de software, monitoramento e controle de acesso (AMAZON, 2013).
O OpsWorks permite modelar e visualizar o aplicativo em camadas que definem como
configurar um conjunto de recursos gerenciados simultaneamente. Tambm possvel definir
a configurao de software para cada camada, como scripts de instalao e tarefas de
inicializao (GARCIA, 2013).
Ele muito parecido com o Elastic Beanstalk, onde ele oferece containers (IIS,
Node.JS, PHP, Ruby, Python e Tomcat) e preciso customizar esses containers, porm
existem limites para isso (GARCIA, 2013).
O OpsWorks, tem outro conceito (stacks e layers), em que possvel criar e configurar
containers como o necessrio. Gerenciando um ambiente com dezenas, centenas ou at
milhares de servidores, o OpsWorks como uma "receita de bolo", uma vez feita e funcional,
possvel replic-la quantas vezes for preciso (GARCIA, 2013).

3.9.2.22 Elastic Transcoder

O Amazon Elastic Transcoder a transcodificao de vdeo na nuvem. Ele foi


desenvolvido para ser uma forma escalvel para que desenvolvedores e empresas convertam
arquivos de vdeo de seu formato de origem em verses que sero reproduzidas em
dispositivos como smartphones, tablets e computadores. Com ele possvel adicionar Marca
d'gua visual, parmetros de taxa mxima de bits do vdeo, parmetros de taxa mxima de
quadros dentre outros (AMAZON, 2013).

54
3.9.3 Google App Engine

O Google App Engine (GAE) uma plataforma como servio que fornece um
ambiente de desenvolvimento para que aplicaes possam ser desenvolvidas e implementadas
na nuvem, acabando com a necessidade de manter servidores ativos. O ambiente de
desenvolvimento contm suporte ao Java, permitindo a criao do aplicativo usando
tecnologias Java padro, incluindo JVM35, servlets36 Java ou qualquer outra linguagem que
utilize um compilador com base na JVM. O GAE tambm disponibiliza um ambiente para
desenvolvimento em Python, PHP e GO37, essas duas ltimas de forma experimental
(GOOGLE, 2013). A Figura 17 ilustra a arquitetura de um sistema GAE.

Fig. 17 Arquitetura de um sistema no GAE.


Fonte: http://thecustomizewindows.com/wp-content/uploads/2012/12/PaaS-Model-and-Architecture-
of-Google-App-Engine.jpg

35
JVM Java Virtual Machine.
36
Servlets um componente do lado servidor que gera dados HTML e XML para a camada de apresentao de
um aplicativo web.
37
GO Linguagem de programao lanada em 2009 pela Google.
55
No GAE no se tem a transparncia de onde sua aplicao foi implementada, ao
contrrio do AWS onde se tem a liberdade de escolha dos servidores a serem utilizados. As
interaes com essa plataforma so feitas atravs de servlets e chamadas a recursos externos a
sua aplicao, podem ter durao de no mximo trinta segundos por questes de
escalabilidade (GUIMARES, 2012).

3.9.3.1 Servios de Storage

O Google App Engine fornece algumas formas para que os armazenamentos de


informaes e arquivos sejam feitos afim de serem utilizados pelas aplicaes hospedadas no
GAE que so descritas a seguir (GUIMARES, 2012).

GAE Blobstore - Servio de armazenamento fornecido atravs de uma biblioteca


prpria, onde chaves de identificao apontam o arquivo. O local onde ele se encontra
armazenado no conhecido. Esse no um servio que possa ser contratado a parte,
pois ele j vem incluso na plataforma de desenvolvimento do GAE, diferentemente
dos servios da AWS.
GAE Datastore uma soluo NoSql que utiliza um sistema chamado Big Table
que consiste em armazenar os registros de todas as aplicaes em uma nica tabela
gigante, em que as entidades so representadas pelo tipo da informao armazenada,
por um identificador e seu contedo. Existem regras de segurana por trs desse
sistema que permite apenas que as aplicaes acessem suas informaes que l esto
armazenadas.
GAE CloudSql Soluo que permite utilizar bancos de dados relacionais, permitindo
criar, importar e export-los. Oferece um ambiente MySQL com acesso para as
plataformas Java (via JDBC) e Python (via DB-API). As operaes de administrao,
backup e escalonamento so feitos automaticamente.

56
3.9.3.2 Google App Engine Task Queue

O GAE Task Queue um servio que permite que sejam criadas filas de
processamento em segundo plano. A plataforma aloca o quanto for necessrio de recursos
para realizar o que foi configurado na task. O servio gratuito, porm o tempo de
processamento utilizado para a realizao da tarefa ser cobrado (GUIMARES, 2012).

3.10 Estudos de caso

Para demonstrar algumas possibilidades que j so utilizadas por grandes empresas,


alguns estudos de casos sero utilizados para saber como o cloud computing beneficiou o
modo como elas gerenciam seus processos e entregam seus servios.

3.10.1 Grupo ING

O grupo ING uma organizao financeira que atua em todo o mundo, atende a 85
milhes de clientes privados, corporativos e institucionais contando com uma mo de obra em
torno de 107 mil pessoas em mais de quarenta pases na Europa, Amrica do Norte, Amrica
Latina, sia e Austrlia e possui 1.261 trilho de euros em ativos. O objetivo do ING ser o
banco preferencial para seus clientes, sendo a primeira escolha para todas as necessidades
bancrias e financeiras (ING, 2013).
O ING definiu sua estratgia para economias substanciais nos custos e, ao mesmo
tempo proporcionar um maior controle sobre infraestrutura de TI, maior estabilidade, e uma
melhor organizao da empresa. Para isso, o ING percebeu que o papel dos profissionais de
TI tinha que mudar com a adoo de um novo conceito para a gesto dessa rea, e que a
nuvem tem um impacto sobre todas as reas da empresa. Com isso foi dado um treinamento
com os princpios bsicos da virtualizao e computao em nuvem, garantindo que todos os
envolvidos tivessem habilidade para permitir que a organizao conseguisse realizar essa
transio com sucesso (ING, 2013). Alguns pontos que pretendiam ser alcanados com isso
so:

57
Transformar a rea de TI de um departamento tradicional para um provedor de
servios da prpria empresa;
Conseguir um baixo custo com o fornecedor de cloud computing;
Reduzir o risco e a complexidade que existe quando os dados no esto todos no
mesmo local;
Conseguir a virtualizao de plataformas, visando o avano da tecnologia;
Construir um modelo operacional em nuvem;

O cloud computing promete um modelo mais flexvel para os sistemas que colocam a
unidade de negcios ou o cliente no centro do processo. No entanto, isso no vai acontecer
repentinamente, pois as pessoas, processos e tecnologia precisam acompanhar esta mudana.
O processo para a implantao incluiu alteraes na forma de trabalho das pessoas, nos tipos
de habilidades necessrias para a organizao e a relao dos usurios com os gestores de TI.
O sucesso na preparao da organizao para lidar com o cloud computing est no fato de que
o ING no tratou a mudana para a nuvem como uma questo apenas de TI, mas sim
envolveu toda a organizao. Para conseguir isso, iniciou-se uma conscientizao em larga
escala e em torno desse objetivo (ING, 2013). A Figura 18 mostra um grfico de conscincia
do ING e do ciclo de vida do programa de educao ao longo do tempo.

Fig. 18 Ciclo de vida do programa de conscientizao


Fonte: http://www.itpreneurs.com/document/case-study.pdf

58
O programa foi iniciado com um vdeo explicativo, mostrando que a empresa estava
passando por uma mudana tecnolgica e de processos em longo prazo. Ao mesmo tempo
iniciaram uma srie de atividades para divulgar esse treinamento aos funcionrios. Enquanto a
campanha de marketing interno estava em andamento, foi dado inicio transio de modelo
de TI. Os cursos de formao foram disponibilizados on-line, permitindo que os funcionrios
pudessem fazer os cursos em horrios convenientes para eles (ING, 2013).
Cada funcionrio, cujo cargo foi diretamente afetado por essa transio, participou do
programa de conscientizao e treinamento. Os gerentes de projeto, gerentes-chave de
negcios e gerentes de relacionamento participaram de um programa de conscientizao,
focando a necessidade do negcio e os principais conceitos. Assim como os profissionais de
TI, bem como usurios de negcios com um impacto muito grande em suas funes tambm
participaram do programa (ING, 2013).
O ING treinou cerca de mil e quinhentas pessoas para garantir a capacidade de
gerenciar a nova nuvem. Um livro contendo material de leitura adicional e estudos de caso foi
feito e entregue para aqueles que completaram o treinamento. Finalmente, uma simulao de
negcios virtual, permitiu aos participantes colocarem os conhecimentos obtidos em prtica
(ING, 2013).

3.10.2 Gol Linhas Areas

Com cerca de 63 destinos em toda a Amrica do Sul, a GOL Linhas Areas se tornou
uma das maiores companhias areas do Brasil. Como a conexo internet ainda no est
disponvel nos avies, a companhia percebeu que os passageiros necessitavam de
entretenimento de bordo e criou uma soluo alinhada com a estratgia da empresa
(AMAZON, 2011).
O maior desafio foi determinar como gerenciar o contedo que controlado
automaticamente. Desde informaes sobre os acessos realizados pelo passageiro e
programao que conta com mais de 14 mil opes como vdeos, artigos de revistas, jogos,
contedo de esportes e notcias (AMAZON, 2011).

59
Um servidor instalado no avio, possui um ponto de acesso wireless38 e trabalha em
conjunto com os servidores centrais implementados na nuvem. Sempre que um avio
aterrissa, o servidor dele conecta-se a uma rede wireless do aeroporto, que se conecta ao
servidor para sincronizar o contedo. Esta arquitetura revolucionria na indstria area
(AMAZON, 2011).
A empresa conseguiu parceiros de negcios, permitindo que eles faam e gerenciem a
publicidade remotamente de acordo com o destino dos passageiros (AMAZON, 2011). A
Figura 19 mostra um diagrama de arquitetura a bordo e em terra funciona.

Fig. 19 Funcionamento do servidor Fonte: http://aws.amazon.com/pt/solutions/case-studies/gol-airlines/

Quando a GOL decidiu criar esse sistema, a empresa percebeu que precisava de um
provedor web para que o projeto tivesse sucesso, pois se no houver tempo suficiente para
atualizar o servidor a bordo com um arquivo grande, ele pode ser carregado parcialmente no
aeroporto atual e o restante na prxima parada (AMAZON, 2011).

38
Wireless rede de computadores sem a necessidade do uso de cabos.
60
3.10.3 Peixe Urbano

O Peixe Urbano um portal que auxilia na descoberta dos melhores produtos, servios
e atividades de cada cidade. Para as empresas locais, funciona como uma ferramenta de
marketing que permite realizar uma grande divulgao alm da fidelizao de novos clientes.
Cada cidade tem o seu prprio site do Peixe Urbano, com ofertas selecionadas a sua regio,
cobrindo mais de 80 cidades do Brasil, Argentina, Mxico e Chile (AMAZON, 2011).
O site comeou com recursos limitados para investir em infraestrutura, mas j visavam
o potencial de rpido crescimento caso o servio fizesse sucesso. Com isso escolheram o
cloud computing pela necessidade de uma soluo que tivesse custo baixo e fosse altamente
escalvel. Atualmente o Peixe Urbano executa uma mdia de 180 instncias no EC2, servio
de instncias do AWS, simultaneamente. A capacidade de escalabilidade garante a
estabilidade do site mesmo com usos extremos, em que em alguns casos a variao de pico
ultrapassa os 1000%. Utilizando o cloud computing a empresa evitou a despesa investir em
hardware, se concentrando apenas na procura de ofertas para seus usurios (AMAZON,
2011).

3.10.4 Foursquare

O Foursquare, que uma rede social baseada na localizao dos usurios, conta hoje
com de 10 milhes de contas ativas. atravs de um aplicativo para smartphones que os
usurios trocam dicas compartilham lugares por meio de sua localizao, registrando em torno
de 5 milhes de check- ins por dia. Utilizando o Amazon Elastic MapReduce, servio do
AWS, possvel realizar anlises como relatrios dirios sobre o uso de cada cliente, anlise
de tendncia a longo prazo, avaliao de novos recursos dentre outros para melhor entender e
atender seus clientes (AMAZON, 2012).
A facilidade de se fazer toda essa anlise em um provedor de nuvem simplifica o
processo de implantao e gerenciamento principalmente por causa da flexibilidade,
permitindo que os grupos de dados que tenham maior necessidade de serem analisados sejam
colocados rapidamente para anlise. Os engenheiros podem executar um cluster dedicado a
testar novas funcionalidades e a equipe de anlise de dados pode expandir dinamicamente seu
conjunto de relatrios durante os perodos de maior necessidade (AMAZON, 2012).
61
O fato de a cobrana ser feita sobre os recursos utilizados faz com que os custos sejam
reduzidos significativamente usando clusters transitrios para anlises. Alm disso, a nuvem
permite que o Foursquare evite utilizar recursos caros para manter seu grupo de anlises
utilizando a instncias disponveis (AMAZON, 2012).
Recentemente o Foursquare decidiu que iria gastar mais de 1 milho de dlares com
instncias reservadas por ano, conseguindo com isso reduzir os custos em 35%. Devido baixa
nos preos praticados pela AWS a economia foi ainda maior, pois a queda nos preos aliada
com o uso de instncias far o total de reduo dos custos chegar a 53%. Com o uso da nuvem
o Foursquare conseguiu no apenas diminuir seus gastos como tambm o tempo de
processamento de dados sem a necessidade de desenvolver aplicativos adicionais para anlise
dos dados mais urgentes (AMAZON, 2012).

3.11 Desenvolvimento do software

Aps ter as informaes necessrias sobre o provedor de cloud computing escolhido,


se deu incio ao desenvolvimento do software seguindo alguns passos:

Definio e configurao do controlador de verso;


Definio do compilador;
Configurao do ambiente de desenvolvimento;
Requisitos;
Modelagem;
Criao de manuais de implantao e de configurao;

A utilizao do controlador de verso se faz necessrio para o controle do


desenvolvimento, para realizao de backup e para facilitar a integrao entre os
desenvolvedores.

62
3.12 Implantao

A implantao foi feita pelo servio Elastic Beanstalk, que permite criar uma nova
aplicao e fazer o deploy do projeto compactado de maneira bem prtica. Existem outras
maneiras de se fazer o deploy, como por exemplo, utilizar o GIT e o AWS Elastic Beanstalk
APIs. Essa por envolver linhas de comando, o deploy se torna um pouco mais complexo,
portanto optou-se em no utilizar. Outra maneira de fazer o deploy seria utilizar o plugin de
cdigo aberto para o Eclipse Java IDE. Porm esse seria apenas para aplicaes java web que
no foi o caso da aplicao desenvolvida.
Ao iniciar uma nova aplicao foi escolhida a plataforma PHP, pois foi a linguagem
utilizada no desenvolvimento da aplicao. No ambiente criado, foi instanciado uma instncia
Linux 64 bits no EC2 e foi criado um bucket no S3 onde a aplicao foi armazenada. A Figura
20 ilustra o ambiente criado.

Fig. 20 Aplicao implantada no Elastic Beanstalk Fonte: Elaborado pelo autor.

O Elastic Beanstalk torna a implantao bastante simples, pois possui uma interface
amigvel e sem complicaes. No entanto a url oferecida para acesso aplicao no
adequada para o uso do usurio final. Para esse problema utilizou-se outro servio da AWS
chamado Route 53. Com ele foi possvel associar um domnio criado em qualquer outro site a
aplicao que foi implantada. A Figura 21 ilustra a arquitetura do Elastic Beanstalk.

63
Fig. 21 Arquitetura Elastic Beanstalk Fonte: Elaborado pelo autor.

Pode-se observar na Figura 21 que o Elastic Beanstalk torna-se a implantao bastante


simples, pois ele se encarrega de controlar os recursos que a aplicao ir utilizar.
O RDS foi o servio escolhido para ser usado com o banco de dados da aplicao. A conexo
foi realizada pelo link obtido diretamente da instncia. A Figura 22 mostra a instncia criada
no RDS e o link que foi utilizado.

Fig. 22 Instncia criada no RDS Fonte: Elaborado pelo autor.

64
Para conexo ao banco foi necessrio informar o usurio e senha que foi definida
inicialmente na criao da instncia e a manipulao do banco e criao das tabelas foram
feitos atravs do NetBeans, por meio de uma conexo remota. A figura 22 mostra essa
configurao da IDE para o acesso.

Fig. 23 Configurao da IDE para acesso ao RDS. Fonte: Elaborado pelo autor.

Aps realizar as configuraes acima foi possvel ter acesso e criar as tabelas
necessrias para uso da aplicao. As funcionalidades oferecidas pelo RDS permitem criar as
tabelas de duas formas. A primeira por meio da interface do Netbeans e a segunda por meio
de scripts SQL.
Para um melhor entendimento sobre a estrutura do Elastic Beanstalk, foi elaborado um
diagrama para demonstrao. A Figura

3.13 Migrao entre regies

A migrao entre regies importante quando se deseja utilizar alguma outra regio
que esteja mais prxima ou que oferea uma latncia menor.
A migrao do Elastic Block Store (EBS) pode ser feita por um recurso chamado EBS
Snapshot Copy que permite copiar os snapshots de discos EBS entre regies diferentes. Esse
recurso facilita o uso de mltiplas regies AWS para realizar uma expanso geogrfica,
migrao de data centers e disaster recovery (AMAZON, 2013). A Figura 24 ilustra uma
cpia de EBS.

65
Fig. 24 Efetuando copia de um snaphost para outra regio. Fonte: Elaborado pelo autor.

Pode-se observar que um snaphost de uma instncia de So Paulo pode ser copiado
para qualquer outra regio.

66
3.14 Resultados

Aps muito estudo e pesquisa foi possvel enfim compreender mais a fundo o que
cloud computing e como realizar a escolha do provedor de servios. A partir desse
conhecimento foi desenvolvida uma aplicao para a demonstrao prtica dos recursos
oferecidos por esse modelo computacional. A Figura 25 ilustra a aplicao criada.

Fig. 25 Aplicao desenvolvida. Fonte: http://awstcc.tk/home/home.php.

Foi desenvolvido um sistema de armazenamento e manipulao de fotos, onde


possvel cort-las, criar lbuns personalizados e exib-las online. O principal objetivo da
criao desse aplicativo utilizar os principais recursos da computao em nuvem como
escalabilidade de recursos, mquinas virtuais, replicao de banco de dados dentre outros.
Para isso, alguns servios foram utilizados como o Elastic Compute Cloud (EC2), Simple
Storage Service (S3), Elastik beanstalk, Route 53 e o Relational Database Service (RDS). A
Figura 26 ilustra a arquitetura desses recursos sendo utilizada pela aplicao.

67
Fig. 26 Arquitetura de usurio utilizando os recursos AWS Fonte: Elaborado pelo autor

Pode-se observar que o usurio entra com o endereo da aplicao, o Route 53 faz o
direcionamento do endereo externo para a aplicao, o Elastic Load Balancing faz a
distribuio de carga entre as instncias EC2 e o Auto Scaling finca encarregado de criar e
excluir instncias conforme a demanda da aplicao. Outros recursos que utilizados tambm
foi o S3 e o banco de dados RDS.
. As linguagens utilizadas para o desenvolvimento da aplicao foram o PHP, para
processar as requisies do aplicativo, o JavaScript para validao dos formulrios, o JQuery
e seu plugin JCrop para localizao dinmica dos lbuns e recorte de fotos.
Com o uso do SDK39 para PHP fornecido pela AWS foi possvel que a aplicao
realizasse o acesso ao S3. Esse SDK um conjunto de classes PHP que elimina a
complexidade de cdigo em se conectar aos servios da AWS.
A figura 24 mostra como acessar esse servio para a criao de um bucket no S3.

39
SDK- Sigla de Software Development Kit.
68
Fig. 27 Cdigo PHP pra criao do bucket no S3 Fonte: Elaborado pelo autor.

Ao criar uma instncia no S3 foram geradas as credenciais de acesso. Para manipular


os diretrios S3 necessrio informar essas chaves em todas as requisies. A Figura 28
mostra os buckets criados a partir da aplicao pelos cdigos demostrados na Figura 27.

Fig. 28 Buckets de usurios no S3. Fonte: Elaborado pelo autor.

Com isso possvel que cada usurio tenha seus arquivos protegidos e separados dos
demais, pois cada usurio registrado na aplicao tem seu prprio bucket. Dentro deles
possvel a criao de lbuns se assim solicitados pelos usurios

69
Para a criao do lbum, foi utilizado o mtodo putObject do SDK. Ele faz a
verificao da existncia desse lbum; caso ele exista, os arquivos so gravados nele, caso
contrrio, o lbum criado. A Figura 29 ilustra a utilizao mtodo.

Fig. 29 Cdigo PHP para criao de lbuns e arquivos. Fonte: Elaborado pelo autor.

Esse mtodo retorna uma reposta, pois caso o arquivo no seja gravado retornada
uma reposta de falha e a quantidade de fotos que no foram gravadas, do contrrio uma
resposta positiva devolvida. A Figura 30 ilustra o resultado conseguido com esse mtodo.

Fig. 30 lbuns e fotos criados pela aplicao Fonte: Elaborado pelo autor.

70
Para realizar a excluso dos arquivos foi utilizada a funo unlink. Essa funo
recebe o diretrio e nome do arquivo a ser excludo e retorna uma reposta de sucesso ou falha.
O cdigo ilustrado a na Figura 31.

Fig. 31 Cdigo PHP para excluso de lbuns e arquivos. Fonte: Elaborado pelo autor.

O uso do SDK diminui a complexidade da manipulao dos diretrios no S3,


economizando tempo e oferecendo segurana aos arquivos, pois para ter acesso preciso
informar a key pair.
Outro recurso utilizado na aplicao foi o RDS, que a instncia de banco de dados da
aplicao onde ficaro armazenados os cadastros dos usurios. Ao criar uma instncia, foi
definido um usurio, uma senha e gerado um link para acesso a ela.
A conexo foi feita atravs do PDO40, por ele foram passados os parmetros como
usurio, senha, nome da instncia, link de acesso e a porta de conexo.
O Elastic Beanstalk foi utilizado para implantao da aplicao na nuvem. Ele oferece
o ambiente de desenvolvimento e faz a escalabilidade dos recursos conforme a necessidade. A
Figura 32 mostra como foi feita a configurao do escalonamento automtico da aplicao
implantada.

40
PDO O PHP Data Objects um modo de acesso base de dados em PHP.
71
Fig. 32 Painel de configurao do Elastic Beanstalk Fonte: Elaborado pelo autor.

Nesse painel de configurao do ambiente de desenvolvimento possvel configurar a


escalabilidade de acordo com os limites que forem colocados, podendo ser medidos pelo uso
de processamento, quantidade de trfego na rede ou pela latncia.

72
4 DISCUSSO DOS RESULTADOS

Com o estudo dos conceitos e servios da computao em nuvem, foi possvel criar
uma aplicao que utilizasse ambos. Configurando o Elastic Beanstalk para a criao de
instncias adicionais no EC2 conseguimos garantir que o servidor ficasse sobrecarregado e
houvesse o risco de a aplicao ficar inoperante.
Pelo fato de a aplicao desenvolvida no ser pblica e por isso no contar com um
grande nmero de acessos, a escalabilidade foi configurada com um valor mximo de 25% e
mnimo de 10% de utilizao da CPU. Lembrando que a instncia escolhida a t1.micro e
possui uma baixa capacidade de processamento, sendo que a quantidade de processamento
pode ser facilmente atingida.
No comeo foi simulado um acesso aplicao com a configurao feita para no
criar instncias adicionais. O resultado foi que o processamento ultrapassou os 25%
estipulados e continuou subindo, como ocorre atualmente no modelo convencional de
computao. Na Figura 33 ilustrada a instncia.

Fig. 33 Instncia criada no EC2. Fonte: Elaborado pelo autor.

Observa-se que existe apenas uma instncia EC2 criada e executando na nuvem, por
isso a aplicao corre o risco de ficar indisponvel caso acontea uma falha nela e no exista
outra para assumir o processamento. As Figuras 34 e 35 ilustram as estatsticas de utilizao
desta instncia.

73
Fig. 34 Painel de estatstica da instncia Fonte: Elaborado pelo autor.

Fig. 35 Estatsticas de uso da aplicao com uma instncia. Fonte: Elaborado pelo autor.

Em seguida a configurao foi alterada para que, quando o limite de processamento da


CPU tivesse sido ultrapassado, automaticamente fosse criada uma segunda instncia,
conforme mostra a Figura 36.

74
Fig. 36 Configuraes de escalabilidade. Fonte: Elaborado pelo autor.

Em seguida foi realizado um upload de vrios arquivos de fotos que geraram um uso
da CPU de 31% conforme a figura 37.

Fig. 37 Estatsticas de uso da aplicao com uma instncia Fonte: Elaborado pelo autor.

Imediatamente uma nova instncia comeou a ser inicializada no EC2, para que esse
valor se mantivesse dentro do estipulado na configurao anterior.
O recurso responsvel para que esse escalonamento acontecesse foi o Auto Scaling,
que permite que os servidores do EC2 aumentem ou diminuam os recursos automaticamente
de acordo com definies estabelecidas previamente para a aplicao. A Figura 38 ilustra a
criao automtica desta segunda instncia.

75
Fig. 38 Criao da segunda instncia. Fonte: Elaborado pelo autor.

Quando esse valor fica, por um certo perodo, dentro dos valores escolhidos de
processamento, automaticamente a instncia eliminada. A Figura 39 mostra as estatsticas
do uso das duas instncias.

Fig. 39 Estatsticas de uso da aplicao com duas instncias. Fonte: Prprio autor.

A Figura 40 mostra a segunda instncia terminada automaticamente aps o uso do


processador ser normalizado.

Fig. 40 Segunda instncia sendo terminada. Fonte: Elaborado pelo autor.

Com a utilizao do modelo computacional em nuvem, conseguimos uma aplicao


escalvel, que possibilita a alocao de recurso rapidamente. Se esse procedimento tivesse
sido feito com uma aplicao de grande porte, com certeza ocorreriam problemas nos testes
iniciais, pois no modelo convencional seria necessrio investir em infraestrutura sem saber se
esse pico na utilizao da CPU ocorreria novamente, mas com o cloud computing em poucos
minutos um novo servidor estava disposio.

76
5 CONSIDERAES FINAIS

Neste trabalho foi explorado e apresentado o conceito de cloud computing, os modelos


de servios, as questes de segurana e gerenciamento, as principais empresas que oferecem
esse servio e quais os recursos que cada uma delas oferece. Foi feita uma pesquisa mais
aprofundada sobre o provedor de servios da Amazon e demonstrado, de forma prtica, como
realizar o deploy de uma aplicao PHP e os principais recursos que a aplicao utilizou na
nuvem.
Pode-se observar que o fator segurana o ponto chave que as empresas precisam
analisar cuidadosamente antes de fechar qualquer contrato e que precisam confiar na poltica
de segurana da nuvem escolhida. Talvez pelo fato de o cloud computing ser um novo
modelo, as empresas no confiam totalmente em deixar dados importantes armazenados em
web services espalhados pelo mundo, por isso ainda utilizam as nuvens privadas e hbridas.
Com a pesquisa realizada sobre os provedores Windows Azure, Google App Engine e
AWS, pode-se constatar que o Azure e a AWS so infraestruturas como servio
(Infrastructure as a Service) e o Google App Egine uma plataforma como servio
Com os resultados obtidos, descobrimos que o cloud computing j est revolucionando
o modelo tradicional de TI. O escalonamento de recursos, a facilidade na implantao de
novas mquinas virtuais e principalmente por no haver a necessidade de configuraes
avanadas dessas VM, possvel ter uma grande agilidade quando se trata em atender as
demandas, possibilitando isso de forma quase instantnea e sem desperdcio de recursos.
Esses fatores pesam e muito a favor do cloud computing, alm da reduo de custos com
manuteno e aquisio de equipamentos fsicos.
Tambm foi possvel entender que o futuro do uso desse modelo est diretamente
ligado questo de segurana. Por ser uma rea delicada, ainda necessita de muito estudo e
avano.
O objetivo geral e os especficos foram alcanados, proporcionando um grande
conhecimento sobre o cloud computing. Nesta pesquisa o foco esteve no entendimento e
demonstrao deste modelo computacional criando um documento que poder servir como
referencial para futuros estudos, pesquisas e projetos realizados nesta rea, como por
exemplo, um estudo avanado sobre a segurana na utilizao deste modelo, pois um
assunto de extrema importncia para o futuro do cloud computing.

77
REFERNCIAS

ALVAREZ, M.A. Introduo ao HTML. Disponvel em:


<http://www.criarweb.com/artigos/10.php/>. Acesso em: 25 de maio 2013.

AMAZON; Amazon Auto Scaling. 2013. Disponvel em:


<http://aws.amazon.com/pt/autoscaling/> Acesso em 19 de julho de 2013.

AMAZON; Facilite migrao entre regies, expanso geogrfica e disaster recovery com
o EBS Snapshot Copy. Disponvel em: < http://aws.typepad.com/brasil/2012/12/facilite-
migracao-entre-regioes-expansao-geografica-e-disaster-recovery-com-o-ebs-snapshot-
copy.html> Acesso em 14 de novembro de 2013.

AMAZON; Amazon Cloud Front. 2013. Disponvel em:


<http://aws.amazon.com/pt/cloudfront/> Acesso em 19 de julho de 2013.

AMAZON; Amazon Cloud Watch. 2013. Disponvel em:


<http://aws.amazon.com/pt/cloudwatch/> Acesso em: 21 de julho de 2013.

AMAZON; Amazon Elastic Beanstalk. Disponvel em: <http://aws.amazon.com/pt/ebs/>


acesso em 19 de julho de 2013.

AMAZON; Amazon Elastic Block Store. 2013. Disponvel em:


<http://aws.amazon.com/pt/ebs/>. Acesso em: 07 de maro de 2013.

AMAZON; Amazon Elastic Compute Cloud. 2013. Disponvel em:


<http://aws.amazon.com/pt/ec2/> Acesso em: 07 de maro de 2013.

AMAZON; Amazon Elastic MapReduce. 2013. Disponvel em:


<http://aws.amazon.com/pt/elasticmapreduce/> Acesso em: 19 de julho de 2013.

AMAZON; Amazon Elastic Transcoder. 2013. Disponvel em: <http://aws.amazon.com/pt/


elastictranscoder/> Acesso em: 02 de outubro de 2013.

AMAZON; Amazon Fulfilment. 2013. Disponvel em:


<http://services.amazon.co.uk/services/fulfilment-by-amazon/how-it-works.html> Acesso em
19 de julho de 2013.

AMAZON; Amazon Premium Support. 2013. Disponvel em:


<http://aws.amazon.com/pt/premiumsupport/> Acesso em: 21 de junho de 2013.

AMAZON; Amazon RedShift. 2013. Disponvel em: <http://aws.amazon.com/pt/redshift/>.


Acesso em: 02 de outubro de 2013.

AMAZON; Amazon Relational Database Service. 2013. Disponvel em:


<http://aws.amazon.com/pt/rds/>. Acesso em: 07 de maro de 2013.

78
AMAZON; Amazon Route 53. 2013. Disponvel em: <http://aws.amazon.com/pt/route53/>
acesso em 21de julho de 2013.
AMAZON; Amazon Simple DB. 2013. Disponvel em:
<http://aws.amazon.com/pt/simpledb/> Acesso em 19 de julho de 2013.

AMAZON; Amazon Simple Email Service. 2013. Disponvel em:


<http://aws.amazon.com/pt/ses/> Acesso em 20 de julho de 2013.

AMAZON; Amazon Simple Notification Service. 2013. Disponvel em:


<http://aws.amazon.com/pt/sns/> Acesso em: 20 de junho de 2013.

AMAZON; Amazon Simple Queue Service. 2013. Disponvel em:


<http://aws.amazon.com/pt/sqs/> Acesso em 20de junho de 2013.

AMAZON; Amazon Simple Storage Service. 2013. Disponvel em:


<http://aws.amazon.com/pt/s3/>. Acesso em: 07 de maro de 2013.

AMAZON; Amazon Virtual Private Cloud. 2013. Disponvel em:


<http://aws.amazon.com/pt/vpc/>. Acesso em: 07 de maro de 2013.

AMAZON; AWS Amazon. 2013. Disponvel em: <http://aws.amazon.com/pt/what-is-aws/>.


Acesso em: 07 de maro de 2013.

AMAZON; Estudo de caso: Foursquare. 2012. Disponvel em:


<http://aws.amazon.com/pt/solutions/case-studies/foursquare/> Acesso em: 11 de setembro de
2013.

AMAZON; Estudo de caso: Gol Linhas Areas. 2011. Disponvel em:


<http://aws.amazon.com/pt/solutions/case-studies/gol-airlines/> Acesso em; 11 de setembro
2013.

AMAZON; Estudo de caso: Peixe Urbano. 2011. Disponvel em:


<http://aws.amazon.com/pt/solutions/case-studies/peixe-urbano/> Acesso em: 11 de setembro
de 2013.

ANDRADE, M. M.; Introduo Metodologia do Trabalho Cientfico. 8 Ed. So Paulo.


Atlas. 2007.

ARTHUR; Luiz; Segurana da Informao. 2009. Disponvel em:


<http://www.slideshare.net/luiz_arthur/seguranca-da-informao-conceitos>. Acesso em: 14 de
novembro de 2013.

ASHLEY, Brent. Computao em nuvem para empresas: Parte 1. Capturando a Nuvem,


2009. Disponvel em: <http://www.ibm.com/developerworks/br/java/library/0904_amrhein/>.
Acesso em: 25 de maio de 2013.

BADGER, L.; DRAFT Cloud Computing Synopsis and Recommendations. 2011.


Disponvel em: <http://csrc.nist.gov/publications/drafts/800-146/Draft-NIST-SP800-
146.pdf>. Acesso em: 28 de maio de 2013.

79
BARBOLO, Rafael. Conhea os servios em nuvem oferecidos pela Amazon. 2011.
Disponvel em: <http://www.bitabit.eng.br/2011/02/15/conheca-os-servicos-em-nuvem-
oferecidos-pela-amazon-web-services/> acesso em 19 de julho de 2013.

CAMBIUCCI, Waldemir.; Introduo ao Windows Azure. 2011. Disponvel em:


<http://msdn.microsoft.com/pt-br/library/hh150078.aspx> Acesso em: 21 de julho de 2013.

CLOUD SECURITY ALLIANCE. 2012. Da Prtica Para o Exame. Disponvel em:


<https://chapters.cloudsecurityalliance.org/brazil/files/2012/04/cap17.pdf>. Acesso em: 03 de
junho de 2013.

CLOUD COMPUTING USE CASES GROUP; Use Cases. 2010. Disponvel em:
<http://cloudusecases.org/Cloud_Computing_Use_Cases_Whitepaper-4_0.odt>. Acesso em:
03 de junho de 2013.

COND, Luciano.; Virtual Network agora tem suporte para Windows RRAS e Conexo
Ponto para Rede Virtual. 2013. Disponvel em:
<http://blogs.msdn.com/b/conde/archive/2013/05/06/an-250-ncio-virtual-networks-agora-
suporta-windows-rras-e-conex-227-o-ponto-para-rede-virtual.aspx> Acesso em: 27 de agosto
de 2013.

EDIN, C. S. B.; Computao em nuvem e as diferenas tecnolgicas entre amazon e o


azure. 2011. Disponvel em:
<http://repositorio.roca.utfpr.edu.br:8080/jspui/bitstream/1/648/1/CT_TELEINFO_XIX_2011
_04.pdf/>. Acesso em: 06 de maro de 2013.

FROST & SULLIVAN; Comparing CDN Performance: Amazon Cloud Fronts Last Mile
Testing Results. 2013. Disponvel em:
<http://media.amazonwebservices.com/FS_WP_AWS_CDN_CloudFront.pdf> Acesso em 19
de julho de 2013.

GARCIA, Felipe.; OpsWorks x Elastic Beanstalk. 2013. Disponvel em:


<http://awshub.com.br/forum/index.php?/topic/3823-opsworks-x-elastic-beanstalk/> Acesso
em: 02 de outubro de 2013.

GIL, A.C.; Mtodos e Tcnicas de Pesquisa Social. 5. Ed. So Paulo. Atlas. 2007.

GODINHO, Rafael.; Windows Azure Compute: Roles. 2013. Disponvel em:


<http://msdn.microsoft.com/pt-br/windowsazure/hh500326> Acesso em: 24 de julho de 2013.

GOLDEN, Bernard.; SLA: Todo cuidado pouco em computao na nuvem. 2011.


Disponvel em: <http://computerworld.uol.com.br/tecnologia/2011/11/14/slas-todo-o-
cuidado-e-pouco-em-computacao-em-nuvem-sera/> Acesso em: 19 de julho de 2013.

GOODMAN, D.; JavaScript - Guia definitivo. 4 Ed. OReilly & Associates, Inc.2002.

GOOGLE. Whats is Google AppEngine. 2013. Disponvel em:


<https://developers.google.com/appengine/docs/whatisgoogleappengine> Acesso em: 27 de
agosto de 2013.

80
GUIMARES, Leandro;. Sua aplicao Java nas nuvens: de conceitos a exemplos em
AWS e Google App Engine. 2012. Disponvel em:
<http://www.infoq.com/br/presentations/java-nuvem-aws-gae> Acesso em: 11 de setembro de
2013.

HONORATO, G.; Conhecendo o marketing. So Paulo. Manole. 2004.

HSU, S.S.; As Bases do Cloud Computing. 2009. Disponvel em:


<http://fateczl.edu.br/TCC/2009-2/tcc-57.pdf/>. Acesso em: 01 de maro de 2013.

ING; Estudo de Caso: Grupo ING Disponvel em:


<http://www.itpreneurs.com/document/case-study.pdf> Acesso em: 11 de setembro de 2013.

MELO, T. R.; Computao em nuvem. Universidade do Vale do Sapuca, 2009.

MICROSOFT. Viso geral do Traffic Manager. 2013. Disponvel em:


<http://msdn.microsoft.com/pt-br/library/windowsazure/hh744833.aspx> Acesso em 27de
agosto de 2013.
MICROSOFT. Windows Azure. 2010, Disponvel em:
<http://www.microsoft.com/brasil/servidores/windowsserver2008/editions/windowsazure.ms
px>. Acessado em: 07 de maro 2013.

MICROSOFT; Windows Azure. 2013. Disponvel em: <http://www.windowsazure.com/en-


us/develop/net/fundamentals/intro-to-windows-azure/?fb=pt-br>. Acesso em: 27 de abril
2013.

MIYAGUSKU, R. Desenvolvendo os Recursos do CSS. So Paulo. Digerati Books, 2007

READHAT. Why the future of the cloud is open. 2012. Disponvel em:
<http://www.redhat.com/rhecm/restrhecm/jcr/repository/collaboration/jcr:system/jcr:versionS
torage/7dc14d8f0a0526016894ca8fec26281a/4/jcr:frozenNode/rh:pdfFile.pdf>. Acesso em:
03 de junho de 2013.

ROGER, Grimes; Rogue employees and clueless users can cause even more damage than
the bad guys outside the gate. 2010. Disponvel em: <http://www.infoworld.com/d/security-
central/the-true-extent-insider-security-threats-281>. Acesso em: 03 de junho de 2013.

SILVA, Mauricio Samy; HTML 5 - A Linguagem de Marcao que Revolucionou a Web.


NOVATEC. 2011.

SILVA, Mauricio Samy; JavaScript Guia do Programador. NOVATEC. 2010.

SILVA, Mauricio Samy; JQuery A Biblioteca do Programador JavaScript. NOVATEC.


2012.

SNOWMAN, G. 2010. Diferena nos tipos de Computao nas Nuvens. Disponvel em:
<http://www.solidq.com/sqj/pt/Documents/2010_August_Issue/SQJ%20002.pdf>. Acesso
em: 28 de maio de 2013.

81
TAURION, C.; Cloud Computing: Transformando o mundo da Tecnologia da
Informao. Editora Brasport. Rio de Janeiro 2009.

TAURION, C.; Bate papo sobre Cloud Computing. 2009. Disponvel em:
<https://www.ibm.com/developerworks/community/blogs/ctaurion/entry/seguran_c3_a7a_em
_cloud_computing3?lang=en>. Acesso em: 06 de junho de 2013.

TAURION, C.; Vantagens da computao em nuvem. 2010. Disponvel em:


<http://www.youtube.com/watch?v=HJre77TPpSw/>. Acesso em: 05 de abril de 2013.

TLCBrazil. Disponvel em:


<https://www.ibm.com/developerworks/community/blogs/tlcbr/entry/seguranca_cloud_comp
uting?lang=en>. Acesso em: 03 de junho de 2013.

TUDE, Eduardo.; Service Level Agreement (SLA). 2003. Disponvel em:


<http://www.teleco.com.br/DVD/PDF/tutorialsla.pdf> acesso em 19 de julho de 2013.

WALDEMIR, Cambiucci.; Introduo sobre o SQL Azure. 2011. Disponvel em:


<http://msdn.microsoft.com/pt-br/library/hh147515.aspx>. Acesso em: 27 de abril de 2013.

82
APNDICES
APNDICE 1
CONFIGURAO DO REPOSITRIO SUBVERSION
Configurao do repositrio subversion.

Para que seja possvel o uso do controle de verso necessrio configurar um


repositrio, no caso desse projeto, o Google Code foi escolhido por j ter sido utilizado
anteriormente. Abaixo seguem os passos para a sua configurao.

1. necessrio ter uma conta no Google. Aps a criao dela, acessar o endereo
https://code.google.com/intl/pt-BR/ e fazer o login.

2. Aps isso, na tela seguinte ir at a opo Create a new project como ilustrado na
Figura 01.

Fig. 01 Criao do projeto no repositrio. Fonte: Elaborado pelo autor.

3. A seguir necessrio colocar as informaes do projeto criado, como nome, licena


do cdigo fonte e o tipo de controlador de verso que ser utilizado, neste caso
especfico escolha o subversion (SVN). A Figura 2 ilustra a tela para preenchimento
destas informaes.
Fig. 02 Preenchimento com as informaes do projeto. Fonte: Elaborado pelo autor.

4. Aps isso sero apresentados o endereo do repositrio criado


(https://photoupload.googlecode.com/svn/trunk/) e o link (googlecode.com password),
necessrios para a configurao do controle de verso. Atravs desse link ser possvel
a obteno da senha do repositrio, para ser utilizada por todos os membros do
projeto. A figura 03 ilustra a tela de obteno do link para acesso ao repositrio.

Fig. 03 Endereo para acesso ao repositrio. Fonte: Elaborado pelo autor.

Aps seguir esses passos, o repositrio estar devidamente configurado para ser usado
com o SVN.
APNDICE 2
CONFIGURAO DO CONTROLE D VERSO NO
NETBEANS
Configurao do controle de verso no NetBeans

A IDE de desenvolvimento escolhida foi o NetBeans IDE 7.3.1 por ser uma
ferramenta j conhecida pelos membros do projeto. A seguir sero apresentados os passos
utilizados para configurao do SNV no NetBeans, partindo do pressuposto de que o mesmo
j esteja instalado. O tutorial de criao do repositrio pr-requisito para que seja possvel
prosseguir.

1. No menu equipe > subversion > efetuar check-out so configuradas as informaes


necessrias para o acesso ao repositrio, como mostra a Figura 04.

Fig. 04 Configurao para acesso ao repositrio. Fonte: Elaborado pelo autor

2. Aps realizar a configurao anterior, clique no boto Prximo. Ser apresentada


uma segunda tela de configurao, nessa tela escolha no campo Pasta Local o
caminho C:\xampp\htdocs que a pasta servidor local como mostra a Figura 05.
Fig. 05 Configurao para pasta do servidor local. Fonte: Elaborado pelo autor.

3. Aps o trmino das configuraes anteriores, ao clicar em Finalizar,


automaticamente ser exibida a tela para a criao do projeto, clique em Criar
Projeto, como mostra a Figura 06.

Fig. 06 Criao do projeto na IDE. Fonte: Elaborado pelo autor.

4. Na Figura 07 escolha a linguagem do novo projeto, no caso desse tutorial foi


escolhido o PHP.
Fig. 07 Escolha da linguagem do projeto. Fonte: Elaborado pelo autor.

5. Por fim escolha o nome e a localizao onde o projeto ser salvo. Vale lembrar que
precisa ser na mesma pasta onde foi configurado anteriormente o repositrio
(c:\xampp\htdocs). Feito isso, est concluda a parte de configurao do repositrio e
criao do projeto.

Fig. 08 Concluso da configurao Fonte: Elaborado pelo prprio autor.


Com isso as configuraes do projeto e a sincronizao com o repositrio Subversion
esto completas, possibilitando a todo o grupo de desenvolvimento do projeto desenvolver em
conjunto.
APNDICE 3
AMAZON ROUTE 53
Amazon Route 53

Esse o servio que possibilita o acesso instncias do Elastic Beanstalk e do EC2


atravs de um domnio pblico por meio de DSN que a AWS oferece. Esse tutorial parte do
pressuposto de que o usurio j tenha um domnio criado. Neste tutorial foi criado um gratuito
no dot.tk (www.dot.tk). Vale lembrar que esse tutorial no aborda o uso deste servio com
instncias do EC2, que feita atravs de um IP elstico.

1. Clicar na aba Services no console de servios da AWS e escolher o Route 53, aps a
janela do servio se abrir clicar em Create Hosted Zone como ilustrado na Figura 09.

Fig. 09 Tela inicial do Route 53. Fonte: Elaborado pelo autor.

2. Na Figura 10, no canto direito h o campo Domain Name, nele ser colocado o
domnio criado, no caso awstcc.tk. Aps isso clicar em Create Hosted Zone.

Fig. 10 Criando a Hosted Zone. Fonte: Elaborado pelo autor.


3. No lado direito, no campo Delegation Set sero mostrados os DNS que foram
disponibilizados pelo servio. Agora selecionar o domnio que foi criado e clicar em
Go to records sets como ilustrado na Figura 11.

Fig. 11 Domnios criados. Fonte: Elaborado pelo autor.

4. Nesta tela ilustrada na Figura 12, no canto superior esquerdo, clicar em Create record
set. Do lado direito aparecero vrios campos. O campo Name onde ser colocado
o prefixo para o domnio, na Figura 12 foram criados trs registros, um com o prefixo
www, outro com * e outro em branco, assim o domnio ser reconhecido pelo
servio de vrias maneiras. No campo Alias, escolha a opo Yes, uma lista ir
aparecer contendo todas as instncias ativas da conta.

Fig. 12 Criando um Record Set. Fonte: Elaborado pelo autor.


5. Aps escolher a instncia desejada, clique em Create Record Set no canto inferior
direito e pronto, a rota est criada.

6. Por fim, preciso acessar a pgina de configurao do domnio criado e colocar os


DSN fornecidos pelo Route 53, para que o domnio aponte para esse servio. A Figura
13 ilustra a configurao realizada.

Fig. 13 Colocando DNS do Route 53 no domnio. Fonte:Elaborado pelo autor.

Com isso conclui-se a configurao do Route 53 para realizar o apontamento dos


domnios externos para as instncias. A Figura 14 ilustra a execuo da aplicao.
.

Fig. 14 Acessando aplicao atravs do Route 53. Fonte: Elaborado pelo autor.
APNDICE 4
AMAZON ELASTIC BEANSTALK
Amazon Elastic Beanstalk

O Elastic Beanstalk o local onde ser criado o ambiente de desenvolvimento, com


suporte a PHP, Python, Node.js dentre outras linguagens. A criao deste ambiente
automaticamente instancia uma mquina virtual no EC2, pois ela quem ficar encarregada
de realizar todo o processamento da nuvem
A baixo segue os passos para implantar uma aplicao utilizando o Elastic Beanstalk.

1. Clicar na aba Services no console de servios da AWS e escolha o Elastic Beanstalk,


aps a janela do servio se abrir clicar em Create a New Application como ilustrado
na Figura 15.

Fig. 15 Tela inicial do Elastic Beanstalk.


Fonte: Elaborado pelo autor.

2. No campo Aplication name inseri o nome da aplicao. No campo Description


possvel colocar uma descrio para ela, porm facultativo. Aps inserir esses dados,
clicar em Create.como demostrado na Figura 16.
Fig. 16 Criando aplicao. Fonte: Elaborado pelo autor.

3. Na tela de configurao do ambiente de desenvolvimento, marcar a caixa de dilogo


Launch a new enviroment running this application para que o Beanstalk permita
configurar as opes de importar um projeto j existente e a criao de instncias no
RDS.

4. No campo Predefined Configration escolha a linguagem desejada para o ambiente de


desenvolvimento. Por padro a instncia criada no EC2 ser um servidor Linux de 64
bits, para modificar clicar em Change Defaults.

5. No campo Environment type existem duas opes. A primeira a Single Instance,


opo que utiliza apenas os recursos disponveis pelo servidor instanciado, ou seja,
no existe escalabilidade. A segunda a Load balancing, autoscaling, essa permite
que o Beanstalk faa o balanceamento de cargas entre instncias e use a
escalabilidade, com a criao de instncias adicionais quando necessrio. A Figura 17
demostra a configurao realizada.

Fig. 17 Configurando o ambiente de desenvolvimento. Fonte: Elaborado pelo autor.


6. Aps clicar em Continue, ser perguntado se o usurio quer que a Amazon coloque
uma aplicao de exemplo na instncia ou se quer fazer o upload de uma aplicao j
existente. No segundo caso clicar em Choose File e escolha o arquivo (tem que ser
no formato .zip) e clicar em Continue. A Figura 18 ilustra esses passos.

Fig. 18 Fazendo upload da aplicao. Fonte: Elaborado pelo autor.

7. Na Figura 19 sero pedidas as informaes do ambiente de desenvolvimento. Este o


local onde o usurio ir colocar o nome do ambiente no campo Environment name e
a URL de acesso aplicao no campo Environment URL. Clique em Check
availability para verificar se essa URL est disponvel.

Fig. 19 Nomeando o ambiente. Fonte: Elaborado pelo autor.

8. Na Figura 20 o Beanstalk dar duas opes. Onde a primeira permite a criao de uma
instncia no RDS e a segunda permite colocar esse ambiente dentro de uma rede
virtual com o VPC.
Fig. 20 Configurando recursos adicionais. Fonte: Elaborado pelo autor.

9. No caso de escolha da criao de uma instncia no RDS, aparecer uma tela de


configurao pedindo dados como o tipo de instncia, utilizao de key pairs e perfil
da instncia. A Figura 21 demostra a configurao realizada.

Fig. 21 Configurando a instncia usada pelo Elastic Beanstalk. Fonte: Elaborado pelo autor.

10. Aps os passos anteriores o ambiente est configurado. A Figura 22 mostra a tela
inicial do Beanstalk, onde sero listados todos os ambientes existentes.

Fig. 22 Ambiente de desenvolvimento criado. Fonte: Elaborado pelo autor.


Entrando no ambiente configurado, sero encontradas vrias opes de monitoramento
e configurao, sade do servio e verso da aplicao que est em uso, assim como o link
para acessar a aplicao no Beanstalk. A Figura 23 ilustra o ambiente que foi configurado

Fig. 23 Pgina principal do ambiente de desenvolvimento. Fonte: Elaborado pelo autor.

A Figura 24 mostra a aplicao que foi implementada e implantada pelo Beanstalk


sendo acessada pelo link fornecido pelo servio.

Fig. 24 Aplicao sendo executada no Elastic Beanstalk. Fonte: Elaborado pelo autor.
Na opo Configuration possvel escolher as configuraes de escalabilidade, tipo da
instncia, configuraes de notificao, configuraes de logs e de rede. A Figura 25
demostra essas configuraes.

Fig. 25 Tela de configurao do ambiente de desenvolvimento. Fonte: Elaborado pelo autor.


APNDICE 5
AMAZON ELASTIC COMPUTING CLOUD (EC2)
Amazon Elastic Compute Cloud (EC2)

O EC2 o servio que oferece instncias para que sejam usadas em uma rede virtual
ou por aplicaes que sejam um SaaS e portanto iro utilizar o processamento delas. Este
tutorial mostra como criar e acessar as instncias tanto para Linux, quanto para Windows.

1. Acessar o servio do Elastic Compute Cloud, a tela principal ser mostrada


informando quantas instncias, pair keys, grupos de segurana, elastic ips , snap shots
e outros servios associados ao uso de instncias existem criados. Nessa tela clicar em
Launch Instance como demonstrado na Figura 26.

Fig. 26 Tela inicial do Elastic Cloud Computing. Fonte: Elaborado pelo autor.

2. Na configurao da Figura 27 existem trs opes para a criao da instncia:


Classic Wizard: O usurio escolhe de acordo com sua necessidade todos os
detalhes e configuraes da instncia.
Quick Launch Wizard: Ser criada uma instncia com configuraes pr-
definidas pela AWS;
AWS Market: uma loja on-line da Amazon, onde o usurio pode comprar
uma aplicao pronta que instantaneamente implantada junto com uma
instncia, que pago, apenas pelo tempo de uso.

Neste passo escolher a opo Classic Wizard e clicar em Continue.


Fig. 27 Tela para a escolha das instncias. Fonte: Elaborado pelo autor.

3. Na Figura 28 sero exibidos vrios tipos de instncias Linux e Windows, aps


escolher clique no boto Select.

Fig. 28 Escolha do tipo de instncia. Fonte: Elaborado pelo autor.


4. Nos passos demostrados na Figura 29 e na Figura 30 sero configurados o tipo e a
quantidade de instncias, assim como a zona de que ela far parte.

Fig. 29 Tela para configurao da instncia. Fonte: Elaborado pelo autor.

Fig. 30 Tipos de instncia para a escolha. Fonte: Elaborado pelo autor.


5. Na Figura 31 sero apresentadas as configuraes avanadas, como a escolha de um
kernel e tipo de memria RAM, ativar ou no o CloudWatch, escolha do IAM e
criao de um public IP.

Fig. 31 Tela de configuraes avanadas da instncia. Fonte: Elaborado pelo autor.

6. Na sequncia a Figura 32 demostra a configurao da memria de armazenamento da


instncia, com a possibilidade de usar um armazenamento convencional escolhendo o
Root Volume ou utilizar o servio Elastic Block Store que oferece muitos recursos,
porm tem custos adicionais, escolhendo EBS Volumes.
Fig. 32 Configurao da memria principal da instncia. Fonte: Elaborado pelo autor.

7. Agora escolher um nome para key pair, que a chave que ser usada para acesso
instncia como demostrado na Figura 33.

Fig. 33 Criando uma key pair. Fonte: Elaborado pelo autor.


8. A seguir na Figura 34 ser apresentada a tela de configurao do firewall onde sero
configuradas as portas de acesso e as regras de segurana para a instncia.

Fig. 34 Criando regras para o firewall. Fonte: Elaborado pelo autor.

9. Por fim sero apresentadas as informaes de todas as configuraes da instncia para


conferncia como ilustrado na Figura 35.
Fig. 35 Viso geral das configuraes. Fonte: Elaborado pelo autor.

10. As Figuras 36 e 37 ilustram a instncia que foi criada, mas leva alguns minutos para
que ela esteja inicializada com suas configuraes.

Fig. 36 Instncia sendo criada no Elastic Cloud Compute. Fonte: Elaborado pelo autor.

Fig. 37 Instncia criada no Elastic Cloud Compute. Fonte: Elaborado pelo autor.

11. Para se conectar instncia, aps selecion-la clicar com o boto direito sobre ela e
em seguida no menu Connect como ilustrado na Figura 38.
Fig. 38 Menu de opes da instncia. Fonte: Elaborado pelo autor.
APNDICE 6
CONEXO A UMA INSTNCIA LINUX
Conexo a uma instncia Linux

Essa parte do tutorial assume que o usurio tenha seguido at no apndice 5 e que a
instncia escolhida tenha sido com o sistema operacional Linux.

1. Aps selecionar a opo Connect, na tela que se abriu selecionar a segunda opo
Connect from your browser using the Java SSH Client, lembrando que necessrio
ter o Java instalado no computador. No campo Private key coloque o caminho de
onde o arquivo da chave foi salvo e clique em Launch SSH Client.A Figura 39 ilustra
essa configurao.

Fig. 39 Tela principal de conexo a uma instncia Linux. Fonte: Elaborado pelo autor.
2. Aps isso ele instalar localmente o mindTerm, que o cliente que dar acesso ao
console da sua instncia Linux. A Figura 40 demostra o mindTerm dando acesso a
uma instncia Linux.

Fig. 40 mindTerm dando acesso instncia Linux. Fonte: Elaborado pelo autor.

Depois de instalado, o mindTerm dar acesso e o controle da instncia Linux.


APNDICE 7
CONEXO UMA INSTNCIA WINDOWS
Conexo a instncia Windows

Essa parte do tutorial assume que o usurio tenha seguido at o passo 10 e que a
instncia escolhida tenha sido com o sistema operacional Windows.

1. Aps selecionar a opo Connect, na tela que se abriu selecione a opo Log in with
your credentials e clique em Retrieve Password como demostrado na Figura 41.

Fig. 41 Tela de conexo a uma instncia Windows. Fonte: Elaborado pelo autor.

2. Clique no boto Escolher Arquivo e selecione sua pair key e em seguida clique em
Decrypt Password como ilustrado na Figura 42.
Fig. 42 Decodificando a key pair para acesso. Fonte: Elaborado pelo autor.

3. A Figura 43 ir mostrar o IP da instncia, o usurio e a senha de acesso, que foi


decodificada de sua pair key.
Fig. 43 Dados para acesso instncia Windows. Fonte: Elaborado pelo autor.

4. Com esses dados, abrir o acesso remoto do Windows e digite o IP fornecido


anteriormente e clique em Conectar como ilustrado na Figura 44.

Fig. 44 Acessando a instncia no Elastic Cloud Compute.


Fonte: Elaborado pelo autor.
5. A seguir sero pedidos o usurio e senha como ilustrado na Figura 45. Colocar e clicar
em OK.

Fig. 45 Colocando Usurio e senha para acesso. Fonte: Elaborado pelo autor.

Fig. 46 Conectando instncia. Fonte: Elaborado pelo autor.

Aps seguir esses passos, ser possvel o acesso instncia criada, conforme a a
Figura 47.
Fig. 47 Instncia acessada pelo acesso remoto do Windows. Fonte: Elaborado pelo autor.

Com esse acesso possvel utilizar a instncia como ambiente de desenvolvimento,


servidor ou at mesmo rodar jogos.
APNDICE 8
AMAZON RDS
Amazon RDS

O Amazon RDS o servio que fornece uma instncia de banco de dados na nuvem.
Este tutorial mostra como criar uma instncia.

1. Acessar o RDS no console do AWS e clicar em Launch a DB instance como


ilustrado na Figura 48.

Fig. 48 Tela inicial do Amazon RDS. Fonte: Elaborado pelo autor.

2. Na tela a seguir ilustrado na Figura 49 escolher o tipo da instncia (SQLServer, MySql


ou Oracle). Aps isso clicar em Select.
Fig. 49 Opes de bancos de dados. Fonte: Elaborado pelo autor.

3. Em seguida o provedor ir perguntar se deseja criar uma instncia para fins


comerciais, se a escolha for sim, ser oferecida a utilizao do servio Multi-AZ e
Provisioned IOPS. A Figura 50 demostra essa tela.
Fig. 50 Configurao do banco de dados . Fonte: Elaborado pelo autor.

4. Na Figura 51 sero pedidas as configuraes da instncia, como o tipo de licena, a


verso da engine, o tipo da instncia, tamanho, usurio e senha.

Fig. 51 Detalhes da instncia. Fonte: Elaborado pelo autor.


5. Nas configuraes adicionais, sero pedidos dados como nome da instncia, grupo de
segurana, grupo da VPC e zona de criao como demostrado na Figura 52.

Fig. 52 Configuraes adicionais do Amazon RDS. Fonte: Elaborado pelo autor.

6. A Figura 53 demostra a configurao do backup automtico.


Fig. 53 Configurando o backup automtico. Fonte: Elaborado pelo autor.

7. Por fim sero exibidas todas as configuraes selecionadas para a criao da instncia
como ilustrado na Figura 54.
Fig. 54 Resumo das configuraes escolhidas. Fonte: Elaborado pelo autor.

Com os passos anteriores concludos, aguardar alguns minutos at que ela seja criada
nos servidores da AWS. A Figura 55 demostra o RDS sendo criado e a Figura 55 ilustra o
RDS Criado.
.

Fig. 55 Instncia sendo criada no Amazon RDS. Fonte: Elaborado pelo autor.
Fig. 56 Instncia criada no Amazon RDS. Fonte: Elaborado pelo autor.

Clicando sobre a instncia possvel ver todas as configuraes dela como


demostrado na Figura 57.

Fig. 57 Propriedades da instncia no Amazon RDS. Fonte: Elaborado pelo autor.


APNDICE 9
AMAZON S3
Amazon S3

O Amazon S3 o servio que oferece o armazenamento de diversos dados com


variados formatos, como vdeos, msicas e etc. nele que o Amazon Elastic Beanstalk
armazena a aplicao e os arquivos gerados por ela.

1. Para a criao de um bucket no S3, primeiro acessar o servio e em seguida clicar em


Create Bucket como demostrado na Figura 58.

Fig. 58 Tela inicial do Amazon S3. Fonte: Elaborado pelo autor.

2. Na tela seguinte demostrado na Figura 59, sero pedidos o nome e a regio do bucket,
aps colocar essas informaes, clicar em Create.

Fig. 59 Escolhendo nome e regio. Fonte: Elaborado pelo autor.


3. Por fim o bucket foi criado e ser apresentado na tela como ilustrado na Figura 60.
possvel acess-lo, criar pastas e manipular arquivos clicando duas vezes em cima do
nome dele.

Fig. 60 Relao de buckets criados no Amazon S3. Fonte: Elaborado pelo autor.

Na tela principal do Amazon S3 aps selecionar o bucket criado, no lado direito do


console ser mostrado um menu de configuraes, permitindo alterar arquivos de logs,
permisses de acesso, ciclos de vida dentre outras.

Das könnte Ihnen auch gefallen