Você está na página 1de 56

Tiago Monteiro da Silva Rua Gal. Silva Jr., 855, apt.

306 Bairro de Ftima, Fortaleza/CE/Brasil CEP 60411-200

Computao em Nuvem, uma anlise das abordagens arquiteturais atuais.

Outubro de 2011

Faculdade Natalense para o Desenvolvimento do Rio Grande do Norte Programa de Ps-Graduao em Desenvolvimento de Sistemas Corporativos

Computao em Nuvem, uma anlise das abordagens arquiteturais atuais.

Elaborao: Autoria: Tiago Monteiro da Silva Tcnico em Informtica/IFRN Engenheiro de Computao/UFRN Ps-Graduando em Desenvolvimento de Sistemas Corporativos/FARN (latu sensu)

Orientao: Gleydson de A. F. Lima Engenheiro de Computao/UFRN Ps-Graduado em Sistemas Distribudos/UFRN (stricto sensu) Co-orientao: Itamir de Morais Barroca Filho Engenheiro de Computao/UFRN Frederico Lopes Tcnico em Desenvolvimento WEB/IFRN Cientista da Computao/UFRN Ps-Graduado em Sistemas e Computao/UFRN (stricto sensu)

Natal/RN, 15 de Outubro de 2011

Ficha de Identificao

Documento n: Data (ms/ano): Ttulo e Subttulo:

001/2011

Outubro/2011

Computao em Nuvens: uma anlise das abordagens arquiteturais atuais. Tiago Monteiro da Silva (Autoria)

Entidade executora:

Gleydson de Azevedo F. Lima (Orientao) Itamir de Morais Barroca Filho e Frederico Lopes (Coorientao) Faculdade Natalense para o Desenvolvimento do Rio Grande do Norte - Programa de Ps-Graduao em Desenvolvimento de Sistemas Corporativos O presente texto cientfico apresentado em torno do inovador conceito que est emergindo nesta ltima dcada na Tecnologia da Informao, denominada Computao em Nuvem (Cloud Computing). O texto inicia-se por meio de uma

Entidade patrocinada:

Resumo (abstract):

introduo citada tecnologia, passando pelos conceitos que a caracterizam alm de analisar uma plataforma especfica e, por fim, sugerir novas vises de utilizao de sua arquitetura, descrevendo abordagem. aspectos positivos e negativos em cada

Palavraschave: N de pginas:

Tecnologia da Informao; Computao em nuvens; Cloud Computing; 46

Resumo
O presente texto cientfico apresentado em torno do inovador conceito que est emergindo nesta ltima dcada na Tecnologia da Informao, denominada Computao em Nuvem (Cloud Computing). O texto inicia-se por meio de uma introduo citada tecnologia, passando pelos conceitos que a caracterizam alm de analisar uma plataforma especfica e, por fim, sugerir novas vises de utilizao de sua arquitetura, descrevendo aspectos positivos abordagem. e negativos em cada

Lista de smbolos, unidades e abreviaturas

CC ...................................................................................... Cloud Computing GC ......................................................................................Green Computing SAS-70 ............................................... Statement on Auditing Standards No. 70 ITIL ............................................ Information Technology Infrastructure Library ISO ............................................. International Organization for Standardization URL ................. ....................................................... Uniform Resource Locator VM ......................................................................................... Virtual Machine IIS ..................................................................... Internet Information Services HTTP .................................................................... Hypertext Transfer Protocol SLA .......................................................................... Service Level agreement AD ....................................................................................... Active Directory SDK ....................................................................... Software Development Kit SQL ....................................................................... Structured Query Language WCF ......................................................... Windows Communication Foundation OData .............................................................................. Open Data Protocol WRAP ........................................................Web Resource Authorization Protocol SWT ................................................................................. Simple Web Token

Lista de ilustraes

Figura 1: Grandes empresas de TI investidoras na Computao em nuvem. ...... 1 Figura 2: Quebra de paradigma por meio da fcil acessibilidade pela Internet. ... 3 Figura 3: Computao em nuvem agrega vrias tecnologias amadurecidas. ....... 4 Figura 4: O advento da Computao em Nuvem mudou a relao entre clientes e prestadores de servios. ............................................................................. 5 Figura 5: Caractersticas Essenciais da Computao em nuvem. ....................... 7 Figura 6: Diversos data center da Microsoft distribudos globalmente. ........... 15 Figura 7: Caractersticas do Windows Azure. ............................................. 19 Figura 8: Caractersticas do Windows Azure. ........................................... 20 Figura 9: Tela de login da Plataforma Windows Azure. ............................. 25 Figura 10: Tela principal do portal de desenvolvimento da Plataforma Windows Azure. .................................................................................................. 26 Figura 11: Menu superior do portal de desenvolvimento da Plataforma Windows Azure com os recursos de criao de servios. ....................................... 26 Figura 12: Menu inferior esquerda do portal de desenvolvimento da Plataforma

Windows Azure com os principais grupos de operaes. ........................... 27 Figura 13: Contas de Windows Azure ativas ou inativas associadas ao Live ID. ............................................................................................................. 27 Figura 14: Informaes sobre servidores de bancos de dados e instncias de SQL Azure. .................................................................................................. 28

Figura 15: Informaes sobre a base de dados master. .......................... 29 Figura 16: Informaes sobre o servidor SQL Azure, assim como as instncias de bases de dados presentes. ......................................................................... 29 Figura 17: Informaes sobre como criar uma nova instncia de base de dados. ................................................................................................................ 30 Figura 18: Informaes sobre a nova instncia de base de dado criada. ................................................................................................................ 30 Figura 19: Tela que permite a administrao e operao sobre o SQL Azure e instncias de bases de dados presentes no servidor. ..................................... 31 Figura 20: Execuo de um comando SQL nas nuvens. ............................. 32 Figura 21: Indicaes de como se criar uma unidade de hospedagem. .......... 33 Figura 22: Indicaes de cadastro de configuraes complementares para criao da unidade de hospedagem. ...................................................................34 Figura 23: Momentos de processamento da hospedagem do servio (I). .......... 34 Figura 24: Momentos de processamento da hospedagem do servio (II). ........ 35 Figura 25: Momentos de processamento da hospedagem do servio (III). .......35 Figura 26: Hospedagem do servio realizado com sucesso e seu respectivo link de acesso. ................................................................................................. 35 Figura 27: Aspectos favorveis e desfavorveis para o uso de CC. ............ 36 Figura 28: Uma possvel arquitetura para um cenrio de CC. ..................... 39

Lista de tabelas

Tabela 1: Comparao entre os principais provedores de servios em nuvem.12/11 Tabela 2: Principais diferenciais e benefcios do Windows Azure ........ 16/17/18/19 Tabela 3: Recursos do SQL Azure ....................................................... 22/23

Sumrio

1- Introduo .............................................................................................. 1 1.1 Motivao ................................................................................. 1 1.2 - Objetivos .................................................................................. 2 1.3 - Definio ................................................................................... 2 1.4 - Caractersticas Essenciais ............................................................ 6 1.5 Modelos de Servios .................................................................. 7 1.6 Modelos de Implantao ............................................................ 8

2. Desenvolvimento.................................................................................... 10 2.1 Polemizando a definio .......................................................... 10 2.2 Novas abordagens .................................................................... 10 2.2 Anlise da plataforma Windows Azure ....................................... 14

3. Concluses e/ou recomendaes .............................................................. 36

Referncias bibliogrficas ............................................................................ 41

1- Introduo
1.1 - Motivao

A evoluo das solues desenvolvidas dentro do escopo da Tecnologia da Informao (TI) algo natural e conforme o tempo passa as inovaes quebram e criam novos paradigmas. De 2008 para os dias atuais, diversos especialistas tm intensificado o debate acerca dos conceitos relacionados sobre a Computao em Nuvens ou Cloud Computing (CC). A nuvem computacional foi apontada pela [1] como umas das trs tendncias mais importantes nos prximos cinco anos.

Grandes empresas de TI tais como a Dell, IBM, Google e Microsoft (entre outras ilustradas na Figura 1), investem em servios que utilizam essa nova tecnologia. Esse ano, 2011, ao que percebemos, o servio na nuvem nunca esteve to em alta nas notcias envolvendo tecnologia: Crescimento anual de 60% do mercado de computao em nuvem no Brasil. Previsto que somente na Amrica Latina, os gastos com nuvem pblica devero atingir US$ 170 milhes, e no mundo inteiro o nmero dever chegar a 10 bilhes. [3]. Trata-se, portanto de uma forte tendncia de mercado.

Figura 1: Grandes empresas de TI investidoras na Computao em nuvem. Fonte: http://www.webdig.com.br/4363/em-breve-seu-computador-estara-nas-nuvens-mas-e-computacao-emnuvem

