Partimos da premissa de que servios de dados e sua arquitetura precisam estar em servidores. Ns chamamos isso de computao em nuvem - esses servios precisam estar em uma "nuvem" em algum lugar. E, se voc tiver o tipo correto de browser e o tipo correto de acesso, no importa se voc tem um PC, Mac ou um celular ou smartphone ou o que quer que voc tenha - novos dispositivos que ainda esto sendo desenvolvidos - voc pode ter acesso a "nuvem". Dr. Eric Schmidt, Google CEO, Agosto de 2006
5
Consideraes iniciais
Muito tem se falado sobre computao em nuvem nos ltimos anos. um assunto que est na agenda de 8 em cada 10 executivos de TI, apesar dos nomes e referncias a essa tecnologia serem diferentes. Uma dificuldade desses e de muitos outros profissionais de TI definir corretamente e com a amplitude necessria esta nova tecnologia baseada em princpios de computao nem to novos assim; algo que teve seu incio em 1960, com a advento da virtualizao nos computadores mainframe i . Naquela poca, a virtualizao nasceu como uma necessidade de compartilhar recursos computacionais muito caros entre vrios clientes (terminais). Era como se cada usurio tivesse um mainframe s para si, no qual pudessem instalar seus aplicativos (poucos e restritos, na verdade) e armazenar dados em sua quase totalidade em padro texto (EBCDIC). Ao longo dos anos, a computao de maneira geral tem evoludo a partir do ponto de reteno/guarda da informao para o ponto de disponibilizao/utilizao dessa informao pelos usurios. Com o advento da Web 2.0, o paradigma computacional de computadores integrando-se a outros computadores ou a usurios, mudou para a integrao entre pessoas usando a computao cada vez mais como meio e no como fim em si mesma. Para usurios de ferramentas baseadas em redes sociais, como orkut, myspace, facebook, twitter, entre outras, ou que utilizem outros servios web 2.0 como youtube, flickr, etc, no importa nem onde nem como seus dados so armazenados. A maior parte dos usurios no atenta para questes de segurana ou confidencialidade na utilizao da internet de forma geral, mas o quanto so questionados sobre isso querem apenas se sentir seguros da correta utilizao das informaes postadas nos sites de relacionamento que participam. Onde ficam essas informaes e como so armazenadas no mais um problema para esse usurio tpico. Na outra ponta, as empresas, por questes legais, econmicas ou mercadolgicas (marca), ainda precisam se preocupar com o onde e o como na equao de armazenamento e transmisso de dados de seus usurios. Aqui, partimos do princpio de que todas prestam algum tipo de servio a seus
6 usurios, sejam eles internos (colaboradores) ou externos (clientes e parceiros de negcio).
Conforme apresentado na Figura 1, a nuvem comporta uma ampla variedade de dispositivos conectados e um fluxo de informaes bastante diversificado. Em linhas gerais, os processos compreendidos nesse fluxo ocorrem paralelamente e de forma nebulosa. Componentes da infraestrutura como servios Os centros de processamentos de dados das empresas foram forados a evoluir ao longo dos anos, para atender a um nmero cada vez maior de usurios e um volume de dados desproporcionalmente maior, principalmente em virtude das novas mdias virtuais. Um documento deixou de ser apenas texto e passou a ser texto, imagem, som, e ultimamente interao com o usurio. Dessa forma, os processos de armazenamento e transmisso de dados tiveram que evoluir junto com a infraestrutura de servidores e com o conhecimento tcnico dos analistas de produo responsveis por manter os servios dos centros de processamento de dados funcionando. Hoje, ao utilizar a tecnologia de computao em nuvem, os centros de processamento de dados mudaram para centro de servios da nuvem, nos quais todos os componentes de infraestrutura passaram a ser encarados como servios. Como exemplo disso, temos IaaS, PaaS, DaaS, CaaS e SaaS. Figura 1: Diagrama de acesso a nuvem
7
IaaS - Infrastructure as a Service ou Infraestrutura como Servio (em portugus): quando se utiliza uma porcentagem de um servidor, geralmente com configurao que se adeque sua necessidade.
PaaS - Plataform as a Service ou Plataforma como Servio (em portugus): utilizando-se apenas uma plataforma como um banco de dados, um webservice, etc. (p.ex.: Windows Azure).
DaaS - Development as a Service ou Desenvolvimento como Servio (em portugus): as ferramentas de desenvolvimento tomam forma em computao em nuvem como ferramentas compartilhadas, ferramentas de desenvolvimento baseadas na web e servios baseados em mashup (forma pela qual um usurio pode montar seus aplicativos em um mesmo front- end, no caso em uma pgina da web) .
SaaS - Software as a Service ou Software como Servio (em portugus): uso de um software em regime de utilizao web (p.ex.: Google Docs , Microsoft Sharepoint Online).
CaaS - Communication as a Service ou Comunicao como Servio (em portugus): uso de uma soluo de Comunicao Unificada hospedada em Data Center do provedor ou fabricante (p.ex.: Siemens Enterprise , Locaweb).
8
Aspectos Econmicos Alm da evoluo natural dos centros de processamento de dados puxada pela cada vez mais crescente utilizao de contedos complexos (web 2.0), existem aspectos econmicos que no podem ser esquecidos na hora de otimizar hardware, software e servios no atendimento aos usurios. Toda empresa quer reduzir custos, isto fato. O problema que as empresas, de maneira geral, enfrentam como reduzir o custo total de propriedade (TCO ii ) de seu parque de TI. Tradicionalmente o TCO, neste caso, est intimamente ligado a quantidade de servidores adquiridos, ao nmero de licenas de software compradas e ao nmero de funcionrios responsveis por manter o parque de TI funcionando. Alguns problemas recorrentes so encontrados na maioria das empresas: A quantidade de servidores ou no consegue atender bem a picos de utilizao, gerando perda de receita, ou est superestimada, o que mais comum. O controle sobre as licenas de software falho: muitas expiram sem os responsveis saberem, o que pode gerar problemas legais para a empresa; mas o mais comum ainda a subutilizao do software, seja por excessivo nmero de licenas seja pela no implantao de um projeto que demandou compra de hardware, software e servios para Figura 2: Expanso da nuvem
9 comear mas que no chegou ao fim ou foi totalmente abandonado. A heterogeneidade de fornecedores sobrecarrega o time de suporte: fora tecnologias de padro aberto, a maior parte do hardware, do midleware (software que serve como plataforma de utilizao de outro software) e, consequentemente, dos servios no segue padres de mercado, alm de ser totalmente orientada a projetos/sistemas/caixas.
Com o intuito de sanar tais problemas, busca-se a adequao da infraestrutura de forma compatvel com a demanda estabelecida. Nesse contexto, a Figura 3 apresenta um modelo genrico de evoluo de Centros de Processamentos de Dados, nos quais os aplicativos antes processados em servidores estanques, agora virtualizam os recursos de diferentes aplicativos de forma combinada e reportam as informaes um nico servidor que atua como banco de dados.
Aes como a utilizao de virtualizao de servidores e o provisionamento automtico de recursos, ambas presentes na tecnologia de computao em nuvem, ajudam a sanar quase que totalmente esses e outros problemas de infraestrutura de TI, reduzindo assim o TCO do parque de TI Figura 3: Evoluo dos Centros de Processamento de Dados
10 como um todo. Aspectos Ambientais Alm dos aspectos econmicos descritos acima, existe um que tambm tem um vis ambiental: a economia de energia eltrica, dentro de um conceito de otimizao dos recursos de TI. A esse processo de otimizao que prima pela economia de energia tanto pela reduo do consumo pelos servidores quanto pela refrigerao, principal vilo dos datacenters, deu-se o nome de TI Verde (Green IT iii ). De forma geral, essa nova tendncia surge como uma resposta crescente necessidade de economia de recursos naturais e ainda ao controle climtico mundial. Nesse conceito esto embutidas outras propostas como: responsabilidade social, adequao ambiental e ainda sutentabilidade. Com base nesse entendimento, a utilizao, por exemplo, de videoconferncias em lugar de reunies presenciais no representa apenas uma aplicao tecnolgica, mas tambm uma prtica ambiental que resulta na eliminao de deslocamentos, reduo de consumo de combustveis e emisses de gases poluentes e principalmente carbono na atmosfera representa, portanto economia financeira e otimizao dos recursos. Outra aplicao, mais relacionado com a proposta deste curso, o uso de infraestrutura (servidores, monitores, etc) com maior eficincia energtica. No Brasil, a Itautec uma das empresas que tem se empenhado de forma significativa no desenvolvimento da TI Verde. Segundo Joo Carlos Redondo - gerente de Sustentabilidade da Itautec , h a proposta de adequao padres europeus de sustentabilidade, bem como adoo de equipamentos com tecnologia que facilite o descarte dos resduos eletroeletrnicos resultantes do uso, ao final do ciclo de vida.
11
Existem vrias outras iniciativas que tangem um centro de processamento de dados que queira receber o sele de Centro de TI Verde, como economia de gua e processo de reciclagem de resduos slidos (com ateno especial aos resduos eletroeletrnicos). Alm disso, alguns centros ainda dispem de produo prpria da energia que consomem, reduzindo drasticamente o risco da operao (Figuras 4 e 5).
O supercomputador, MareNostrum (Figura 5), instalado no Centro Nacional de Supercomputao em Barcelado e fabricado pela IBM, tem uma capacidade mxima de 94.21 TeraFlops, ocupa um dos primeiros lugares no ranking de supercomputadores mais potentes do mundo e o mais poderoso da europa. Uma das vantagens do MareNostrum o fato de poder trabalhar simultaneamente para vrias pesquisas. Figura 4: Esquema de gasto de energia em um datacenter Figura 5: Iniciativas para economia de energia em um datacenter
12 Apresentando algumas especificaes tcnicas, esse supercomputador, tem capacidade de processamento de 42, 44 teraflops; 9,6 terabytes de memria principal; 128 terabytes de disco externo; 10.240 processadores PowerPC 970 a 2,33 Ghz. Sistema operacional Linux, rede de interligao Myrinet com uma largura de banda mxima de 250 MB (duplex completo) e uma latncia de 6 micro-segundo, consumindo cerca de 600 KW de energia. Hoje o MareNostrum atua em pesquisas de ponta da biotecnologia como o genoma humano, pesquisas climticas e pesquisa sobre novas drogas com significativa eficincia trmica e eltrica. Assim, o modelo de computao em nuvem como uma abstrao de acesso a recursos computacionais veio de encontro a ambas as necessidades, tanto dos usurios finais quanto das empresas, no tocante a como disponibilizar informaes de forma segura, eficiente, confivel, flexvel e expansvel.
Figura 6: Evoluo do Centro de Processamento de Dados Corporativo
13
Em que consiste a computao em nuvem ?
No devemos confundir o conceito de computao em nuvem com outros conceitos que podem ser parte ou alternativa a essa tecnologia, como computao em grade (grid computing), computao autonmica, virtualizao, computao paralela, entre outras. Por ser muito uma tecnologia muita ampla, a computao em nuvem pode ter vrias definies, de acordo com o componente ou ponto do ciclo de vida do servio da nuvem. Porm, acredito que uma definio que melhor descreva seus aspectos gerais seria:
A Computao em Nuvem um paradigma de computao emergente onde dados e servios residem em centros de dados (data centers) - ao mesmo tempo escalveis e geograficamente abrangentes - e que podem ser acessados de forma transparente por qualquer dispositivo conectado a uma rede.
A partir dessa definio podemos destacar alguns conceitos e caractersticas de computao em nuvem:
Transparncia A localizao fsica e detalhes da infraestrutura necessria para sua implementao so transparentes para o usurio final. O usurio final no precisa saber (e muitas vezes lhe vedado saber) sobre os detalhes de implementao daquele servio que ele est consumindo da nuvem. Aspectos de implementao do servio que no so de conhecimento do usurio incluem: como onde os dados sero armazenados, tanto geograficamente quanto em que tipos de mdias eletrnicas, como ser feito o controle de acesso, quais e que tipos de servidores sero utilizados na cadeia de disponibilizao do servio, quais e que tipos de software sero utilizados na implementao e monitoramento do servio, entre outras.
14 O que importa na verdade qual o nvel de servio (SLA iv ) que ele espera obter ao utilizar um servio da nuvem, ou seja, com que nvel de confiana, tempo de espera, e segurana ele acessar o servio. Com isso, ele espera obter um ponto de conexo a nuvem cujas regras de acesso sejam definidas pelo publicador do servio e claramente disponibilizadas para os usurios atravs de contratos de servio.
Escalabilidade Trata-se da habilidade para processar grandes cargas de dados e servios complexos de forma fracionada atravs de uma infraestrutura expansvel incrementalmente. A escalabilidade de uma nuvem essencial para atender um dos principais problemas de um parque de TI convencional: pico de utilizao. Os picos de utilizao podem estressar a infraestrutura a ponto de gerar perdas de receita por servio negado (DoS) de requisies de usurios. No se trata apenas de perdas financeiras como deixar de vender um produto ou servio, mas tambm de perdas na imagem da empresa, que pode ser medida atravs do valor da(s) sua(s) marca(s). Para implementar funes de escalabilidade de maneira eficiente, uma nuvem delega a um servio de provisionamento automtico de hardware e software a tarefa de criar e/ou expandir a infraestrutura de TI de modo a atender o pico de demanda e, no menos importante, liberar os recursos to logo o pico deixe de existir. Como estratgia de provisionamento automtico desta tecnologia destaca-se a clonagem de recursos e virtualizao do sistema operacional atravs de supervisores de processos (hypervisors v ) compartilhados, como na vmware, virtualbox, xen, entre outros.
Eficincia A eficincia da computao em nuvem deve-se em grande parte a arquitetura orientada a servios (SOA) aplicada ao provisionamento dinmico e compartilhamento de recursos computacionais. A automatizao dos processos de monitoramento e implementao dos
15 servios de uma nuvem so vitais para seu sucesso, tanto em termos de utilizao quanto em termos econmicos. Como exemplo, a nuvem implantada pela Amazon como servio de hospedagem de software tem mais de 40 mil servidores (mquinas virtuais) conectados e apenas um grupo de 6 tcnicos de TI para monitor-las. Alm disso, verificamos a implementao do ciclo de vida de um servio na nuvem atravs de prticas SOA, o que faz toda a diferena na otimizao da disponibilidade do servio para o usurio final. O ciclo de vida de um processo baseado em SOA, com modelagem, montagem, publicao e monitoramento, se realizado de forma automtica, gera ganhos de eficincia mensurveis, o que refora os aspectos econmicos envolvidos em uma soluo de computao em nuvem.
Flexibilidade A tecnologia de computao em nuvem pode servir a uma variada gama de tipos de dados e servios, tanto corporativos quanto para usurios finais. Atrelado a isso, serve cada vez mais a uma gama cada vez maior de dispositivos, de computadores pessoais a celulares e smartphones, passando por dispositivos menos ortodoxos como geladeiras, carros, centrais inteligentes, etc. Com o acesso ao servio na nuvem padronizado, torna-se quase trivial a conexo de dispositivos heterogneos, com picos de utilizao diferentes, caractersticas e tratamento de dados diferentes, enfim, a aspectos diversos porm como uma interface (pelo menos) padronizada e comum a todos os dispositivos conectados na nuvem.
Segurana As informaes precisam ser disponibilizadas para quem de direito, independentemente do meio de transmisso ou consumo dessas informaes. Isso verifica-se mais nas redes corporativas (nuvens internas a organizao) ou nos servios disponibilizados contendo um contrato de utilizao que reforcem esses aspectos. Como exemplos podemos citar contratos de utilizao de sites
16 de servios bancrios. Para tanto, alguns aspectos de infraestrutura devem ser levados em considerao ao se implementar um servio na nuvem, j que este poder ser acessado de qualquer lugar a qualquer hora por qualquer usurio. Um tcnica muito utilizada a de impersonalizao, na qual as credenciais de um usurio, aps checadas contra o servio de segurana da informao da nuvem, cria um novo processo para atender a requisio do usurio, contendo os direitos de acesso que o usurio possui. Porm o dono (owner) desse processo o servidor que recebeu a requisio do usurio em primeira instncia, ficando responsvel pela utilizao (chamadas) dos outros servios da nuvem para o atendimento a requisio original do usurio. Isso evita que um usurio tenha acesso direto a servios internos da nuvem, o que poderia expor a segurana da nuvem como um todo.
A perspectiva das equipes de TI
Em computao em nuvem as unidades de TI, os analistas de suporte responsveis por gerir o parque de TI das empresas passam a trabalhar em outro nvel o da monitorao em exceo. Esse processo de trabalho pode ser verificado na maior parte dos centros de processamento de dados que j adotaram a tecnologia de computao nuvem e consiste em administrar os desvios do processo principal totalmente automatizado. Casos como quebra de mquinas e problemas com disponibilizao de servios so e devem ser tratados como exceo por essas equipes.
17 Diferenas para outros conceitos utilizados em computao em nuvem Ao entrevistar profissionais de TI dos mais variados graus de experincia, nota-se que existe uma confuso ao se tratar o tema de computao em nuvem. Outros conceitos relacionados ou que fazem parte dessa tecnologia so tomados muitas vezes como o todo. Aqui vo alguns exemplos: Computao em Grade Computao em grade nasceu como uma alternativa ao processamento de grandes quantidades de dados em servidores de grande porte de processamento e, por isso, muito caros e de acesso controlado (vide restries ao mainframe CRAIG para clculos para a bomba atmica). A ideia bastante simples: dividir o processamento de um dado complexo em pedaos e delegar a uma grade de computadores de menor porte o processamento de cada um dos pedaos. Um servidor de maior porte ficaria responsvel apenas pela totalizao (ou juno) dos pedaos processados. O projeto mais famoso de que se tem notcia sobre processamento em grade o SETI @home (busca por sinais de vida extraterrestre: http://setiathome.berkeley.edu/). Neste projeto, cada computador pessoal conectado a grade recebe, de acordo com sua capacidade de processamento, uma ou mais tarefas contendo dados de satlite para serem analisados. Ao trmino do processamento de cada tarefa, um resultado enviado para o servidor central para anlise e disponibilizao dos resultados para os pesquisadores do projeto SETI. Porm, outros projetos de computao em grade como o World Computing Grid (http://www.worldcommunitygrid.org/) tm objetivos mais imediatos, como a anlise de protenas para a produo de novos medicamentos. Podemos dizer que trata-se de um modelo cliente-servidor inverso, no qual o cliente processa os dados e os repassa a um servidor consumidor. Nas Figuras 8 e 9, exemplos de clientes de computao em grade so apresentados.
18
Software como Servio (SaaS)
Software como Servio (Software as a Service, SaaS) um modelo de negcios para a disponibilizao de software, principalmente middleware vi , na base de cobrana sobre a utilizao e no sobre o direito de uso, como no modelo de venda de software tradicional. Como ele, existem outros relacionados a cada componente da infraestrutura necessria a disponibilizao de um servio na nuvem, como plataforma, servidores (hardware), canal de comunicao, etc. Dentro da tecnologia de computao em nuvem, o conceito por trs de SaaS fornecer o modelo ideal de contratao para os servios disponibilizados pela nuvem, j que todo o software utilizado na soluo disponibilizada pelo servio no de conhecimento do usurio final. Este paga por um servio prestado pela nuvem. A Figura 10 apresenta um exemplo de um software disponibilizado utilizando-se o modelo aqui apresentado.
Figura 7: Cliente de computao em grade rodando localmente Figura 8: Projetos e atividades sendo executados por um cliente de computao em grade
19
Computao paralela
Computao paralela uma tcnica de computao que permite a um processo rodar de forma integrada em vrias mquinas ao mesmo tempo, com o objetivo de reduzir o tempo total de processamento e/ou diminuir a incidncia de falhas atravs de redundncia. Contudo, os programas precisam ser escritos para trabalharem dessa forma, utilizando o mximo de recursos que essa tcnica de processamento pode prover. Verificamos a aplicao de computao paralela em vrios nveis, desde software bsico de sistemas operacionais desenvolvidos com propsito especfico (servidores para computao cientfica, servidores de alta capacidade de processamento, servidores de alta capacidade de tratamento/transmisso de dados, entre outros), at sistemas de banco de dados, aplicativos de pesquisa (engenho de pesquisa do Google, por exemplo) e aplicativos de controle com alto nvel de redundncia e tempo de disponibilidade (pelo menos maior que 99,9999%). Figura 9: Exemplo de SaaS: LotusGreenHouse
20
Ciclo de Vida de um Servio da Nuvem
Um servio disponibilizado na nuvem tem seu ciclo de vida definida por aspectos SOA: modelagem, montagem, publicao e monitoramento. Porm, no caso de computao em nuvem cada um desses passos sofre algum nvel de automatizao, de forma a manter as caractersticas descritas acima.
Modelagem
A modelagem de um servio comea na rea de negcios, tendo como base uma necessidade do usurio a ser atendida pelo novo servio. Esse novo servio pode ser baseado, como ocorre na maioria das vezes, em servios bsicos (internos) j disponibilizados pela rea de TI para serem utilizados em composies. Como exemplos, temos servios de provisionamento automtico, servios de transmisso e armazenamento de dados, entre outros.
Figura 10: Centro de Processamento de Dados Modular da Google
21 Um outro ponto importante a definio do contrato de nvel de servio (SLA) para o novo servio e como suport-lo no nvel do parque de TI. Para tanto, criamos templates de utilizao, que nada mais so do que a formalizao dos cenrios de utiizao daquele servio, que plataformas ele atender, que tipos de dispositivos conectados ele suportar, etc. Esses templates facilitam o trabalho de escolha do usurio no momento da contratao do servio a ser utilizado.
Montagem
A montagem de um novo servio na nuvem passa necessariamente pela sua configurao dos recursos computacionais utilizados pelo servio. Como exemplo, para ser disponibilizado como servio, um sistema precisa ser instalado em uma infraestrutura, que por sua vez precisa ser montada em cima de hardware e software bsico (sistema operacional e midleware). Os centros de processamento de dados utilizam tradicionalmente um batalho de analista de suporte para controlar a entrada de um sistema em produo e monitorar seu comportamento nesse ambiente. Porm, antes disso, eles precisam ter onde instalar o sistema, precisam de servidores (tanto para processamento quanto para armazenamento de dados) e de sistemas operacionais e midleware (servidores de aplicao) que permitam a utilizao dos recursos disponveis nos servidores. Ainda sim, fora o problema da aquisio de tudo isso, existe o problema da sua utilizao em larga escala estar sujeita a picos de utilizao e problemas que geram indisponibilidade em um ou mais componentes da soluo. Dessa forma, a tecnologia de computao em nuvem utiliza ferramentas para provisionamento automtico de hardware e software. O analista, ao invs de trabalhar mquina a mquina, montando e instalando tudo, acessa um portal de servios no qual ele provisiona a quantidade necessria de processadores, memria e disco, sistema operacional, midleware embarcado (opcional), alm de aspectos de redundncia e resilincia. O sistema de provisionamento seleciona dentro de um conjunto (pool) de mquinas previamente cadastradas e ligadas, as que iro atender a solicitao postada pelo analista de suporte.
22 Aps executar as tarefas de instalao e configurao das mquinas, o sistema envia um e-mail para o analista de suporte com todas as caractersticas solicitadas por ele e um ip, usurio e senha de acesso ao novo ambiente provisionado para ele.
Publicao
A publicao de um servio ocorre quanto o mesmo passa a integrar um diretrio de servios disponibilizado pelo site/empresa. O diretrio de servios um banco de dados no qual esto cadastrados os servios e seus contratos de utilizao. O acesso a esse diretrio pode se dar de vrias formas, mas a mais comum termos um portal de auto-servio para a pesquisa e consumo (utilizao) de um ou mais servios. Aps ser publicado, um servio da nuvem pode ser consumido de vrias formas. Uma das melhores, seja pelo aspecto prtico de acesso seja pela variedade de dispositivos atendido, atravs de uma chamada REST vii em um browser ou similar. Uma chamada REST permite ao publicador disponibilizar uma funcionalidade em um sistema ou um recurso (dados, arquivos, etc). Isso facilita sobremaneira a execuo de tarefas em outras etapas do ciclo de vida, como o Monitoramento do servio em tempo real.
Monitoramento
O monitoramento de um servio realizado por ferramentas automatizadas que garantem o pleno funcionamento de todos os componentes (de hardware, de software e de servios) envolvidos na soluo que implementa e disponibiliza o servio em questo. Conforme mencionado anteriormente, o monitoramento ocorre em esquema de exceo, ou seja, apenas os problemas recebem interveno manual quando ocorrem. O provisionamento das mquinas necessrias ao atendimento ao servio, bem como outros aspectos relevantes como tempo de latncia de uma requisio do usurio e taxa de transmisso de dados, so totalmente automatizados e se
23 adequam a picos e vales de utilizao do servio em especfico e da infraestrutura como um todo.
Resumo dos conceitos apresentados
Cloud Computing (ou Computao em Nuvem) um novo paradigma de informtica em que dados e servios residem em enormes centros de processamentos de dados que podem ser acessados livremente por dispositivos na Internet. Na viso do usurio dos servios o processamento acontece em algum lugar da Internet. Para o provedor de servios, a infraestrutura construda de tal forma que centenas de mquinas possam ser adicionadas rapidamente para atender a um aumento de demanda. Essa abordagem permite que aplicaes consigam atender a milhes de usurios e processar enormes volumes de dados. Exemplos de aplicaes desse tipo so: servios como indexao da Google, e-Bay, GMail, You-tube, Flickr, Face-book entre outras aplicaes Web 2.0. Vrios fatores contribuem para o interesse nesse novo paradigma. De um lado o nmero potencial de usurios acessando qualquer aplicao cresce vertiginosamente devido ao acesso ampliado a dispositivos conectados a Internet (celulares, computadores baratos, centros de incluso digital, etc). Como consequncia, aplicaes e servios devem ser construdos de forma que possam crescer rapidamente. No incomum que o nmero de usurios comece com poucos milhares de usurios e atinjam em pouco tempo milhes de pessoas. Outro aspecto do maior uso de TI um aumento nos volumes de dados gerados. Esses dados precisam ser armazenados, processados, e tratados. Enquanto 10 anos atrs alguns giga-bytes era considerado muita informao, hoje usurios domsticos j usam milhares de giga-bytes de dados. Em empresas e instituies governamentais os volumes de dados so milhares a milhes de vezes maiores do que isso. Essas magnitudes requerem super- computadores ou estratgias de usar milhares de mquinas menores. A tendncia que o volume continue crescendo, ao passo que os processadores individuais parecem estar atingindo seus limites. O resultado que o
24 processamento dever ser feito usando novas tcnicas. A necessidade de atender e compreender esses requisitos cria um enorme interesse por parte de empresas, instituies de pesquisa e governos. O uso efetivo desse paradigma passa necessariamente pelo domnio das tecnologias subjacentes e do desenvolvimento de praticas e processo para usar de forma eficiente o poder computacional hoje disponvel. Esse processo de inovao fundamental para insero futuro da tecnologia da informao. A Figura 12 apresenta os pontos de acesso que podem ser utilizados nesse paradigma de computao juntamente com o centro de dados onde o software utilizado na computao em nuvem armazenado.
Figura 11: Acesso nuvem a partir de pontos distintos.
Centro de dados - Hospeda o software - Mantm o hardware do servidor - Backup dirio Trabalhadores em casa - Acessar aplicaes por meio de PCs padres com banda larga Trabalhadores remotos - Acessar aplicaes por meio de PCs com banda larga em hotis, cafs, outros locais Trabalhadores locais - Acessar aplicaes por meio de PCs
25
Computao em Nuvem (Cloud Computing)
Parte II Estudos de Caso
Hoje voc pode e deve escolher a melhor alternativa , seja software pago ou gratuito. Mas, a maio vantagem de computao em nuvem que eu no sou mais dependente da mquina e posso desfrutar as aes que demandam compartilhamento, como criao de textos. Cezar Taurion, IBM, 2010.
26
Consideraes Iniciais
Atualmente, todos os grandes players de TI tem uma ou mais solues de computao em nuvem as quais abrangem todo o ciclo de vida ou parte dele. Na parte II desta apostila, apresentaremos um resumo das principais iniciativas de cada uma das grandes empresas de TI (IBM, Google, Microsoft, HP) e de outras empresas ou iniciativas que merecem destaque como Amazon e VMWare.
Estudo de Caso - IBM
A IBM, por fazer parte da histria de TI, no podia deixar de ter papel importante na revoluo empregada por computao em nuvem. Tudo comeou com a virtualizao implantada pelos computadores mainframe nos idos de 1960. Naquela poca, um mainframe era muito caro at para empresas de grande porte. Da a necessidade de otimizar ao mximo os recursos computacionais disponveis, medidos em MIPS, ou unidades de processamento. Com a virtualizao era possvel aos usurios criarem mquinas independentes dentro do mainframe, particionando seu processamento, sua memria e seu storage discos rgidos. Tudo isso muito comum hoje em dia, mas a poca a maioria dos usurios ainda trabalhava com computadores baseados em cartes perfurados e no sistema um -de-cada-vez. Atualmente, as solues IBM contemplam todas as etapas do ciclo de vida de disponibilizao de um servio na nuvem, seja ela baseada na internet ou em nuvens corporativas.
IBM Academic Initiative
A IBM, Google e seis universidades norte americanas se uniram para criar trs nuvens distintas (uma na IBM, uma na Google, e uma na Universidade de Washington). Alunos e professores das universidades envolvidas usam as nuvens para fins acadmicos, explorando as tecnologias de computao
27 paralela desenvolvidas pela Google. A Figura 13 apresenta uma viso geral da iniciativa. Alm do hardware, a IBM contribui com a gesto automtica dos trs ambientes.
Dublin Cloud Computing Center
A IBM est criando na Irlanda uma nuvem para oferecer recursos computacionais e software para empresas e instituies que queiram usar esse recursos para projetos de inovao por meio do aluguel de infraestrutura.
O modelo de aplicao e cobrana o mesmo e se baseia na pilha de servios providos pela nuvem, apresentada na Figura 14. Figura 12: Iniciativa acadmica da IBM para fomentar o desenvolvimento de aplicativos em nuvem
28
Wuxy Cloud
Essa nuvem est sendo criada pela pelo municpio de Wuxi na China. O objetivo fornecer s empresas da regio recursos computacionais para o desenvolvimento de software usando tecnologias Rational.
O principal objetivo do centro a criao rpida de ambientes de desenvolvimento para at 200.000 desenvolvedores de software espalhados Figura 13: Esquema de pilha de servios.
29 em 100 empresas.
Com isso, reduz o custo com a infraestrutura compartilhada e a cobrana passa a ser feita baseada no uso dos recursos, trazendo grande economia para as empresas participantes.
VISTA Inovation Portal:
um portal de colaborao visando o fomento da inovao entre universidades e centros de pesquisa do Vietnam. O portal congrega professores, alunos e pesquisadores no trabalho colaborativo de desenvolver idias e inovao. O portal foi criado Ministrio de Cincia e Tecnologia do Vietnam usando o Portal de Inovao da IBM (Idea Factory) em uma nuvem computacional mantida em um laboratrio da IBM nos Estados Unidos.
Estudo de Caso Amazon
Dentre as empresas que no so originariamente de TI mas que despontam como futuras provedoras de servios na web, a Amazon, atrs do seu portal de servios AWS (Amazon Web Services), foi uma das primeiras portas de entrada para o mundo da computao em nuvem acessado via web, antes mesmo da IBM. O portal de servios da Amazon (http://aws.amazon.com/) uma maneira fcil e rpida de disponibilizar servios na web atravs de utilizao de uma mquina virtual (AVI), provisionada e disponibilizada com software Linux. Aps contratar o servio de hosting, por exemplo, o usurio recebe um e-mail com o IP da nova mquina e um usurio e senha de acesso a ela. A partir da a mquina passa a ser dele para disponibilizar seus prprios servios na web.
30 Estudo de Caso - Google
A Google um empresa muito jovem, 10 anos apenas. Porm, seu estrondoso sucesso deve-se em parte ao modelos de negcio inovadores lanados pelo empresa nos ltimos anos, aliados a tecnologia de ponta. Uma das prximas frentes de ataque da Google na computao em nuvem. Hoje a empresa oferece todos os seus servios web baseados em um nuvem prpria de servios, como o pesquisador Google, o GoogleDocs e o GoogleTranslator, s para citar alguns exemplos. Esses servios esto disponveis na web, mas rodam em algum lugar dentro da nuvem Google. A Google ganhou muita experincia nos ltimos anos ao projetar e fabricar centros de processamento de dados baseados em containers (vide figura acima). Com isso, a empresa ganhou escala e possibilidade de entrar como um grande publicador de servios de hosting de mquinas virtuais a chamada EC2 (Elastic Cloud).
Estudo de Caso - Microsoft
A Microsoft foi uma das ltimas das grandes empresas de TI a aderirem a conceitos de computao em nuvem e a lanar uma plataforma (Azure) especfica para isso. Apesar de mais ampla e voltada para empresas, a Azure uma plataforma que oferece os principais servios bsicos de provisionamento na nuvem (IaaS, PaaS e SaaS). A ideia por traz da iniciativa da Microsoft reforar a presena dos sistemas operacionais da famlia Windows para servidores, que vem perdendo terreno nos ltimos anos para os baseados em Linux. A situao encontrada nas pequenas e mdias empresas ainda de uma floresta de anes, nome carinhosamente dado pelos analistas de suporte para os parques de TI baseados em muitos servidores de pequeno porte (alguns to ou menos potentes quanto estaes de trabalho mais novas). Em funo disso, importante termos uma plataforma que integre todos esses servidores e que possa rodar um sem-nmero de aplicaes baseados em Windows, porm sem
31 a necessidade de se obter uma nova mquina (ano) e todo os processo de aquisio que a acompanha. Web Office (http://office.live.com) Depois de muito relutar, a Microsoft lanou recentemente uma verso do seu pacote de servios Office (Word, Excel e PowerPoint) para a internet, que pode ser usado gratuitamente (por enquanto apenas em ingls).
i Um mainframe um computador de grande porte, dedicado normalmente ao processamento de um volume grande de informaes. Os mainframes so capazes de oferecer servios de processamento a milhares de usurios atravs de milhares de terminais conectados diretamente ou atravs de uma rede. (O termo mainframe se refere ao gabinete principal que alojava a unidade central de fogo nos primeiros computadores.). ii O termo TCO (Total Cost of Ownership) vem sendo amplamente utilizado no meio acadmico, na mdia, em conferncias, workshops e mesas redondas. No nosso caso ele utilizado para avaliar os servios de mobilidade do ponto de vista de valor agregado. iii A computao verde (Green IT) refere-se a computao ambiental sustentvel. No artigo sobre TI Verde: Os princpios e as prticas, San Murugesan define o campo da computao verde como "o estudo e a prtica de projetar, manufaturar, usar e dispor computadores, monitores, impressoras, dispositivos de armazenamento e sistemas de rede e comunicaes, com mnimo ou nenhum impacto no meio ambiente." iv Um acordo do nvel de servio (abreviado frequentemente como SLA) uma parte de um contrato de servio onde o nvel de servio seja definido formalmente. Na prtica, os SLAs so usados para definir o contratante (do servio) ou o desempenho. Como um exemplo, os provedores de servios do Internet incluiro geralmente acordos do nvel de servio dentro dos termos de seus contratos com clientes para definir os nveis de servio que esto sendo vendidos , como uma definio tcnica nos termos do MTTF, do MTTR, de vrias taxas de dados, etc. v Na computao, um hypervisor, igualmente chamado monitor da mquina virtual (VMM), permite que mltiplos sistemas funcionem simultaneamente em um computador anfitrio, uma caracterstica chamada virtualizao da console. O hypervisor apresenta aos sistemas convidados uma plataforma virtual de funcionamento e monitora a execuo destes no sistema anfitrio. Um exemplo de um hypervisor PR/SM, um tipo assim chamado - 1 hypervisor, que aloca recursos de sistema atravs de divises lgicas de recursos fsicos tais como os processadores centrais, os dispositivos de armazenamento do acesso direto e a memria. O PR/SM foi introduzido pela IBM no princpio dos anos 70 com os processadores do sistema IBM/370. Estes conceitos assentaram bem em uma parte importante da tcnica conhecida como virtualizao. Outros sistemas, mais atuais, utilizam outros nveis ou tipos de hypervisors, como vmware, xen e virtualbox. vi Middleware o software de computador que conecta componentes de software ou usurios e suas aplicaes. O middleware consiste em um conjunto de servios que permite mltiplos processos funcionarem em uma ou vrias mquinas para interagir.
32 Esta tecnologia evoluiu para prever a interoperabilidade na sustentao do movimento s arquiteturas distribudas coerentes, que so as mais usadas frequentemente ao suportar e simplificar aplicaes distribudas complexas. Inclui web server, servidores de aplicaes e ferramentas similares que suportam o desenvolvimento de aplicaes e sua instalao. A computao distribuda especial integral tecnologia da informao moderna baseada em XML, em SOAP, em servios web e na arquitetura orientada a servios. A computao distribuda fica "no meio" entre o software de aplicao e o de sistemas operacionais. vii A Transferncia de Estado Representacional (Representational State Transfer) ou somente REST uma tcnica de engenharia de software para sistemas distribudos na web. O termo se originou no ano de 2000, em uma tese de doutorado sobre a web escrita por Roy Fielding, um dos principais autores da especificao do protocolo HTTP que utilizado por sites da internet. O termo REST se referia, originalmente, a um conjunto de princpios de arquitetura, mas que atualmente se usa no sentido mais amplo para descrever qualquer interface web simples que utiliza XML e HTTP (ou YAML, JSON, ou texto puro), sem as abstraes adicionais dos protocolos baseados em padres de trocas de mensagem como o protocolo de servios SOAP. possvel desenhar sistemas de servios web de acordo com o estilo arquitetural REST descrito por Fielding, e tambm possvel desenhar interfaces XMLHTTP de acordo com o estilo de RPC mas sem utilizar SOAP. Estes usos diferentes do termo REST causam certa confuso em discusses tcnicas, onde RPC no um exemplo de REST.