Alm desses argumentos iniciais, com a dinamicidade das comunicaes atravs da Grande Rede criou-se o conceito de nuvem informacional que abrange todas as informaes geradas a partir de blog, redes sociais, sites, frum etc. Essa gama de dados est armazenada virtualmente na Internet e precisam ser de alguma forma gerenciada. A CC vem potencializar ainda mais a nuvem informacional na medida em que novos recursos para o gerenciamento dos dados so adicionados e disponibilizados pela web. Portanto, torna-se imprescindvel a compreenso desses novos conceitos que faro parte do futuro da Tecnologia da Informao e da Comunicao (TI).

1.2 Objetivos
Inicialmente, devido heterogeneidade de conceitos que orbitam sobre a CC, seja pela comunidade acadmico-cientfica seja pelo mercado profissional, o objetivo deste trabalho focar-se- no amadurecimento da definio de CC. Essa definio tem como meta esclarecer melhor o uso de CC numa aplicao ou servio. Posteriormente, sero analisadas algumas abordagens arquiteturais centradas na classificao das aplicaes/servios. Nesse momento, sugerem-se novas vises de utilizao de arquitetura de CC, descrevendo aspectos positivos e negativos em cada abordagem. Por fim, ser concluda a viabilidade ou no do uso da CC perfazendo algumas recomendaes de utilizao.

1.3 Definio
No que se refere definio da Computao em nuvem, [2] afirma que esse neologismo refere-se tanto s aplicaes disponibilizadas como servios por meio da Internet quanto aos hardware e sistemas de software encontrados nos data centers necessrios para prover tais servios.

Analisando os servios em nuvem oferecidos pelas empresas referenciadas na Figura 1 bem como sua popularidade, percebe-se que essa tendncia j uma realidade. Alguns servios que esto funcionando na nuvem que ratificam esse raciocnio so:

Simple Storage Solution (S3), para armazenamento de dados, e Elastic Compute Cloud (EC2), para uso de mquinas virtuais da Amazon [4]; Live Mesh para armazenamento de dados na nuvem e Windows Azure para PaaS da Microsoft [5]; GDocs (Sute de escritrio), GTalk (comunicador instantneo), GMail (gerenciador de emails), Google App Engine (PaaS) do Google [6]; Datasul By You: conjunto de solues de ERP da Totvs [7]; Panda Cloud Antivirus: antivrus no qual a maior parte do processamento se localiza nas nuvens", evitando que o antivrus deixe o computador lent o da Panda Software [8];

Dropbox: servio de armazenamento de arquivos da Dropbox [9]; VMware vSphere: plataforma de virtualizao para a criao de infraestruturas em nuvem que permitem aos usurios executar aplicativos essenciais aos negcios da VMware [10];

ICloud: gerenciamento automtico de arquivos para vrios dispositivos da Apple [11] que ser disponibilizado em breve; Vrias so as formas produzidas para armazenamento das informaes,

sendo estes dispositivos de armazenamento em sua grande maioria constitudas de unidades fsicas/hardware localizadas no mesmo ambiente da empresa. A forma de armazenamento utilizado pela CC em especial quebrou todos os paradigmas utilizados anteriormente uma vez que a acessibilidade destes arquivos pode ser realizada em qualquer lugar do planeta por meio da Internet. Esta quebra de paradigma pode ser ilustrada na Figura 2.

Figura 2: Quebra de paradigma por meio da fcil acessibilidade pela Internet. Fonte: http://www.webdig.com.br/1115/cloud-computing-computacao-em-nuvem-o-que-e-e-como-funciona)

O primeiro vocbulo deste novo conceito (Computao) faz aluso de que no se trata apenas de armazenamento de dados, mas tambm da sua manipulao por meio de servios e software relacionados. Como a Internet uma rede de interedes e a mesma representada por nuvens possvel explicar o uso do termo nas nuvens para caracterizar que a rede um grande computador onde nele tudo processado/armazenado, bastando apenas o cliente ter acesso a Internet. Entretanto, o conceito de Computao em Nuvem no significa uma nova tecnologia desenvolvida isoladamente e sim uma agregao de conceitos j amadurecidos (ver Figura 3), como por exemplo, a Computao em Grid, em torno de um sistema nico (a nuvem).

Figura 3: Computao em nuvem agrega vrias tecnologias amadurecidas. Fonte: www.tinews.com.br/news/2009/09/11/o-futuro-e-nublado-cloud-computing-o-que-e-realmente-tao-interessante-em-computacao-na-nuvem

A Computao em Grid um modelo computacional que preconiza a utilizao de vrias mquinas dividindo a execuo de diversas tarefas de forma a promover uma alta taxa de processamento perfazendo as chamadas mquinas virtuais. Esse princpio seguido pela CC no que se refere s nuvens: por exemplo, no se sabe de fato qual mquina/servidor est executando uma dada tarefa/servio.

Existem ainda ideias ligadas [37] interligao dessas nuvens que formariam o termo Computao no Cu (Sky Computing): novo padro de computao onde mltiplas nuvens tornam-se apenas uma, potencializando as vantagens que essa nova abordagem traz. Recursos, aplicaes e plataformas so disponibilizadas independentes da nuvem promovendo transparncia entre as

nuvens. Neste cenrio, provedores de Sky Computing seriam consumidores de provedores de Nuvens criando mais um nvel de abstrao.

Conforme essas novas tecnologias vo se firmando e novos estudos e pesquisas so desenvolvidos a abstrao desse novo paradigma vai se fixando: Em alguns anos no vamos chamar isso de cloud computing. No ter nome. Ser simplesmente computao, defende Luis Sena, gerente de marketing de servios da HP Brasil [12].

Os usurios acessaro os aplicativos, realizaro todas as suas tarefas online e guardaro o material em arquivos digitais tambm na Web. Ser um passo gigantesco no sentido da implantao do modelo tudo de todos e ningum de ningum. Ou seja, a utopia socialista materializada na Web, pela mo de dois cones do capitalismo mundial. [13]. Nesse sentido, foi desenvolvido o produto denominado Chromebook pelo Google que nada mais um notebook nas nuvens: toda informao manipulada armazenada nas nuvens por meios dos servios oferecidos pela empresa detentora deste novo equipamento.

Uma nova arquitetura (descrita na Figura 4) foi delineada para explicar o novo relacionamento entre clientes e os prestadores de servios: os clientes no se preocupam mais com a infraestrutura dos servios (papel do prestador).

Figura 4: O advento da Computao em Nuvem mudou a relao entre clientes e prestadores de servios. Fonte: [27]

1.4 - Caractersticas Essenciais:


Elenca-se a seguir as principais vantagens (tambm conhecidas como caractersticas essenciais) do uso dessa nova forma de infraestrutura:

Capacidade de agregar servios (storage, servidor DNS, SGBD etc) de acordo com necessidade do usurio sem a obrigatoriedade de interao humana com o provedor da nuvem (on-demand self service);

Ampla acessibilidade por meio da Internet; Economia de equipamentos por meio da computao em grid (Compartilhamento de recursos) Flexibilidade atravs da dinmica elasticidade nas alocaes de recursos; Otimizao dos recursos devido mensurao da utilizao do servio: paga-se apenas pelo que se usa, modelo anlogo ao das contas de energia e de gua. As caractersticas listadas anteriormente so ilustradas na Figura 5 e se

confundem com vantagens da Computao em Nuvem porque as solues desenvolvidas pelos provedores que utilizam a Nuvem devem oferecer essas caractersticas. Algumas destas caractersticas, em conjunto, definem exclusivamente a computao em nuvem e faz a distino com outros paradigmas. Por exemplo, a elasticidade rpida de recursos, amplo acesso e medio de servio so caractersticas bsicas para compor uma soluo de computao em nuvem [14]. A Figura 5 descreve sete elementos essenciais para a CC, que so: elementos econmicos (custos por demanda): 1- elasticidade 2- tarifao por uso elementos arquiteturais (ambiente simples para desenvolvimento) 3- virtualizao 4automatizao do gerenciamento 5- aprovisionamento de recursos por escolha prpria

elementos estratgicos (focar no negcio e terceirizar o resto) 6- operaes gerenciadas 7- integrao

Figura 5: Caractersticas Essenciais da Computao em nuvem. Fonte: http://mwdadvisors.com

1.5 Modelos de Servios


De acordo com [26] os Modelos de servios foram classificados da seguinte forma:

IaaS (Infrastructure as a Service) Infraestrutura como servio: processamento, armazenamento,rede e outros recursos necessrios ao cliente para que o mesmo implante vrios tipos de software (at sistemas operacionais). Exemplos so o EC2 e S3 da Amazon.

PaaS (Plataform as a Service) Plataforma como servio: prover servios para desenvolvimento, testes, publicao (implantao), hospedagem e manuteno de um software. Exemplos so o Windows Azure da Microsoft e o Google AppEngine (GAE) do Google.

SaaS (Software as a Service) Software como servio: Aplicaes on-line, ou seja, os computadores pessoais so apenas canais de comunicao entre o sistema que est na nuvem e o usurio. Exemplos so sistemas de e-commerce (americanas.com.br) e o GMail do Google.

DaaS (Development as a Service) Desenvolvimento como servio: uma aplicao web que usa contedo de mais de uma fonte para criar um novo servio completo atravs de ferramentas compartilhadas, de desenvolvimento web-based e mashup. Exemplos so Feeds (RSS ou Atom), Widgets e Blogs.

CaaS (Communication as a Service) Comunicao como Servio: Conjunto de servios de comunicao como a telefonia IP, mensageiros instantneos e videconferncias. Essas classificaes seguem a estratgia da Arquitetura Orientada a Servios (SOA) que trata cada tipo de atividade fornecida como um servio diferenciado. De acordo com [15] e [16], SOA corresponde a uma abordagem arquitetural de TI centrada no negcio atravs de um conjunto de servios que podem se comunicar entre si. SOA tambm possibilita que valor seja agregado facilmente a cada servio oferecido.

1.6 Modelos de Implantao

A maioria dos servios segue os seguintes modelos de implantao segundo [26]:

Privado: exclusiva para um nico usurio (uma empresa, por exemplo) que tem controle total na forma como as aplicaes so implementadas nas nuvens atravs de um data center configurado com as caractersticas de um provedor de servios em nuvem; a infraestrutura de uma nuvem pode ser gerida por uma empresa terceirizada; nesse modelo, muitas vezes usada a virtualizao de servidores para

evitar que um nico servidor fsico fique muito tempo ocioso (isso no significa que virtualizao sinnimo de ter uma nuvem privada).

Pblica: aquelas mantidas por terceiros e disponveis para o pblico em geral ou grupo de indstrias; as aplicaes de diversos usurios ficam misturadas nos sistemas de armazenamento, o que pode parecer ineficiente a princpio. Porm, se a implementao de uma nuvem pblica considera questes fundamentais, como desempenho e segurana, a existncia de outras aplicaes sendo executadas na mesma nuvem permanece transparente tanto para os prestadores de servios como para os usurios.

Comunitria: compartilhada por diversas organizaes e suporta uma comunidade especfica que partilha os valores e preocupaes (misso, poltica de segurana); pode ser administrada por organizaes ou por um terceiro e pode existir localmente ou remotamente.

Hbrida: formada por duas ou mais nuvens (privada, pblica ou comunitria) de forma a ampliar os recursos envolvidos. Essa composio de mais de um modelo de nuvem tambm denominada de Computao em ondas.

2. Desenvolvimento

2.1 Polemizando a definio

A migrao/implantao de novas tecnologias, pela sua prpria natureza, pode gerar dvidas/ponderaes nos envolvidos. As incertezas podem se agravar quando o conceito sobre essa tecnologia no est madura o suficiente. O National Institute of Standards and Technology corrobora esse raciocnio com a seguinte afirmativa: Computao em nuvem um paradigma em evoluo. Suas definies, casos de uso, tecnologias, problemas, riscos e benefcios sero redefinidos em debates entre os setores pblicos e privado e essas definies, atributos e caractersticas evoluiro com o tempo prprio [17].

Assim, considerando-se um dado contexto (seja a implementao ou uso de uma aplicao) como possvel definir a utilizao da computao em nuvem? Deve-se analisar de forma macro todas as caractersticas envolvidas. Por exemplo, bastaria uma aplicao ser web para ser considerada nas nuvens? Se o referencial for apenas a ampla acessibilidade poderamos afirmar que sim. Mas se esta aplicao no tiver flexibilidade com rpida escalabilidade e disponibilidade? Certamente no estaria nas nuvens. E se estiver hospedada em um data center privado e exclusivo? Para esta ltima indagao relevante indagar quem seria o responsvel pela infraestrutura deste data center. Se for uma empresa terceirizada, especializada em prover servios na nuvem, um argumento pertinente para se declarar que a aplicao est nas nuvens.

Na verdade, a Computao em Nuvens vem justamente para tornar transparente ao cliente toda a insfraestrutura necessria para manter o negcio do cliente. Desta forma, o cliente gastaria recursos no negcio e no nas camadas tecnolgicas necessrias para viabilizar o negcio. Esta estratgia oferece uma nova forma de realizar negcios de forma a possibilitar novos lucros.

2.2 Novas abordagens

SAAS como grande aliado contra a pirataria: Como modelo de negcio, a computao em nuvem desejvel s companhias, j que praticamente impede a

10

pirataria e pode se basear em um modelo de prestao de servios, com cobrana mensal, por exemplo. Outro exemplo que, de acordo com [36], existem indcios de que a nova verso do sistema operacional da Microsoft (Windows 8) poder utilizar-se de CC para evitar a pirataria dos seriais atravs de suas chaves e respectivos algoritmos geradores. Empresas de desenvolvimento so as mais interessadas em CC, pois tero a disponibilidade de reduzir suas despesas e tambm controlar a pirataria. A computao em nuvem obrigar o usurio a comprar pacotes no necessitando adquirir o software completo, ao contrrio do que praticado hoje. Computao verde e nas nuvens: O termo Computao Verde (CV) ou Green Computing utilizado para o estudo de prticas do uso eficiente de recursos computacionais. Englobam todas as aes de responsabilidade corporativa como a reduo de consumo energtico, desenvolvimento de sistemas e componentes de baixo consumo, reciclagem, reduo de resduos, produo de componentes atxicos, entre outros. CC por si mesma j pode ser considerada como seguidora dos princpios da CV conforme se analisa a definio de CC e o que se afirma em [18]: (...) a tecnologia em nuvem pode reduzir significativamente o consumo geral da energia na computao empresarial. por meio das economias em escala dos data centers em nuvem que permitem uma utilizao maior dos servidores, proviso dinmica para um melhor atendimento da demanda, e a possibilidade de atender a centenas de organizaes com infraestrutura compartilhada. Essa nova rea da computao traz vrios benefcios associados com a diminuio dos danos ambientais: menos equipamentos so fabricados e os que so fabricados so compartilhados sob demanda. Esse relacionamento das estratgias utilizadas pelo CC e CV so importantssimas para otimizao dos recursos computacionais e ambientais.

Seleo de servios: A seleo pode ser automtica e de acordo com requisitos funcionais e no funcionais (ex.: qualidade de servio). Supondo que uma empresa precisa jogar uma massa de dados numa cloud (data as a service) e existem vrias clouds oferecendo esse servio (cada uma com preo,disponibilidade, desempenho, etc diferente), qual delas deve-se escolher? A Tabela 1 pode auxiliar na escolha, mas segundo [19] sugere-se a verificao dos seguintes itens:

11

Se o provedor de servios no tiver reputao reconhecida no mercado faa uma visita (se for vivel) no data center para conhecer sua estrutura tecnolgica e organizacional;

Verifique qual o fornecedor da tecnologia de cloud computing do provedor de servios. Isso importante porque suas aplicaes iro utilizar padres de execuo definidos pelo fornecedor da tecnologia. Se no futuro sua empresa quiser migrar para outro provedor que adota outra tecnologia ser necessrio fazer alteraes nos programas;

Verifique se o servio atende as definies de cloud computing. Alguns provedores de servio afirmam que possuem um servio de cloud computing, mas na realidade eles hospedam as aplicaes em servidores isolados de forma convencional;

Verifique a infraestrutura de conexes de Internet do provedor. Assegure-se que ele tenha conexes fsicas redundantes e no mnimo dois provedores de Internet. Em caso de falha de um dos provedores de Internet o trafego de dados possa ser utilizado pelo outro provedor;

Verifique as certificaes do provedor de servios e de seus principais especialistas. As principais certificaes so SAS-70, ITIL, ISO e das tecnologias utilizadas no data center;

Provedor

Iaa S

Linguagen s suportadas para PaaS

Pagament o

Pagamento pelo armazenament o

Banco de Dados

Capacidade s Hbridas

Windows Azure

No

.Net, Java, Ruby, Python e PHP

Paga pelo que usar

Paga pelo que usar

Relacional: SQL Server (SQL Azure)

Sim

Amazon Web Services Rackspac e

Sim

Nenhuma

Paga pelo que usar

Paga pelo que usar

Relacional MySQL

Sim (ferramentas de terceiros)

Sim

LAMP,.Net

Paga pelo que usar para IaaS e mensal para PaaS

Paga pelo que usar para IaaS e mensal para PaaS

Relacional: FathomDB

No

Joyent

Sim

Java, Ruby,

Mensal para

Includo no

No

Sim

12

Python e PHP Google Sim Python e Java

IaaS

pagamento do IaaS

Paga pelo que usar

Paga pelo que usar

No relacional: BigTable e Relacional: MySql(beta )

No

Tabela 1: Comparao entre os principais provedores de servios em nuvem (fonte: pro.gigaom.com)

Composio de servios: Outro cenrio pertinente uma loja virtual e que na poca do Natal ou de sucesso na campanha de vendas, devido a alta demanda de compras, seja necessrio disponibilizar os servio na nuvem. Nessa linha, seria preciso, alm de processar as informaes para realizar a venda, armazenar as informaes sobre as vendas tambm na nuvem. Uma arquitetura possvel seria um mdulo que responsvel por processar a venda (efetuar venda) e outro para armazenar dados. No necessariamente esses servios so providos pela mesma plataforma cloud. Assim, um servio composto seria um servio que na verdade composto pelos dois servios mencionados acima. Percebe-se, assim que a composio e seleo de servios esto intimamente relacionadas.

Replicao de servios: Na CC as empresas provedoras no obrigatoriamente utilizam-se da replicao de dados (num caso de armazenamento de dados), pois essa caracterstica pode ser considerada como uma requisito no funcional. Porm altamente recomendado que as empresas utilizem replicao para prover maior disponibilidade (availability).

Auxlio ao gerenciamento de projetos: Proporciona, principalmente para as empresas, reduo de custos e aumento da produtividade, devido facilidade de acesso s informaes relevantes dos projetos sem ter a necessidade de uma grande infra-estrutura em tecnologia localmente. Existem ferramentas como o Zoho Projects [20], uma tima opo de aplicativo voltado para o gerenciamento de projetos.

Uso de CC com software livre: Em matria publicada na verso eletrnica do Jornal The Guardian, Arthur Charles prev que com menos dinheiro e menos consumo haver uma tendncia de aumento do uso de software livre. Conseqncia direta

13

seria a economia de custos de licena e aumento de uso do cloud computing, no qual se paga pelo quanto se usa de recursos computacionais de terceiros. Com a queda de confiana do mercado em ativos, petrleo e ttulos do tesouro, o capital se tornaria mais acessvel s empresas tecnolgicas com ideias e planos de negcios. [38] afirma que cloud computing e os softwares livres fazem um casamento perfeito, pois um acelera o desenvolvimento do outro. Numa plataforma bsica de desenvolvimento possvel escolher servidor de aplicativos, banco de dados etc com tecnologias de software livre. Com uma plataforma na nuvem no seria diferente: uso do sistema operacional Linux/Unix, servidor web Apache, banco de dados MySQL ou Postgres alm do Aptana Cloud - que tem vrias opes pr-configuradas uma alternativas aos softwares propritrios. Uma empresa potiguar [21] desenvolveu uma soluo de backup corporativo opensource; storages distribudos, backup online, versionamento de documentos e criptografia forte so as principais caractersticas. Para demonstrar o relevo que o software livre est tendo na CC, ser realizado na nona edio do maior evento nacional de TI, RioInfo2011 (de 27 a 29 de Setembro de 2011), um painel denominado O software livre como alavancador de negcios na computao em nuvem com moderao de Paulo Coelho, presidente do Proderj com participao de Andr Andriolli (VMware), Kau Linden (Hostnet) e representantes do Consrcio OW2, da Microsoft e do Serpro.

2.3 Anlise da plataforma Windows Azure

Inicialmente, ser descrito um breve histrico das tecnologias que estavam mais em evidncia no mbito da computao. Nos anos 70 o mainframe era a principal arquitetura utilizada para a computao, nos 80 utilizava-se o modelo cliente/servidor, na dcada de 90 a web foi colocada em plenitude. No ano de 2000, a computao como provedora de servios entrou em vigor. A partir de 2010 em diante a computao em nuvem despontou como um paradigma que pode englobar as tecnologias anteriores (a Internet por ex.) e permanecer no panorama mundial por muito tempo. Uma das formas de suportar CC atravs da plataforma Windows Azure da Microsoft que ser detalhada nesta seo.

14

Windows Azure uma plataforma baseada em servios na nuvem hospedada nos data centers da prpria Microsoft e espalhados por vrios cantos do planeta, conforme apresenta a Figura 6:

Figura 6: Diversos data centers da Microsoft distribudos globalmente. Fonte: http://msdn.microsoft.com/pt-br/hh292576?ocid=src-c-br-jtc--google_azure

A plataforma suportada por um sistema operacional, que o prprio Windows Azure que gerencia a malha de hardware (cointaneres com vrias mquinas para prover a infraestrutura da plataforma) disponvel em data centers Microsoft, equacionando mquinas virtuais (VM) para a disponibilizao de servios na Internet de alta escalabilidade e aplicaes com provisionamento automtico. De acordo com [41], um servio hospedado do Windows Azure pode conter instncias de funo web, funo de trabalho e funo VM. Como o prprio nome sugere, uma instncia de funo web pode aceitar solicitaes de entrada HTTP e pode oferecer suporte programao de aplicativos Web hospedados no IIS. Instncias de funo de trabalho so semelhantes, mas no iguais a uma funo web. A principal diferena que uma instncia de funo de trabalho no hospedada pelo IIS. Elas so executveis por si s. Uma funo VM difere de uma funo web e de uma funo de trabalho porque, nestas funes, a nfase em criar e executar cdigo em um sistema operacional gerenciado pelo Windows Azure; na funo VM, voc fornece uma imagem de sistema operacional prconfigurada. Aplicativos podem consistir em apenas instncias de funo web,

15

apenas instncias de funo de trabalho, apenas instncias de funo VM, ou uma combinao das trs. A plataforma por meio de frameworks de servios para desenvolvedores dispe de uma ampla gama de recursos para facilitar o gerenciamento das aplicaes. Ao se utilizar esses recursos o usurio est potencializando o uso da plataforma. Com a flexibilidade e interoperabilidade do ambiente, possvel

simplesmente melhorar as aplicaes existentes incluindo os recursos da nuvem, mantendo a aplicao aderente a plataforma do Windows Azure e/ou criar novas aplicaes e execut-las na plataforma do Azure. Exemplos dessa melhoria seriam: A disponibilidade da aplicao pode ser melhorada atravs da implantao de pelo menos duas instncias por funo web para garantir alta disponibilidade em caso de uma das instncias ficarem indisponveis. Esse procedimento tambm habilitar uma cobertura especfica da plataforma que garante 99,95% de tempo de ativao. Ao executar vrias instncias de um aplicativo, o Windows Azure ajuda a escalonar o aplicativo. Quando a carga de seu aplicativo aumenta, possvel solicitar mais instncias da funo web, mais instncias da funo de trabalho, mais instncias da funo VM ou mais das trs para seu aplicativo suportar as novas demandas. Facilidade de reinicializar os servios ou a simples implantao de novos servios atravs de simples botes. A Tabela 2 a seguir resume os principais diferenciais e benefcios da plataforma Windows Azure:

Benefcio

Perspectiva do Cliente

Proposio de Valor do Windows Azure O Windows Azure acelera

Minha infraestrutura de TI Agilidade deve reagir rapidamente s necessidades do negcio.

o desenvolvimento, simplifica a implantao e faz com que os negcios escalem vertical e horizontalmente de forma

16

rpida. Os desenvolvedores podem usar a funcionalidade intuitiva oferecida pelo Visual Studio para criar os seus prprios servios web. O Windows Azure permite que desenvolvedores e gerentes de servios faam o escalonamento vertical e horizontal de forma simplificada, sem Eu quero focar na entrega de valores aos clientes Foco no no gerenciamento da infraestrutura de tecnologia. procedimentos operacionais complexos. As empresas tambm no precisam se preocupar com a construo ou o gerenciamento de mquinas virtuais, atualizao de sistemas operacionais e criao de seus prprios sistemas de redundncia. O design do Windows Azure maximiza a utilizao de recursos e reduz o investimento em Estou procurando uma Eficincia soluo com custo reduzido para gerenciar os meus recursos de TI. equipamentos de hardware que permaneceriam ociosos. As empresas podem consumir os recursos de computao que eles precisam, sem precisar investir em aquisio e configurao de

17

infraestrutura que pode nunca vir a ser utilizada totalmente. O Windows Azure Preciso de uma plataforma confivel com um modelo transparente Confiana de negcio, desde um fornecedor com um histrico de compromisso comprovado a clientes empresariais. suportado por um abrangente Acordo de Nvel de Servio (SLA), e aproveita anos de experincia da Microsoft em oferecer servios como o Windows Update, Hotmail, e software online para produtividade empresarial O Windows Azure permite uma combinao de recursos instalados localmente e na nuvem na soluo de problemas de negcios. Permite que desenvolvedores Quero ser capaz de escolher o melhor modelo de implantao para as minhas aplicaes seja Flexibilidade e Controle no meu data center ou hospedadas por um provedor em nuvem ou uma combinao dos dois. continuem a usar suas ferramentas, linguagens e habilidades para construir e implantar aplicaes baseadas na nuvem. Os desenvolvedores podem aproveitar seus conhecimentos em tecnologias Microsoft e de terceiros para construir servios Web utilizando o Windows Azure, podendo escolher livremente a plataforma de implantao que melhor atende s necessidades

18

individuais do negcio.
Tabela 2: Principais diferenciais e benefcios do Windows Azure. Fonte: http://download.microsoft.com/download/1/3/F/13F0F6C4-D565-44B3-A462D4053F2CC8EF/azure_visaogeral.pdf

De acordo com [39], essa plataforma composta por vrios servios que sero detalhados em seguida: Windows Azure: um sistema operacional que fornece recursos escalveis de processamento e armazenamento; SQL Azure: uma verso adaptada para a nuvem do SQL Server; Windows Azure AppFabric: uma coleo de servios de apoio. O Windows Azure possui as seguintes caractersticas, tambm ilustradas na Figura 7:

Figura 7: Caractersticas do Windows Azure. Fonte: http://msdn.microsoft.com/ptbr/hh292576?ocid=src-c-br-jtc--google_azure

Compute: Executa cdigo de aplicativos em mquinas virtuais com um ambiente Windows Server modificado. Uma aplicao Azure composta por vrias instncias de VM, cada uma desempenhando um determinado papel: Web Role: para instncias com aplicativos web ou web services dentro do Internet Information Services (IIS);

19

Worker Role: para instncias que executam cdigo fora do IIS; VM Role: para executar imagens de disco do Windows Server 2008 R2 preparadas e configuradas pelo cliente do Azure.

Storage: Armazena dados de vrias maneiras: Table Service: armazena entidades na forma de tabelas de forma escalvel; Blob Service: armazena dados binrios; Drive: simula um disco (um volume NTFS) dentro do Blob Service; Queue Service: um sistema de enfileiramento de mensagens para comunicao assncrona. Fabric Controller: Componente muito importante, pois gerencia e monitora servidores, switch, redes, balanceadores de carga e outras mquinas virtuais (VM) onde esses recursos tm impacto direto nas aplicaes. Trata-se de uma camada intermediria entre software e hardware responsvel pela instalao de Web e Worker Roles nos servidores virtuais ou fsico. Gerencia deployment de aplicaes, adiciona novas instncias automaticamente no ambiente e principalmente monitora o ambiente para garantir a sua perfeita execuo (ver Figura 8).

Figura 8: Caractersticas do Windows Azure. Fonte: http://msdn.microsoft.com/ptbr/hh292576?ocid=src-c-br-jtc--google_azure

20

Content Delivery Network (CDN): CDN um termo criado em fins da dcada de 1990 para descrever um sistema de computadores interligados em rede atravs da Internet, que cooperam de modo transparente para fornecer contedo (particularmente grandes contedos de mdia) a usurios finais. CDN pode ser um servio contratado pela plataforma Windows Azure de forma a acelerar o acesso a dados binrios (contedo suportado para distribuio so imagens, vdeos, softwares, documentos, aplicaes em real-time como streaming) mantendo cpias em vrias regies do mundo, a saber: America do Norte: Newark, NJ; Ashburn, VA; Miami, FL; San Antonio, TX; Los Angeles e Bay Area, CA; Seattle, WA e por fim Chicago, IL. America do Sul: So Paulo, BR. Europa: Stockholme, SE; Amsterdan, NL; Vienna, AT; Zurich, CH; Paris, FR; London, GB e por fim Dublin, IE. sia: Seoul, KR; Tokyo, JP; Hong Kong, HK; Taipei, TWN; Sydnei, AU e por fim Singapoore, SG.

Connect: Permite estabelecer conexes seguras (por meio dos protocolos TCP e UDP) entre aplicativos locais (usando a rede IP privada) e a nuvem do Azure de forma a permitir os seguintes cenrios: Aplicaes web na nuvem e a base de dados fora da nuvem (na rede local, por exemplo); Realizar join de conexes/comunicao com mquinas virtuais de servidores de arquivos, de impresso, de base de dados, software de colaborao e comunicao etc; Realizar join de domnios e possibilitar com que aplicaes da nuvem autentiquem-se diretamente no AD local; Conexo remota do Windows Azure e administrar e debugar instncias de Web e Worker Role do Windows Azure. No contexto de desenvolvimento, o Windows Azure suporta as linguagens de programao .Net SP1, 4.0 ou superior, PHP, Ruby, Python e Java. Um kit de desenvolvimento de software ou SDK bem como as IDE Visual Studio ou Eclipse se faz necessrio para emular os recursos do Azure localmente. Alm disso, o Windows Azure suporta protocolos e padres populares, como SOAP, REST e XML.

21

Para uma aplicao ser passvel de ser implantada na plataforma Windows Azure ela deve possuir uma das caractersticas abaixo (que vo gerar os arquivos de pacote e de configurao da aplicao): Ter sido desenvolvida pela IDE Visual Studio 2010 (por ex.) em conjunto com seu respectivo SDK (Windows Azure Tools for Microsoft Visual Studio); Ter sido desenvolvida pela IDE Eclipse em conjunto com o SDK para Java; Ter sido desenvolvida pela IDE Eclipse em conjunto com o SDK para PHP; Ter sido desenvolvida pela IDE Eclipse em conjunto com o SDK para Ruby; Para aplicaes em Python as caractersticas so detalhadas em [42] e [43]; Existem ainda ferramentas auxiliares para iOS (Windows Azure Toolkit for iOS) e para dispositivos mveis (Windows Azure Toolkit for Windows Phone 7 ) que possibilitam o deployment no Windows Azure. Em suma, o Windows Azure um sistema operacional baseado na nuvem que funciona atravs de um ambiente de desenvolvimento, hospedagem de servios e gerenciamento para a plataforma Windows Azure, fornecendo aos desenvolvedores uma computao sob demanda e armazenamento para hospedar, escalar e gerenciar aplicaes Web na Internet. J o SQL Azure um servio em nuvem que oferece recursos de armazenamento de dados com alta disponibilidade e tolerncia a falhas conforme a Tabela 3. O principal servio do SQL Azure o SQL Azure Database (SAD), responsvel pela persistncia de dados com suporte relacional permitindo tambm consultas relacionais aos dados armazenados, que podem ser estruturados, semiestruturados ou documentos no-estruturados. possvel realizar replicaes das bases de dados por meio da ferramenta SQL Azure Data Sync, que um servio de sincronizao de dados baseado nas nuvens desenvolvido dentro do escopo da Microsoft Sync Framework Technologies onde a replicao pode ser bidirecional.

Caracterstica Semntica das selees Desempenho e dimensionamento

SQL Azure Consultas de tabela cruzada Alto desempenho por meio de vrios ndices, estruturas de dados normalizados e at por meio dimensionamento manual das parties.

22

Experincia do usurio Estilo de armazenamento Fatores de custos

Ferramentas de gerenciamento bastante conhecido Modelo relacional tradicional Nenhum custo por transao de custo; pagamento pelo tamanho do banco de dados Sincronizao entre dados locais e dados

Carregamento de dados e sincronizao

armazenados em nuvem; facilmente movidos pela tradicional mecanismo de extrao, transformao e carga (ETL); sincronizao entre bancos de dados SQL Azure em diferentes data centers.

Tabela 3: Recursos do SQL Azure. O SQL Azure construdo sobre o SQL Server (servidor de banco de dados relacional desenvolvido pela Microsoft), mas apenas expe um subconjunto de suas funcionalidades e tipos de dados. Ele utiliza a linguagem Transact-SQL (extenso proprietria da Microsoft do SQL que inclui recursos de programao procedural, variveis locais e variadas funes) para consultas e o formato Tabular Data Stream como protocolo de acesso. A forma recomendada para acesso a dados o WCF Data Services (combinao de um ambiente e WebService pelo qual os servios so expostos). O WFC permite a criao e consumo de servios OData para a web (anteriormente conhecido como o ADO.NET Data Services). OData um protocolo web para consultas e atualizaes de dados atravs de bloqueios e liberaes desses dados. Por sua vez, Windows Azure AppFabric parte da plataforma Windows Azure que fornece diversos servios de middleware que aumentam o nvel de abstrao e diminuem a complexidade de aplicativos para nuvem, a saber: Access Control: Fornece uma maneira para aplicativos web e web services identificarem usurios e controlarem acesso. Estabelece um mecanismo para converso das credenciais de segurana externas em credenciais que o aplicativo entenda. Tambm pode ser utilizado para gerenciar as permisses dos usurios atravs de WRAP e SWT. Service Bus: Fornece recursos para comunicao segura entre aplicativos distribudos e desconectados. Suporta diversos protocolos e padres de

23

comunicao e mensagem (WCF,HTTP, HTTPS, TCP,WRAP,SWT), tratando aspectos como garantia de entrega, confiabilidade e escala. Caching: Fornece um servio de cache distribudo em memria, para acesso a dados com alta velocidade, escalabilidade e alta disponibilidade. Integration: Prov recursos do BizTalk Server, tais como conectores, transformao de formatos de mensagens e filas de mensagens. O Biztalk um servidor de gesto de processos empresariais (BPM), que permite s empresas automatizarem e otimizarem os seus processos empresariais. Inclui ferramentas poderosas e familiares para a concepo, desenvolvimento, implementao e gesto de processos. Ainda em desenvolvimento. Composite App: Fornece ferramentas e APIs para desenvolvimento e hospedagem de aplicativos compostos. A composio de aplicaes possibilita a definio das caractersticas e relacionamento dos componentes de sua aplicao. Com essa definio, possvel que cada componente seja automaticamente implantado com suas devidas restries e configuraes. Ainda em desenvolvimento. Aqui esto alguns exemplos de tipos de aplicativos que podem ser desenvolvidos no Windows Azure: Um fornecedor independente de software (ISV) pode criar um aplicativo destinado a usurios corporativos, uma abordagem geralmente denominada Software como Servio (SaaS). Um ISV pode criar um aplicativo SaaS destinado a clientes em vez de empresas. Como o Windows Azure se destina a dar suporte a softwares muito escalonveis, uma empresa que planeja almejar um mercado de clientes amplo pode escolh-lo como plataforma para um novo aplicativo. Empresas podem usar o Windows Azure para desenvolver e executar aplicativos usados por seus funcionrios. Ou seja, a plataforma Windows Azure inclui uma ampla gama de recursos para desenvolvimento, hospedagem e gerenciamento de aplicativos em nuvem, com caractersticas de escalabilidade, elasticidade e alta disponibilidade. A

24

plataforma tambm fornece recursos para conectar estes aplicativos a outros, tanto na nuvem como locais. Em termos de mercado de vendas, a Microsoft criou a PinPoint

(http://pinpoint.microsoft.com) para ajudar as empresas de CC. Esse recurso nada mais do que um catlogo de aplicativos e solues onde as empresas podem publicar seus produtos e os clientes podem visualiz-los e adquiri-los. Com o intuito de se realizar um estudo de caso sobre alguns recursos da Plataforma Windows Azure, foi criado uma conta de teste gratuito no portal azure.com. O portal utiliza tecnologia Silverlight que combina visual e funcionalidade Depois de criado e ativado a conta, deve-se acessar o portal do Windows Azure (https://windows.azure.com) e entrar com as devidas credenciais. Uma janela de login ser apresentada conforme Figura 9:

Figura 9: Tela de login da Plataforma Windows Azure. Fonte: http://azure.com

Ao logar com sucesso, a janela principal do portal do desenvolvedor Windows Azure ser apresentada de acordo com a Figura 10. Note que essa tela ir carregar as opes de administrao para recursos como SQL Azure, Hosted Services, Azure Storage, Azure AppFabric, entre outros. Essa janela o ponto inicial de administrao da conta do Windows Azure.

25

Figura 10: Tela principal do portal de desenvolvimento da Plataforma Windows Azure. Fonte: http://azure.com

Na parte superior da tela (ver Figura 11) existem os botes para criao imediata de servios (Hosted Services), objetos de armazenamento (Azure Storage) e base SQL (Database Server). Ao utilizarmos esses botes, podemos criar novos containers ou servidores que iro hospedar nossos servios e recursos contratados da plataforma.

Figura 11: Menu superior do portal de desenvolvimento da Plataforma Windows Azure com os recursos de criao de servios. Fonte: http://azure.com

J na parte inferior esquerda da janela principal, existem os links para os principais grupos de operaes no ambiente do Windows Azure, como pode ser conferido na Figura 12:

26

Figura 12: Menu inferior esquerda do portal de desenvolvimento da Plataforma Windows Azure com os principais grupos de operaes. Fonte: http://azure.com

Ao clicar na opo Hosted Services, Storage Accounts & CDN do menu apresentado na figura anterior ser mostrado uma tela apresentando as contas de Windows Azure ativas ou inativas associadas ao seu Live ID (ver Figura 13).

Figura 13: Contas de Windows Azure ativas ou inativas associadas ao Live ID. Fonte: http://azure.com

Ao se clicar na conta ativa, informaes sobre a conta ativa sero disponibilizadas no painel de Propriedades (Properties) do lado direita de sua tela. Dados sobre a Conta de Administrador, Nome do usurio, Status, Administrador de Servios e o ID de subscrio sero informados. O Subscription ID uma informao importante para o deployment de aplicaes atravs do Visual Studio 2010.

27

Na janela principal ao se clicar em Database,por exemplo, as informaes sobre servidores de bancos de dados e instncias de SQL Azure contratadas para sua credencial vo aparecer vide Figura 14:

Figura 14: Informaes sobre servidores de bancos de dados e instncias de SQL Azure. Fonte: http://azure.com

Nota-se no painel do lado direito (rvore Subscriptions) as informaes sobre seus servidores para hospedagem de SQL Azure. Na rvore do servidor SQL Azure temos a base de dados master. Ela utilizada para configurao (definio de regras de firewall, por exemplo) e administrao de informaes sobre as demais bases de operao e no cobrada pelo uso. utilizada apenas para controle pelo prprio ambiente do Windows Azure e SQL Azure. Informaes sobre a base master podem ser visualizadas na Figura 15:

28

Figura 15: Informaes sobre a base de dados master. Fonte: http://azure.com

Para criar uma nova instncia de base de dados deve-se clicar sobre o nome do servidor no painel esquerdo, na rvore de subscription de sua conta SQL Azure onde sero apresentadas as informaes sobre seu servidor SQL Azure, assim como as instncias de bases de dados presentes em sua conta. Inicialmente, somente a base master estar disponvel conforme Figura 16:

Figura 16: Informaes sobre o servidor SQL Azure, assim como as instncias de bases de dados presentes. Fonte: http://azure.com

29

No menu superior, temos uma srie de operaes disponveis sobre o servidor. Ao Clicar no boto Create (para se criar uma nova instncia de base de dados) uma caixa de dilogo ser aberta, permitindo entrar com o nome da nova instncia de SQL, seu tipo e tamanho mximo contratado (ver Figura 17).

Figura 17: Informaes sobre como criar uma nova instncia de base de dados. Fonte: http://azure.com

O portal do Azure ir ento mostrar a nova configurao de bases de dados para a credencial em questo, apresentando as bases master e PMAzureDB recm criada (Figura 18).

Figura 18: Informaes sobre a nova instncia de base de dado criada. Fonte: http://azure.com

30

Ser, nesse momento, operado o Database Manager sobre o SQL Azure, ou seja, ser disparado a aplicao Database Manager do portal do Windows Azure para trabalhar sobre a instncia de SQL Azure recm criada. Para tanto, sugere-se clicar no boto Manage do menu superior, para abrirmos o painel de administrao do SQL Azure. Uma nova instncia de browser ser aberta carregando a aplicao Manage, que permite a administrao e operao sobre o SQL Azure e instncias de bases de dados presentes no servidor. A seguir, ser apresentada a janela de login na base de dados. Os valores default apresentados podem ser aceitos. Na janela de login do Database Manager o nome do servidor SQL Azure apresentado com seu caminho completo, com a extenso .database.windows.net. Finalmente, a tela principal do Database Manager ser apresentada, com diversos recursos de operao sobre a base PMAzureDB, como se ver a seguir (ver Figura 19):

Figura 19: Tela que permite a administrao e operao sobre o SQL Azure e instncias de bases de dados presentes no servidor. Fonte: http://azure.com

No menu superior, diversas operaes so suportadas. Clicar no boto New Query para entrada de comandos SQL. Digitar o comando select @@version e clicar no boto Execute para executar o comando SQL. Note que o menu superior foi

31

atualizado para as operaes de SQL sobre a base de dados selecionada. O Database Manager ir devolver como resultado a verso do SQL Azure que est sendo executado na nuvem conforme Figura 20. Para encerrar seus testes, clicar em logout, no menu superior direito. Em seguida, fechar a janela do Database Manager.

Figura 20: Execuo de um comando SQL nas nuvens. Fonte: http://azure.com

Percebe-se que esta plataforma possui uma arquitetura escalvel, elstica, tolerante a falhas e simples de entender, sem excesso de complexidade. Uma excelente introduo ao desenvolvimento de aplicativos em plataforma nuvem. Para comprovar tal fato ser demonstrado como subir e hospedar uma aplicao para as nuvens atravs do Windows Azure. No ser objetivo dessa comprovao explanar todo o desenvolvimento da aplicao deployment desta aplicao nas nuvens. Os passos para tal procedimento so simples: criar um Hosted Server atravs do boto de Hosted Services e depois um clique no boto New Hosted Service seguindo as indicaes da Figura 21. Um Hosted Service a unidade de localmente. A abordagem ser a seguinte: de posse dos arquivos da aplicao, como realizar o

32

hospedagem de mquinas para um servio (conjunto de mquinas para pginas web, para servios de background e outros, que ficam agrupados sobre uma nica url).

Figura 21: Indicaes de como se criar uma unidade de hospedagem. Fonte: http://azure.com

Agora necessrio cadastrar o nome do seu servio, a sua url, definir em qual data center voc vai levantar o servio, escolher o ambiente para hospedagem (sugere-se o de produo), o nome do deployment (informaes sobre verso, etc), bem como os arquivos de pacote e de configurao da aplicao desenvolvida localmente so escolhidos, no caso, o jogo Sudoko [40], para serem subidos para a nuvem de acordo com o que indica a Figura 22.

33

Figura 22: Indicaes de cadastro de configuraes complementares para criao da unidade de hospedagem. Fonte: http://azure.com

Depois das configuraes realizadas e confirmadas, alguns momentos de processamento so realizados conforme visto nas Figuras 23, 24 e 25:

Figura 23: Momentos de processamento da hospedagem do servio (I). Fonte: http://azure.com

34

Figura 24: Momentos de processamento da hospedagem do servio (II). Fonte: http://azure.com

Figura 25: Momentos de processamento da hospedagem do servio (III). Fonte: http://azure.com

Pronto, a aplicao foi implantada nas nuvens e j est disponvel para visualizao pelo endereo http://azsudoku.cloudapp.net/ indicado pela Figura 26.

Figura 26: Hospedagem do servio realizado com sucesso e seu respectivo link de acesso. Fonte: http://azure.com

35

3. Concluses e/ou recomendaes


Sem dvidas CC est mudando o cenrio da TI chegando ao ponto de alguns especialistas compararem a revoluo do CC com a revoluo da Internet. Entretanto, CC no infalvel e pode apresentar problemas como aponta o artigo [22]: Um dos problemas que mais percebo, pelo fato de usar mais o servio de armazenamento, no S3 (Simple Storage Service), que tem apresentado erros nas API e no armazenamento, podendo at ocorrer perda de dados! Olhando o a pgina de estado dos servios, no dia 04 de agosto, vi que outros servios tambm estavam passando por problemas. Puxando o histrico de dias anteriores, percebese que o ms de julho foi turbulento no AWS. Conforme ilustrado na Figura 27, para se efetivar uma migrao para CC deve-se analisar alguns dos mais crticos aspectos envolvidos, sejam eles favorveis ou contrrios, a saber:

Figura 27: Aspectos favorveis e desfavorveis para o uso de CC. Fonte: http://blogs.zdnet.com/hinchcliffe

Security: os dados de uma empresa (que so as informaes mais importantes) bem como a segurana da informao envolvida para proteo dos mesmos estaro acessveis por outra empresa de forma a facilitar possveis e indevidas manipulaes desses dados.

36

Lock-in: significa o aprisionamento forado dos usurios ao conjunto de API de uma dada nuvem, ou seja, como cada provedor implementa seu prprio banco de dados e ambiente de programao, no simples e barato para o usurio mudar suas aplicaes para outras nuvens. Exemplificando: migrar de uma nuvem como a da Amazon para a do Google ou do Azure da Microsoft para o Google demandar um belo trabalho de converso. Uma alternativa para essa problemtica a padronizao das APIs: uma camada abstrata permitiria que o desenvolvedor no se preocupasse com APIs especficas de uma dada nuvem. Esforos prticos nesse sentido a criao das chamadas Open APIs, como as criadas pela RedHat (Deltacloud, que pode ser acessada em http://deltacloud.org/), Apache (Libcloud acessado em http://incubator.apache.org/projects/libcloud.html) e Zend SimpleCloud API (http://www.simplecloud.org/). Outra proposta a da OGF (Open Grid Forum) Open Cloud Computing Interface, que pode ser vista em http://www.occi-wg.org/doku.php?id=start). Existe ainda nesse sentido, um iniciativa chamada Open Cloud Manifesto, que mostra a preocupao do mercado com este risco de lock-in. O Open Cloud Manifesto pode ser lido em www.opencloudmanifesto.org) e se prope a padro aberto. aglutinar empresas que oferecem tecnologias e servios de cloud em torno da especificao de um

Lack of control: De alguma forma para os gerentes de negcio, existe a sensao de necessidade de controle sobre os sistemas. Quando sistemas baseados em CC ficam fora do ar, esses gerentes, por no terem visibilidade da infraestrutura e dependerem de outros especialistas para resolver os problemas, sentem-se 'perdidos' e sem o controle usual dos sistemas.

Reliability: Para a confiabilidade e continuidade dos servios, segundo o mesmo artigo [22], sugere-se que o CC deve ter seu prprio backup, seja na infraestrutura da empresa (data center) seja em outra empresa de CC, garantindo que se uma dada empresa de CC X falhar, outra empresa de CC Y sustentar os servios, proporcionando continuidade ao mxim o.

Scale and Cost: Os custos so diminudos devido filosofia de se pagar pelo uso/demanda dos servios. Outro aspecto importante principalmente para negcios baseados na web a escalabilidade proporcionada pela CC.

Encapsulated change management : A concorrncia entre as nuvens atinge um nmero variado de objetivos de negcio incluindo melhorias no atendimento ao cliente e na prestao de servios, reduzindo os requisitos de capital de giro e auxiliando na gesto dos recursos e ativos fixos.

37

Next Generation Architectures: CC utiliza as tecnologias e arquiteturas das redes sociais (maneira mais moderna dos consumidores acharem o que realmente querem) para tirarem proveito atravs da web para as empresas.

Choice and Agility: Variadas formas de suportar de forma gil o negcio e permitir que consumidores utilizem a CC para adquirir seus objetivos. Baseado nas prprias referncias deste relatrio tcnico-cientfico sabe-se

que no h uma convergncia ou senso comum entre os especialistas sobre o conceito de Computao em Nuvem: esta nova tecnologia no est madura o suficiente. Para tanto, pode-se sugerir como soluo para essa polmica uma lista bsica de verificao de requisitos mnimos exigveis para determinar que uma entidade faz uso de CC.

Servio acessvel pena Internet? So oferecidos escalabilidade e disponibilidade? O custo do servio pelo modelo paga-se pelo que se usa? O servio se adequa aos princpios da Computao Verde e da Computao em Grid? O cliente utiliza-se da transparncia de servios em nuvens por meio da terceirizao de empresas provedoras? Em suma, vivel a utilizao de CC utilizando uma arquitetura semelhante

a da Figura 28 que ilustra um possvel cenrio. De acordo com [14] esse cenrio organizado em camadas onde cada uma trata de um determinado recurso, podendo ter seu gerenciamento ou monitoramento de forma independente das outras camadas, melhorando a exibilidade, reuso e escalabilidade no tocante a substituio ou adio de recursos computacionais sem afetar as outras camadas. O cenrio tem um gerenciamento adaptativo, autnomo e econmico atravs de camadas e nveis. A camada de mais baixo nvel a de infraestrutura fsica, que contem centros de dados, clusters, desktops e outros recursos de hardware, podendo ter recursos heterogneos. Com isso, fornece certa exibilidade e facilidade de agregao de novos recursos medida que se tornem necessrios. Uma camada de middleware responsvel por gerenciar a infraestrutura fsica e tem por objetivo fornecer um ncleo lgico de uma nuvem. Estes servios contm negociaes de

38

QoS, gerenciamento dos SLAs, servios de cobrana, servios para vericar aceitao de requisies baseado no QoS e preo, servios.

Figura 28: Uma possvel arquitetura para um cenrio de CC. Fonte: [28]

No

nvel ou

acima da ambientes

camada de

de middleware,

encontra-se ambientes

a camada possuem

responsvel por prover suporte para a construo de aplicaes e que contem ferramentas desenvolvimento. Estes interfaces Web 2.0, marshups, componentes, recursos de programao concorrente e distribuda, suporte a workows, bibliotecas de programao e linguagens de programao. Esta camada de desenvolvimento no utilizada pelos usurios nais, e sim, pelos usurios mais experientes, aqueles que desenv olvem as solues para computao em nuvem. Por m, encontra-se a camada das aplicaes de computao em nuvem. Esta camada de interesse do usurio, pois por meio dela que eles utilizam os aplicativos. As camadas abaixo desta so responsveis pelas caractersticas de escalabilidade, disponibilidade, iluso de recursos innitos e alto desempenho. Algumas solues de arquitetura podem incluir uma camada de gerenciamento de adaptaes sendo esta responsvel por fornecer adaptao a estas solues. Essas adaptaes ocorrem de forma automtica ou semi-automtica e com isso, diminui os esforos humanos para gerenciar arquiteturas de computao em nuvem.

39

A utilizao desse cenrio recomendada principalmente com as novas abordagens descritas no item 2.2 Novas Abordagens, de modo a diminuir custos e otimizar procedimentos. Tambm se faz perceptvel que o uso de CC est aumentando em grande escala no que tange a esfera governamental pblica. Sendo desta forma, mais uma motivao para essa tecnologia ser cada vez mais estudada e difundida na TI.

40

Referncias bibliogrficas
[1] - Gartner Inc. - Technology Research - Disponvel em <www.gartner.com>. Acesso em 04 de Agosto de 2011.

[2] - ARMBRUST, Michael; FOX, Armando; GRIFFITH, Rean; JOSEPH, Anthony D.; KATZ, Randy; KONWINSKI, Andy; LEE, Gunho; PATTERSON, David; RABKIN, Ariel; STOICA, Ion; ZAHARIA, Matei - A View of Cloud Computing - Clearing the clouds away from the true potential and obstacles posed by this computing capability. Em 04 de 2011 - Disponvel em: <http://cacm.acm.org/magazines/2010/4/81493-aview-of-cloud-computing/fulltext>. Acesso em 17 de Julho de 2011.

[3] - POZZEBON, Rafaela. 2011 ser o ano do Cloud Computing? - Em 16.06.2011 Disponvel em: <http://www.oficinadanet.com.br/artigo/tecnologia/2011-sera-oano-do-cloud-computing>. Acesso em 19 de Junho de 2011.

[4] - Amazon.com - Disponvel em: <http://www.amazon.com>. Acesso em 17 de Julho de 2011.

[5] Microsoft Corporation - Disponvel em: <http://explore.live.com/windowslive-mesh> e < http://www.microsoft.com/windowsazure/>. Acesso em 31 de Julho de 2011.

[6] - Google.com - Disponvel em: <http://www.google.com>. Acesso em 17 de Julho de 2011.

[7] Totvs S/A. Disponvel em: <http://www.totvs.com>. Acesso em 17 de Julho de 2011.

[7] - Panda Security - Disponvel em: <http://www.pandasecurity.com>. Acesso em 17 de Julho de 2011.

[9] - Dropbox Inc. - Disponvel em: <http://www.dropbox.com>. Acesso em 17 de Julho de 2011.

41

[10] - VMware Inc- Disponvel em: <http://www.vmware.com>. Acesso em 17 de Julho de 2011.

[11] - Apple Inc- Disponvel em: <http://www.apple.com/icloud>. Acesso em 17 de Julho de 2011.

[12] - MOREIRA, Daniela. Cloud computing: entenda este novo modelo de computao. Em 13.02.2010. Disponvel em: <http://idgnow.uol.com.br/computacao_corporativa/2008/08/13/cloud-computingentenda-este-novo-modelo-de-computacao/paginador/pagina_2>. Acesso em 19 de Junho de 2011.

[13] - CASTILHO, Carlos - Comeou a corrida atrs da Nuvem Informativa - Em 24.05.2011. Disponvel em <http://www.observatoriodaimprensa.com.br/posts/view/comecou-a-corrida-atrasda-nuvem-informativa>. Acesso em 19 de Junho de 2011.

[14] - SOUSA, MOREIRA e MACHADO- Computao em Nuvem: Conceitos, Tecnologias, Aplicaes e Desafios Captulo 7 - Flvio R. C. Sousa, Leonardo O. Moreira e Javam C. Machado - Universidade Federal do Cear (UFC).

[15]

Service

Oriented

Architecture

Disponvel

em:

<http://www-

01.ibm.com/software/solutions/soa/>. Acesso em 17 de Julho de 2011.

[16]

Service-oriented

architecture

definition

Disponvel

em:

<http://www.service-architecture.com/web-services/articles/serviceoriented_architecture_soa_definition.html>. Acesso em 17 de Julho de 2011.

[17] - MELL e GRACE - The NIST Definition of Cloud Computing. - Disponvel em: <http://csrc.nist.gov/publications/drafts/800-145/Draft-SP-800-145_clouddefinition.pdf>. Acesso em 31 de Julho de 2011. [18] - A vantagem verde da computao em nuvem Em 15.11.2010 - Disponvel em:

42

<http://www.riosvivos.org.br/Noticia/A+vantagem+verde+da+computacao+em+n uvem/16763>. Acesso em 17 de Julho de 2011.

[19] - FAGUNDES, Eduardo - Dicas para a contratao de servios de computao em nuvem Em 07.04.2010 - Disponvel em: <http://efagundes.com/wpblog/?p=744>. Acesso em 17 de Julho de 2011.

[20] - ZOHO Project - Online Project Management & Planning Software - Disponvel em: <http://www.zoho.com/projects>. Acesso em 03 de Agosto de 2011.

[21] VEEZOR Network Intelligence - Nimbus Backup Disponvel em: <http://www.veezor.com/produtos/nimbus>. Acesso em 03 de Agosto de 2011.

[22] - RIBEIRO, Gustavo - O lado negro da Computao em Nuvem - Em 16.08.2011 Disponvel em <http://www.veezor.com/sem-categoria/o-lado-negroda-computacao-em-nuvem>. Acesso em 03/08/2011.

[23] - CHIRIGATI, Fernando Seabra. Computao em Nuvens. Disponvel ml>. Acesso em 4 de Junho de 2011.

em:

<http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2009_2/seabra/introducao.ht

[24] - SOUSA, Flvio C.; MOREIRA, Leonardo O.; MACHADO, Javam C. Computao em nuvem: conceitos, tecnologias, aplicaes e desafios . Disponvel em <http://www.es.ufc.br/~flavio/files/Computacao_Nuvem.pdf>. Acesso em 19/06 de Junho de 2011.

[25] - RUSCHEL, Henrique, ZANOTTO, Mariana Susan, MOTTA, Wlton Costa da Computao em Nuvem. Disponvel em: < http://www.ppgia.pucpr.br/~jamhour/RSS/TCCRSS08B/Welton%20Costa%20da%2 0Mota%20-%20Artigo.pdf> Acesso em 9 de Junho 2011.

[26] - Revista Mundo J - n 47, ano VIII, MAI/JUN 2011

[27] - VAQUERO, L. M.; MERINO-RODERO, L.; CACERES, J.; LINDNER, M. A Break in the Clouds: Towards a Cloud Definition. ACM SIGCOMM Computer

43

Communication 2011.

Review,

39(1):

50-55,

Janeiro

2009.

Disponvel

em

<http://portal.acm.org/citation.cfm?id=1496100>. Acesso em 04 de Agosto de

[28] VECCHIOLA, Christian - High-Performance Cloud Computing: A View of Scientific Applications Disponvel em <http://www.mendeley.com/profiles/christianvecchiola/>. Acesso em 05 de Agosto de 2011.

[28] Introduo Computao em nuvem: acompanhe o webcast! - Disponvel em: <http://olhardigital.uol.com.br/cache_true/negocios/digital_news/noticias/introduc ao_a_computacao_em_nuvem_acompanhe_o_webcast. Acesso em 05 de Julho.

[29] Cloud Computing - Introduction to the Special Theme - Disponvel em: <http://ercim-news.ercim.eu/en83/special/cloud-computing-introduction-to-thespecial-theme>. Acesso em 05 de Julho.

[30]

Cloud

computing

novo

modelo

de

computao.

Disponvel

em:

<http://sisnema.com.br/Materias/idmat019433.htm>. Acesso em 05 de Julho.

[31]

Computao

em

Nuvem

Disponvel

em:

http://pt.wikipedia.org/wiki/Computao_em_nuvem>. Acesso em 05 de Julho.

[32] Cloud computing: entenda este novo modelo de computao - Disponvel em: <http://idgnow.uol.com.br/computacao_corporativa/2008/08/13/cloud-computingentenda-este-novo-modelo-de-computacao/paginador/pagina_2>. Acesso em 05 de Julho.

[33] Computao nas nuvens vai baratear acesso Internet, aposta Google Disponvel em: <http://g1.globo.com/Noticias/Tecnologia/0,,MUL4558116174,00.html>. Acesso em 05 de Julho.

[34] Cloud Computing: Prepare-se para a nova onda em tecnologia - Disponvel em: http://computerworld.uol.com.br/gestao/2008/04/17/cloud-computingprepare-se-para-a-nova-onda-em-tecnologia>. Acesso em 05 de Julho.

44

[35]

11

categorias

de

cloud

computing

Disponvel

em:

<http://computerworld.uol.com.br/tecnologia/2010/03/03/11-categorias-de-cloudcomputing>. Acesso em 05 de Julho. [36] Windows 8: combate a pirataria por meio de Computao em Nuvem? Disponvel em: <http://www.blogplus.com.br/?p=8094>. Acesso em 05 de Julho. [37] Fortes, Jos - Advanced Computing and Information Systems Lab and NSF Center for Autonomic Computing - Sky Computing: When Multiple Clouds Become One: Prepare-se para a nova onda em tecnologia Disponvel em: <http://www.manjrasoft.com/ccgrid2010/ccgrid-keynote-final-jose.pdf>. em 05 de Setembro. [38] Notcias do SERPRO (Servio Federal de Processamento de Dados) Computao em nuvem e software livre fazem casamento perfeito Disponvel em <http://www.serpro.gov.br/noticiasSERPRO/2011/junho/computacao-em-nuvem-esoftware-livre-fazem-casamento-perfeito>. Acesso em 05 de Setembro. [39] Plataforma Nuvem Disponvel em Acesso

<http://plataformanuvem.wordpress.com/2011/04/23/plataforma-windowsazure/>. Acesso em 05 de Setembro. [40] Jogo de Quebra Cabea Sudoku Disponvel em <

http://pt.wikipedia.org/wiki/Sudoku>. Acesso em 24 de Setembro. [41] O que a plataforma Windows Azure? Disponvel em em 04 < de

http://msdn.microsoft.com/pt-br/library/ff960705.aspx>. Outubro.

Acesso

[42] Automating Azure Service Deployments with Python Disponvel em < http://randomlydistributed.blogspot.com/2010/07/automating-azure-servicedeployments.html >. Acesso em 05 de Outubro. [43] Deploying Ruby (Java, Python, and Node.js) Applications to Windows Azure Disponvel em < http://blogs.msdn.com/b/silverlining/archive/2011/08/29/deploying-ruby-java-

45

python-and-node-js-applications-to-windows-azure.aspx>. Outubro.

Acesso

em

05

de

46

47