Relatório Telma Fernandes, 70490 Tiago Francisco, 70635 Centros de Dados, 2013/2014 Resumo O relatório descreve o tema cloud computing, mais concretamente IaaS, os vários serviços disponíveis e utilidade dos mesmos. Descreve ainda as plataformas que esses serviços usam e os principais players de mercado nesta área. São também referidos os principais modelos de cloud computing e são apresentados tanto casos de estudo, como uma análise ao tema relatado. 1. Contexto A evolução que a internet sofre constantemente e todos os avanços feitos no mundo das telecomunicações provocaram, ao longo do tempo, diferentes formas de estruturar e definir os sistemas informáticos. Tais avanços resultaram no aparecimento de várias tecnologias, entre as quais a cloud computing. Esta última tem cada vez mais adesão nos dias que correm. Cloud computing é a entrega de computação como um serviço no qual recursos partilhados, software e informações são fornecidos para computadores e outros dispositivos através de uma rede. De um modo genérico refere-se à utilização de recursos computacionais como memória, capacidade de armazenamento de dados, capacidade de processamento/cálculo baseados em servidores compartilhados e interligados através da Internet. Segundo o NIST 1 , este modelo de computação é identificado por um conjunto de características que permitem o acesso a recursos computacionais na cloud, recursos estes que usam a metodologia de Resource Pooling2, de forma instantânea e on-demand3 através de 1 O National Institute of Standards and Technology (NIST) é uma agência governamental não-regulatória da administração de tecnologia do Departamento de Comércio dos Estados Unidos, cuja missão é promover a inovação e a competitividade industrial dos Estados Unidos, promovendo a metrologia, os padrões e a tecnologia de forma que ampliem a segurança económica e melhorem a qualidade de vida. 2 Recursos de computação do fornecedor são agrupados para atender vários consumidores através de um modelo multi-tenant (uma única instância do software a correr num servidor, servindo múltiplos clientes), com diferentes recursos físicos e virtuais atribuídos e realocados dinamicamente de acordo com a demanda do consumidor. 1 de 39 diferentes dispositivos e aplicações heterogéneas4. O pagamento dos recursos disponibilizados na cloud é efectuado de acordo com a utilização (pay-per-use), controlados por um Measure Service5. Os serviços que se podem desenvolver tendo como base a tecnologia de cloud computing são vários, no entanto, destacamos os seguintes: 1. Infrastructure-as-a-Service (IaaS): É um conjunto de serviços de abstracção do hardware. De um modo genérico, são fornecidos serviços de processamento e armazenamento essenciais, onde os utilizadores podem implementar, instalar e executar qualquer tipo de aplicação de software. 2. Platform-as-a-Service (PaaS): É definida como um conjunto de software e ferramentas de desenvolvimento de produtos alojados em infra-estruturas do fornecedor. Os developers criam aplicações na plataforma do fornecedor através da Internet. 3. Software-as-a-Service (SaaS): O vendedor fornece a infra-estrutura de hardware, o software e interage com o utilizador através de um portal de frontend. Como o fornecedor do serviço aloja tanto a aplicação como os dados, o utilizador final é livre de usar o serviço a partir de qualquer lugar. Gráfico 1: Relação entre o custo-benefício da solução e do grau de controlo da mesma. Existem vários tipos de cloud, sendo os principais a cloud pública, a privada e a híbrida. A cloud pública define-se pela sua disponibilidade global na internet, pelo que qualquer utilizador se pode inscrever para a usar. Neste caso o servidor é partilhado com outros utilizadores, eventualmente concorrentes no caso das empresas. Deste modo, cada utilizador tem controlo sobre as suas próprias acções, mas não sobre as acções dos outros no ambiente. 3 O utilizador usa recursos de computação, tais como tempo de servidor e armazenamento em rede, conforme a sua necessidade, de maneira automática e sem a intervenção humana com o fornecedor de cada serviço. 4 Aplicações que intercalam tecnologias diferentes com um mesmo propósito, ou seja, que compartilham informações de maneira emparelhada. 5 Sistemas em cloud que controlam e optimizam automaticamente o uso dos recursos, aproveitando uma capacidade de medição em algum nível de abstracção apropriado para o tipo de serviço. O uso de recursos pode ser motorizado, controlado e reportado, oferecendo transparência tanto para o fornecedor como para o consumidor do serviço utilizado. 2 de 39 Na cloud privada a infra-estrutura de cloud é aprovisionada para o uso exclusivo de uma única organização, sendo a propriedade, gestão e operação das infra-estruturas subjacentes da responsabilidade da organização, de uma entidade externa, ou uma junção de ambos, e pode ser implementada no centro de dados da organização (on-premise), ou no centro de dados do fornecedor de serviços (off-premise). As principais razões para optar pela cloud privada ao invés da pública resumem-se, essencialmente, na maior privacidade/segurança que a cloud privada oferece, visto que o modelo de segurança é adaptado às necessidades específicas de cada cliente. O controlo total sobre o ambiente também constitui uma razão, visto que o cliente controla todas aplicações que devem ser executadas no ambiente em questão. Há também a possibilidade de configurar a rede do modo que lhe seja mais benéfico, podendo até criar sub-redes, escolher a gama de endereços IP e configurar a tabela de routing. Para as organizações que possuem um centro de dados próprio nas suas instalações, há que ter em conta a sua taxa de crescimento e necessidade de evolução. Isto porque o limite computacional fica definido pela capacidade da infra-estrutura da organização, já os grandes fornecedores de serviços baseados em cloud computing têm bastante poder computacional para disponibilizar. Têm também centros de dados em diferentes regiões, logo alta disponibilidade. Para uma organização comum é menos provável que possua estas características, logo existe menos redundância. Embora possuir um centro de dados nas imediações da organização tenha como vantagem um menor atraso na rede, existem algumas desvantagens em comparação a adquirir este serviço a terceiros. Destaca-se o investimento em activos 6 , que é necessário em todas as organizações (investimentos de substituição, expansão, modernização, inovação, sociais, ambientais e estratégicos). Uma cloud híbrida, também conhecida como cloud privada virtual, combina as nuvens públicas e privadas. No fundo é o melhor das duas abordagens, mas as questões de integração ganham ainda mais importância. A abordagem híbrida permite a uma empresa tirar a vantagem da escalabilidade e da relação custo-eficácia que um ambiente de computação em cloud pública oferece, sem expor dados e aplicações de carácter crítico a vulnerabilidades de terceiros. O utilizador é o dono de uma parte da infra-estrutura enquanto a outra parte é partilhada de uma maneira controlada. No fundo, os sistemas críticos ou informação confidencial permanecem na cloud privada, enquanto sistemas mais comuns podem residir na cloud pública. Este tipo de cloud é muito utilizado, principalmente quando são efectuadas cópias de segurança. Uma das vantagens da utilização deste tipo de cloud é a possibilidade de migração gradual de dados para a cloud pública, que minimiza o custo caso a migração seja mal sucedida. Utilizar este tipo de cloud também irá permitir avaliar melhor o desempenho da tecnologia em cloud e, como consequência disto, a confiança do cliente é ganha ao longo do tempo. O uso do modelo cloud computing tem alguns prós e contras. Segue-se uma breve análise dos mesmos. É com alguma frequência que se refere como principal vantagem o facto de não existirem despesas de hardware antecipadas quando se opta por um fornecedor de serviços de cloud, ao invés do centro de dados tradicional. Neste ultimo é necessário investir no espaço físico, cablagem, energia, refrigeração, conectividade, racks, servidores, 6 Em contabilidade, o activo fixo ou activo imobilizado de uma empresa é formado pelo conjunto de bens e direitos necessários à manutenção das suas actividades, sendo caracterizado por apresentar-se na forma tangível (edifícios, máquinas, etc.). São, portanto, bens que a empresa não tem intenção de vender a curto prazo ou que dificilmente podem ser convertidos imediatamente em dinheiro. Têm, pois, um carácter de permanência, sendo chamados bens patrimoniais. 3 de 39 armazenamento, recursos humanos, certificação e segurança. Tal vantagem é ideal para startups, para que possam competir com grandes empresas. É também útil para empresas que queiram testar uma nova ideia e necessitem de mais poder computacional do que aquele que dispõem. Deste modo podem experienciar e obter resultados antes de investirem em hardware, que poderia ficar inutilizado caso os testes não fossem bem-sucedidos ou surgisse algum problema que impedisse a evolução da tecnologia que está a ser testada. No entanto, apesar de todos os benefícios mencionados acima, existe um grande investimento ao efectuar a migração de dados para a cloud. Este investimento inclui os gastos associados, por exemplo, à selecção de dados a enviar, ao facto de os serviços continuarem funcionais aquando da migração (se necessário) e ao planeamento para o caso da migração correr mal. Após a migração existem despesas particulares que podem aumentar. Considerese a migração de um serviço de email para a cloud. Segundo o analista da Forrester 7 , Cristopher Voce, para cada grupo de 100 utilizadores bastante activos no Outlook instalado localmente, são necessários 37 KB/s. Já o mesmo grupo de utilizadores ligados ao servidor de email alojado na cloud, requer mais de o dobro, mais concretamente 85 KB/s. Além deste investimento, caso algum software ou base de dados usados pelo cliente não seja adaptável à tecnologia que é disponibilizada em cloud, a despesa aumenta bastante. Em alguns casos este custo de integração é de tal forma elevado que as vantagens não são imediatas. Quer isto dizer que a mudança para a cloud pode constituir um bom investimento, mas a longo prazo na maior parte dos casos. Gráfico 2: Relação entre o investimento e retorno de duas soluções durante os 3 primeiros anos. O gráfico acima, à esquerda, é relativo a um centro de dados tradicional. O da direita é relativo a uma solução em cloud. Note-se que em ambas as soluções é necessário um investimento inicial superior ao valor de retorno no primeiro ano (maior no centro dados tradicional). No gráfico à esquerda o retorno começa a ser superior ao investimento aproximadamente um ano e meio após o investimento. No caso da cloud esta situação só se dá aproximadamente dois anos após a migração ou início de actividade. Conclui-se portanto que apesar de na solução em cloud ser necessário um investimento inicial menor, em comparação ao custo de uma infra-estrutura na sua totalidade, o retorno demora mais tempo a ser superior ao investimento. Por outro lado, o custo aumenta conforme a necessidade e, após recuperar o investimento, o lucro acompanha esse crescimento. Concluindo, é um bom investimento a longo prazo, como referido anteriormente. 7 Forrester Research é uma empresa de pesquisa de mercado que fornece orientações sobre o impacto actual e potencial da tecnologia. 4 de 39 Tendo ainda em conta a posição do cliente e do seu investimento ao optar por um serviço em cloud, não se pode esquecer o vendor lock-in. A possibilidade de ficar “preso” a um fornecedor é deveras insustentável. Pode ocorrer, por exemplo, quando os dados são alterados para terem compatibilidade com o sistema do fornecedor original. Deste modo, em muitos casos, é bastante dispendioso trocar de fornecedor ou desistir de um serviço em cloud e recuperar os dados com o formato que tinham antes de ocorrer a migração. Em consequência disto, mesmo quando o cliente está decidido a mudar de fornecedor e caso haja incompatibilidade entre fornecedores, o cliente tem de recolher todos os dados da cloud do fornecedor inicial para o seu armazenamento pessoal e só depois transferi-los para o novo fornecedor. Como já foi referido, isto tem alguns problemas caso os dados do cliente sejam alterados por motivos de compatibilidade. Um dos modos de evitar o vendor lock-in é ler com atenção as políticas de cada fornecedor e, se necessário, perguntar directamente como facilita a movimentação dos dados do cliente para fora do seu repositório de armazenamento em cloud e que ferramentas têm para tornar isso possível. Outra vantagem reside na opção de pagar apenas o que se usa. Desta forma não se corre o risco de ter falta de poder computacional, ou ao invés disso, ter máquinas sobredimensionadas, existindo desperdício neste ultimo caso. Gráfico 3: Custo ao usar cloud computing VS hardware tradicional. Um outro ponto forte consiste na elasticidade e escalabilidade, a vantagem resume-se essencialmente na possibilidade de aumentar/diminuir dinamicamente os recursos associados a cada cliente. Isto elimina a necessidade de realizar capacity plannings 8 que, novamente, podem resultar em máquinas sobredimensionadas. A disponibilidade em pouco tempo também constitui, sem dúvida, uma vantagem. Um exemplo disto foi o caso do reddit9. A execução no AWS10 permitiu que o mesmo aumentasse a 8 Estimar o espaço, hardware, software e recursos de infra-estrutura de conexão que serão necessários durante algum período de tempo no futuro. 9 Site do tipo de publicações sociais no qual os utilizadores podem divulgar ligações para conteúdo na Web. Outros utilizadores podem então votar positivamente ou negativamente nas ligações divulgadas, fazendo com que apareçam de uma forma mais ou menos destacada na página inicial do Reddit. 5 de 39 sua escala da plataforma para oferecer suporte a 4 biliões de visualizações de páginas por mês. Além disso possibilitou a duplicação rápida da capacidade de servidores em alguns minutos para a sessão de perguntas e respostas ao vivo do presidente Obama, em 2012. Figura 1: Post do presidente Obama no site do reddit. Tal como referido anteriormente, esta tecnologia tem como característica o consumo em on-demand self-service, que também constitui outro ponto forte em relação aos benefícios. Normalmente o pedido de novos recursos por parte do utilizador é efectuado a partir de um web browser convencional. O facto do fornecedor da infra-estrutura deter a responsabilidade da manutenção da mesma também constitui uma vantagem. Neste caso o cliente não precisa de se preocupar com a administração do hardware físico e da infra-estrutura. No entanto, há casos onde optar pelo serviço da cloud computing pode não ser a melhor opção. Por exemplo, há empresas que seguem uma política em que não é permitido armazenar dados externamente, isto é, fora das instalações da empresa. Outro exemplo, é o caso dos sistemas críticos que não podem ser comprometidos com qualquer tipo de falhas na rede. Consideramos ainda os casos em que existem grandes quantidades de tecnologia distintas, de diferentes fornecedores e onde a migração para a cloud seria insustentável. 2. Aplicações Iremos analisar várias aplicações de IaaS, com maior foco nos principais serviços fornecidos pela AWS, por ser líder de mercado e ter maior número de soluções neste momento. É feita uma análise mais detalhada a um dos serviços mais populares da AWS, o EC2. Iremos também, posteriormente, referir o Windows Azure. 10 Amazon Web Services (AWS) é um conjunto de serviços de computação remota que juntos, constituem uma plataforma de computação em cloud. 6 de 39 2.1. Amazon Web Services No vasto leque de serviços disponibilizados pela AWS, destacamos os seguintes serviços conforme a sua categoria: 2.1.1. Computação 2.1.1.1. Amazon Elastic Compute Cloud (Amazon EC2) Consiste num serviço de alojamento na cloud que fornece uma capacidade de computação e permite a utilização de interfaces web para criar/remover instâncias com uma variedade de sistemas operativos. Caracteriza-se pela sua capacidade de computação redimensionável, visto que a capacidade de uma instância pode ser alterada em minutos. O tempo para obter e inicializar novas instâncias também é reduzido. O acesso através da API via web permite ao consumidor ajustar a capacidade conforme as suas necessidades. O controlo dos recursos computacionais também é uma característica deste serviço. O cliente pode interromper a execução das instâncias e reiniciá-las mais tarde remotamente através da API. O serviço usa imagens de disco criadas pelos utilizadores e transferidas pelos mesmos ou pré-construídas pela Amazon (AMI - Amazon Machine Image). Estas imagens servem de unidade básica de implementação para os serviços que usam o EC2. Deste modo as instâncias são máquinas virtuais a executar uma determinada imagem. As máquinas virtuais não correspondem às máquinas físicas, mas têm características bem definidas. Designam-se por Small se corresponderem a 32-bit, 1 ECU, 1,7GB RAM e 160 GB HD. Caso correspondam a 64-bit, 2x2 ECU, 7,5 GB RAM e 850 GB HD são designadas Large. Já as XL caracterizam-se por 64-bit, 4x2 ECU, 15 GB RAM e 1690 GB HD. Existem ainda muitas outras configurações, com diferentes nomenclaturas, entre as quais micro, high memory e cluster. O desempenho do CPU é medido usando o EC2 Compute Unit 11 . Seguem-se alguns exemplos de AMIs. Em relação a sistemas operativos temos, por exemplo, o RedHat Linux, Windows Server 2003, OpenSolaris, Ubuntu e Debian. Em relação a bases de dados temos o DB2, SQL Server e MySQL. Para computação de alto desempenho destacam-se o Hadoop, Condor e OpenMP. Para servidores web destacam-se o Apache e o IIS. Uma AMI pode servir para criar mais que uma instância. Diagrama 1: Ciclo de vida de uma AMI. 11 EC2 Compute Unit (unidade empírica concebida pela Amazon), que corresponde a 1.0 a 1.2 GHz AMD Opteron. 7 de 39 No acesso ao EC2 estão disponíveis alguns protocolos (web services). No caso do protocolo REST, cada recurso tem um URI específico e existem operações HTTP que correspondem a manipulações específicas desses recursos. Entre as várias operações consideremos, por exemplo, o GET, PUT, POST e o DELETE. O GET lê a descrição do recurso, o PUT muda esse recurso, o POST cria sub-recursos e o DELETE apaga qualquer tipo de recurso. No caso do protocolo SOAP, o funcionamento é à base de HTTP com XML. Neste caso o HTTP é apenas um conteúdo para uma mensagem XML que encapsula a descrição completa da operação. O EC2 possui várias interfaces para acesso aos serviços. Suporta várias linguagens, entre as quais, Java, C # e Python. Conta com ferramentas de linha de comandos e extensões de navegadores, por exemplo o ElasticFox para Mozilla Firefox. Relativamente a Web Apps, destaca-se a Amazon Management Console (AMC). Figura 2: Interface de inicialização de instâncias. O uso do EC2 exige a criação de um par de chaves assimétricas e associa-as a uma máquina virtual. O comando CreateKeyPair cria um par de chaves (uma pública e uma privada). DescribeKeyPairs lista as chaves dos utilizadores e DeleteKeyPair elimina um par de chaves. Figura 3: Interface dos comandos de gestão de chaves presente na AMC. 8 de 39 Para iniciar uma instância usa-se RunInstances. Entre os vários parâmetros relativos às instâncias, destacam-se os seguintes: ● ● ● ● ● ● ImageId: Id da AMI a iniciar; MinCount: Número mínimo de instâncias; MaxCount: Número esperado de instâncias; KeyName: Chave para aceder à instância; SecurityGroup: Lista de grupos de segurança (ACLs baseadas em endereços de rede); InstanceType: S, L, XL. Assim que as instâncias são iniciadas, o DescribeInstances descreve os seus estados, que podem ser “a correr”, “a desligar”, “pendente” ou “desligado”. Podem também ser observados o índice, na lista de instâncias, e o nome DNS público e privado (dentro da AWS). Existem muitas mais funcionalidades acessíveis a partir da AMC. A imagem abaixo ilustra a gestão de instâncias a partir desta consola de gestão. Figura 4: Gestão de instâncias. Cada instância contém um par <Endereço IP, Nome DNS> público e privado. Os endereços IP são dinâmicos e requerem o uso de um serviço DNS dinâmico. Por vezes os atrasos na actualização de nomes de DNS confundem-se com falhas na rede. Em alternativa, pode-se adicionar um servidor de front-end com um endereço fixo fora da AWS. Relativamente aos grupos de segurança, também observáveis na figura acima, consistem em grupos de regras de rede para controlar o acesso a instâncias de EC2. Apenas limitam o tráfego que entra, o tráfego que vai para fora da AWS não tem limites. Existem dois tipos de regras, regras de IP e regras de grupo. As regras de IP limitam o tráfego com base no protocolo, IP de destino e IP de origem. As regras de grupo limitam o acesso a outras instâncias do EC2, dependendo do porto, do protocolo e da segurança de grupo. Um grupo de segurança é apenas uma etiqueta que pode ser adicionada/removida de cada instância. Deste 9 de 39 modo uma instância pode fazer parte de vários grupos de segurança. Em cada grupo de segurança existem no máximo 100 regras. As operações dos grupos de segurança são várias, entre as quais: ● ● ● ● ● CreateSecurityGroup: Cria um grupo de segurança; DeleteSecurityGroup: Apaga um grupo de segurança; DescribeSecurityGroup: Descreve um ou mais grupos de segurança de um determinado cliente; AuthorizeSecurityGroupIngress: Adiciona uma ou mais regras de acesso a um grupo de segurança. Para tal, considerem-se os seguintes parâmetros: ○ GroupName: Nome do grupo de segurança; ○ IpProtocol: tcp, udp, icmp; ○ FromPort: Primeiro porto do intervalo de portos permitidos; ○ ToPort: Ultimo porto do intervalo de portos permitidos; ○ CidrIP: Máscara de rede do endereço IP de origem; RevokeSecurityGroupIngress: Remove uma ou mais regras de acesso a um grupo de segurança. Os valores especificados neste tipo de pedido, por exemplo portos, devem coincidir com os valores existentes na regra a ser removida. Os parâmetros são semelhantes aos do comando AuthorizeSecurityGroupIngress. Figura 5: Comando AuthorizeSecurityGroupIngress. A imagem acima demonstra como é concedido o acesso através do porto 80 ao intervalo de endereços IP desde 192.0.2.0/24 a 198.51.100.0/24. Quanto ao pagamento, segue o modelo pay-per-use, não havendo taxa mínima. A definição de preço é por hora, isto é, pelo tempo que cada tipo de instância está activa. As horas parciais são cobradas como horas completas. Mesmo que o EC2 esteja associado a outros serviços AWS, o pagamento é efectuado em separado. Por fim, mas não menos importante, fica a análise da comparação do EC2 com o “Abe” da NCSA 12 . Note-se, previamente, que há distinções entre HPC e cloud computing. Tipicamente, o HPC concentra-se em executar uma única aplicação com alto desempenho, em semelhança ao grid computing13. As aplicações HPC podem ser executadas em grid ou utilizar uma cloud, pelo que devem seguir as premissas temporais destes modelos. O desenvolvimento de aplicações HPC faz uso de um modelo de programação de baixo nível, enquanto o 12 National Center for Supercomputing Applications (NCSA) é um organismo dos Estados Unidos da América relacionado com a investigação no campo da informática e telecomunicações. 13 É um modelo computacional capaz de alcançar uma alta taxa de processamento ao dividir as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma máquina virtual. Esses processos podem ser executados no momento em que as máquinas não estão a ser utilizadas pelo utilizador, evitando assim o desperdício de processamento da máquina utilizada. 10 de 39 desenvolvimento de aplicações em cloud ocorre através da utilização de plataformas com linguagens e ambientes de alto nível (PaaS), focando-se a implementação dos serviços, que serão executados continuamente, no centro de dados. Ian Foster14 publicou no seu blog um pequeno estudo que compara a execução de uma aplicação num supercomputador e na cloud. Para os testes, o supercomputador escolhido foi o sistema “Abe” do National Center for Supercomputing Applications e o serviço cloud escolhido foi o Amazon EC2. Os resultados mostraram que a execução da aplicação no supercomputador foi extremamente mais rápida. Entretanto, a análise feita por Ian Foster considera o facto de que, na maioria das vezes, a obtenção de recursos computacionais num supercomputador não ocorre de maneira imediata. Neste sentido, executar uma determinada aplicação em cloud pode trazer vantagens quando consideramos o tempo total (momento da submissão até o momento da obtenção dos resultados) para concluir a tarefa. Gráfico 4: EC2 VS Abe. O teste mostrou que a aplicação executada num supercomputador com 32 processadores demorou 25 segundos a executar. A mesma aplicação precisou de 100 segundos na Amazon EC2. O tempo necessário para se obter 32 nós (imagens de máquinas virtuais) no centro de dados da Amazon foi de 300 segundos. Sendo assim, o tempo total para concluir a tarefa na Amazon EC2 foi de 100 + 300 = 400 segundos. Por outro lado, a probabilidade de se obter, em 400 segundos, 32 processadores utilizáveis por 20 segundos no supercomputador mencionado é de 34%, uma taxa relativamente baixa. Neste sentido, as aplicações HPC precisam de considerar a possibilidade de utilizarem cloud computing, ao invés de apostarem unicamente em supercomputadores. Além de obterem um bom tempo de resposta, na maioria das vezes, o custo é reduzido. 14 Ian T. Foster é um cientista informático Americano e director da Computation Institute em Chicago, Illinois. É também um Distinguished Fellowand Senior Scientist da divisão de Ciência da Computação e Matemática em Argonne National Laboratory e um professor do Departamento de Ciência da Computação na Universidade de Chicago. 11 de 39 2.1.2. Amazon WorkSpaces O WorkSpaces é um serviço de computação de desktop totalmente gerido na cloud. Uma das grandes ambições da AWS face a este serviço de computação baseia-se em tornar o acto de comprar uma máquina desktop uma “moda” do passado. Dito isto, a AWS promete fornecer com este serviço desktops com base na cloud para possibilitar que utilizadores finais acedam aos documentos, aplicações e recursos necessários com praticamente qualquer dispositivo. Este serviço foi anunciado dia 13 de Novembro de 2013 na AWS re: Invent 15 , prometendo fornecer aos clientes uma experiência de desktop (com Windows 7) de alta qualidade e com custos reduzidos face à aquisição de um desktop tradicional e face à maioria das soluções de VDIs16. Um desktop de nível mais baixo está disponível a partir de 25,97€ por mês. Os custos não são estáticos, isto é, para uma configuração de 1000 utilizadores a Amazon afirmou cerca de 59% de redução de custos. Os desktops são disponibilizados aos clientes através de uma aplicação, disponível para a maioria das principais plataformas: Mac OS X, iOS, Android e Windows (ironicamente). Estão disponíveis quatro configurações de máquinas virtuais, que vão desde um único CPU virtual com 3.75GB de memória e 50GB de armazenamento persistente até um dual-vCPU, com 7,5 GB e 100GB de armazenamento. Quando os utilizadores usam o WorkSpaces, os dados da sua organização não são enviados nem armazenados nos seus dispositivos. O protocolo PCoIP 17 usado pelos WorkSpaces usa um stream de vídeo interactivo para fornecer a experiência de desktop ao utilizador, mas os dados permanecem na cloud da AWS ou no seu ambiente online. Existe a possibilidade de integração do WorkSpaces com o AD 18, neste caso todos os WorkSpaces ingressam num único domínio e podem ser geridos como qualquer outro desktop da organização. Isto significa que podem ser usadas políticas de grupo nos desktops de todos os utilizadores da organização especificando, por exemplo, as opções de configuração. Este serviço possibilita a escolha de vários pacotes de software. Pode ser usado por exemplo com o Standard Plus, que inclui o Microsoft Office e o Trend Micro Antivírus, ou pode ser usado simplesmente na versão Standard, existindo sempre a possibilidade de adicionar licenças de software mais antigas. Qualquer que seja a opção escolhida, o cliente pode adicionar o seu próprio software sempre que quiser. Note-se que as licenças de software de Windows, previamente existentes, também podem ser movidas para o WorkSpaces, a custo de uma taxa. As ofertas de cloud da Amazon competem tipicamente com serviços semelhantes, por exemplo do Google, Rackspace, IBM, etc. Por outro lado o WorkSpaces põe a Amazon numa posição em que compete com todos os fornecedores de VDI. A Citrix e VMware são dois dos principais nomes, mas a Microsoft também tem uma presença em VDI. 15 O maior encontro de developers e líderes técnicos da comunidade AWS. Virtual Desktop Infrastructure (VDI) consiste em executar diversos sistemas operativos num único equipamento físico. 17 PC-over-IP (PCoIP) é um protocolo de exibição remota desenvolvido pela Teradici. Este protocolo comprime, cifra e codifica a experiência de computação de desktop dos utilizadores e transmite apenas os pixéis em qualquer rede IP. 18 Active Directory (AD) é um serviço de directório implementado pela Microsoft para redes de domínio do Windows. 16 12 de 39 Figura 6: Apresentação das quatro configurações de máquinas virtuais disponíveis. 2.1.2. Implementação e Gestão 2.1.2.1. Amazon CloudWatch O conceito básico do Amazon CloudWatch é a monitorização de recursos e aplicações que estejam em cloud na AWS. No fundo, consiste na recuperação de dados de monitorização, visualização de gráficos e configuração de alarmes para métricas19 definidas pelo utilizador. O alarme permite, por exemplo, executar uma determinada acção de forma automática quando dispara, de acordo com o estado do ambiente naquele momento. Podem ser monitorizados vários serviços da AWS, entre os quais o EC2 que foi descrito anteriormente. Para instâncias deste tipo, a monotorização básica do CloudWatch recolhe e regista métricas de actividades de utilização de CPU, transferência de dados e uso de disco de cada instância com uma frequência de cinco minutos. A monotorização detalhada mostra as mesmas métricas em intervalos de um minuto e também habilita a agregação de dados pelo ID de AMI e pelo tipo de instância. Além das métricas pré-definidas, este serviço suporta a monotorização de métricas geradas pelas aplicações que o cliente executa utilizando recursos da AWS. Através de uma simples chamada PUT via API, consegue-se enviar e armazenar qualquer métrica personalizada de acordo com as necessidades do cliente. Todas as funcionalidades do CloudWatch estão disponíveis a uma frequência de até um minuto, podendo ser usadas para métricas personalizadas, incluindo estatísticas, gráficos e alarmes. 19 Utilização de CPU, latência, contagem de pedidos, etc... 13 de 39 Figura 7: Interface de monitorização. 2.1.3. Redes 2.1.3.1. Amazon Virtual Private Cloud (VPC) A Amazon VPC permite aprovisionar uma secção privada da cloud da AWS, numa rede virtual definida pelo próprio utilizador, de modo a poder executar recursos da AWS a partir da cloud. O utilizador tem um controlo total, uma vez que pode seleccionar a gama de endereços IP, criar sub-redes e configurar tabelas de routing e gateways de rede. A configuração deste serviço é muito simples, permitindo ao utilizador aproveitar várias camadas de segurança como auxilio para controlar o acesso às instâncias do Amazon EC2 em cada sub-rede. Figura 8: Gestão de IPs na VPC. 14 de 39 Além do acima descrito, é também possível que a partir do centro de dados do cliente se aceda à VPC a partir de VPN20, de modo a poder usufruir da cloud da AWS como uma extensão do centro de dados. Diagrama 2: Configuração típica de software VPN na VPC. Pode observar-se, no diagrama acima, a ligação da VPC com o centro de dados do cliente através de VPN, bem como as várias sub-redes definidas pelo cliente na VPC. O cliente pode ter instâncias EC2 nas várias sub-redes, neste caso apenas tem na sub-rede número 2. 2.1.3.2. Amazon Route 53 O Amazon Route 53 é um serviço web de DNS21 altamente disponível e escalável. Este serviço permite a criação de registos DNS para um dado domínio e a conversão de nomes, não só para endereços de instâncias AWS como também para infra-estruturas fora da AWS. O modo de pagamento deste serviço consiste em cobrar apenas de acordo com o número de consultas DNS respondidas pelo serviço. É possível transferir o domínio de outro serviço de DNS do cliente para o Route 53. Figura 9: Gestão de um conjunto de registos. 20 Virtual Private Network (VPN) é uma rede de comunicações privada normalmente utilizada por uma empresa ou um conjunto de empresas e/ou instituições, construída em cima de uma rede de comunicações pública. 21 Domain Name System (DNS) é um sistema de gestão de nomes hierárquico e distribuído que visa resolver nomes de domínios em IP. 15 de 39 A release DNS Failover permite que o Route 53 detecte se o site está em baixo e caso esteja, redirecciona os pedidos do site em questão para um site alternativo, que o utilizador tenha na sua posse. Pode ser usado em conjunto com outros serviços, por exemplo, alojando o site de backup no Amazon S3. 2.1.4. Distribuição de Conteúdos 2.1.4.1. Amazon CloudFront O Amazon CloudFront é um serviço de entrega de conteúdo na web, incluindo conteúdos dinâmicos, estáticos e em stream, utilizando uma rede internacional de pontos de presença. As solicitações dos conteúdos são redireccionadas automaticamente para o ponto mais próximo de modo a que o conteúdo seja distribuído com o melhor desempenho possível. Este serviço está optimizado para trabalhar com outros serviços da Amazon, no entanto também funciona com qualquer servidor de origem que não seja da AWS. Figura 10: Criação de uma nova distribuição. De modo a permitir o uso do CloudFront para aumentar a velocidade da distribuição de dados dinâmicos, foram feitas algumas melhorias em relação ao serviço inicial, tais como: ● ● Conexões TCP Persistentes: Estabelecer uma conexão TCP ainda demora um tempo considerável, devido ao three-way-hanshake entre o servidor e o cliente. A Amazon CloudFront utiliza conexões persistentes em cada conteúdo dinâmico. Com esta reutilização de conexões poupa-se imenso tempo na conexão. Suporte a Múltiplas Origens: É possível referir múltiplas fontes de conteúdo para uma única distribuição CloudFront. Ou seja, é possível servir conteúdo do S3, conteúdo dinâmico do EC2 e outros conteúdos de sites de terceiros com um único nome de domínio. Este modo facilita a implementação das aplicações e permite o uso de mais URLs. 16 de 39 ● ● ● Suporte a Query Strings: O CloudFront agora usa a query string22 como parte da chave da cache. Este recurso permite realizar uma cache do conteúdo no ponto edge mais próximo do utilizador. Time-To-Live (TTL) Variável: O TTL pode ser ajustado conforme a necessidade de cada tipo de conteúdo. Janela TCP Maior: A janela TCP foi aumentada para 10 com o intuito de permitir o tráfego de mais dados num determinado período de tempo. 2.1.5. Armazenamento 2.1.5.1. Amazon Simple Storage Service (Amazon S3) O Amazon S3 é um serviço de armazenamento na cloud. Este serviço permite fazer backup de dados, suportando qualquer quantidade de dados e ficheiros até 5TB. Suporta também um mecanismo de replicação agendada. Além do backup tradicional de dados, um dos principais usos deste serviço é o armazenamento de conteúdos de sites estáticos. Este serviço é usado pela própria Amazon para executar a sua rede global de sites na web. Segue-se em baixo uma imagem que mostra como o utilizador gere os seus ficheiros. Figura 11: Gestão de ficheiros. De um modo muito genérico, as várias etapas para fazer uso do S3 consistem em criar um bucket (onde são armazenados os dados), fazer upload dos ficheiros para um bucket e, se necessário, implementar políticas de controlo de acesso. É ainda possível escolher em que região da AWS fica alojado o bucket, por exemplo para diminuir a latência. Cenários de backup e de Disaster Recovery23 são óptimos para destacar as vantagens da cloud em relação às soluções tradicionais: se for necessário fazer um backup e um DR para a empresa, consegue evitar-se o fardo dispendioso da dependência de suportes físicos e da gestão dos mesmos se estivermos a usar um armazenamento baseado em cloud. Os dados gravados (armazenados fisicamente como backup) normalmente vão para um cofre e mantém-se inúteis até que ocorra um desastre e tenham que voltar a ser transportados para a empresa. Este processo costuma ter um custo muito alto. Ao usar a cloud, mais concretamente serviços de armazenamento como o S3, não é necessário investir nos suportes físicos, que requerem um custo acrescentado. 22 Parte de um URL que contém dados a serem passados para aplicações web. Disaster Recovery (DR) é composto por cenários e procedimentos, que deverão ser aplicados sempre que ocorrer uma falha devido a alguma inconsistência provocada em virtude de ameaças como incêndios, inundações, vandalismo, sabotagem ou falhas de tecnologia. 23 17 de 39 2.1.5.2. Amazon Glacier O Amazon Glacier consiste num serviço que permite ao utilizador guardar e fazer backup de grandes ou pequenas quantidades de dados a preços extremamente baixos, ou seja, por apenas 0,01€ por GB, por mês. Estes custos são possíveis, uma vez que o Amazon Glacier está optimizado para guardar dados que são raramente acedidos e para os quais os tempos de recuperação de várias horas são adequados. Este serviço pode ser integrado com o serviço Amazon S3. Com este serviço é possível criar, editar e excluir cofres, visualizar detalhes de cofres, como o horário e a data da última actualização de inventário, e configurar políticas de notificação. Abaixo segue uma imagem que mostra os detalhes de um cofre. Figura 12: Gestão de cofres. Para clientes que tenham necessidades de segurança mais delicadas, este serviço permite a transferência segura de dados através de SSL24. Os dados armazenados são ainda cifrados com AES (256 bits). 2.1.5.3. Amazon Storage Gateway A Amazon Storage Gateway permite a migração contínua de dados entre aplicações locais e o armazenamento em cloud na AWS. Para os dados que são acedidos com mais frequência, o armazenamento é feito na cache do gateway de modo a que haja menos latência no seu acesso, enquanto que para os restantes dados, o armazenamento é feito no serviço S3. 24 Secure Sockets Layer (SSL) é um protocolo criptográfico que confere segurança na comunicação na Internet para serviços como correio electrónico (SMTP), navegação por páginas (HTTPS) e outros tipos de transferência de dados. 18 de 39 Figura 13: Criação de um volume de armazenamento. A Amazon Storage Gateway oferece suporte a três configurações: ● ● ● Volumes armazenados em cache no gateway: Armazenar os dados principais do utilizador no Amazon S3 de forma durável e reter localmente os dados acedidos frequentemente; Volumes armazenados no gateway: Armazenar os dados principais localmente e efectuar backup, de forma assíncrona, de snapshots pontuais desses dados para o Amazon S3, de modo a poder efectuar um acesso de baixa latência. Gateway-Virtual Tape Library (Gateway-VTL): Com o Gateway-VTL, pode terse uma colecção ilimitada de fitas virtuais. Cada fita virtual pode ser armazenada numa biblioteca de fitas virtuais suportada pelo Amazon S3 ou numa prateleira de fitas virtuais suportada pelo Amazon Glacier. A biblioteca de fitas virtuais expõe uma interface iSCSI 25 padrão do sector que fornece à aplicação de backup do cliente acesso online às fitas virtuais. Figura 14: Interface de configuração do Amazon Storage Gateway. 25 Internet Small Computer System Interface (iSCSI) é um protocolo de transporte que transporta comandos SCSI (tecnologia que permite ao utilizador conectar uma larga gama de periféricos, tais como discos rígidos, unidades CD-ROM, impressoras e scanners) entre um computador cliente e um dispositivo de destino. 19 de 39 2.2. Windows Azure O Windows Azure é uma plataforma flexível em cloud que permite criar, implementar e gerir aplicações rapidamente numa rede global de centros de dados gerida pela Microsoft. O utilizador pode criar aplicações usando qualquer linguagem, ferramenta ou estrutura. A gestão de aplicações é transparente uma vez que só é necessário fornecer o código e o modelo do serviço. As principais características desta aplicação são a sua performance, alta disponibilidade, escalabilidade e o facto de esconder a administração do sistema, ou seja, gere o serviço e os dados e não os servidores e as bases de dados. Diagrama 3: Funcionamento básico do Windows Azure. Na figura acima podemos ver que os recursos da plataforma Windows Azure estão disponíveis para diferentes ambientes de desenvolvimento, tais como Visual Studio, PHP, entre outras. Em relação ao funcionamento básico tenha-se em conta a existência de vários nodes para a execução das tarefas. Cada node executa o Windows Server HPC. Este último não é mais que o Windows Server com um gestor de clusters, um scheduler, um monitor do cluster, um mecanismo de replicação e o MPI (Message Passing Interface). O gestor organiza os nodes em nodes principais e em nodes de computação. Também executa actualizações de software. Já o scheduler é responsável por iniciar as tarefas nos nodes computacionais. O monitor de cluster reúne informações sobre o estado do cluster. O mecanismo de replicação é aplicado nos nodes principais, que estão configurados para serem o ponto de partida para tarefas em execução no cluster. O MPI é uma interface de comunicação para programação concorrente. A virtualização associada aos serviços fornecidos pelo Azure é garantida pelo Hyper-V, que é o Hypervisor26 da Microsoft, baseado no Xen27. O Windows Azure usa o Azure Fabric Controller (FC) que gere todo o hardware, monitoriza o sistema e o hardware inactivo, distribui os serviços entre os processadores disponíveis, adapta-se às necessidades do hardware, começa e mantém em execução as instâncias da aplicação, uma vez que reage a falhas. O FC também mantém uma máquina de estados para conduzir cada node do estado actual para o estado objectivo. Em caso de falha, as aplicações são reiniciadas nos outros nodes. O FC tem entre 5 a 7 nodes de cluster, onde o estado é replicado de forma passiva, um novo líder é eleito em caso de falha e as aplicações não falham caso o FC falhe. 26 É uma plataforma que permite aplicar diversas técnicas de controlo de virtualização para utilizar, ao mesmo tempo, diferentes sistemas operativos no mesmo computador. 27 É um software de virtualização para as arquitecturas x86, x86-64, IA-32, IA-64 e PowerPC. 20 de 39 Diagrama 4: Sistema de replicação de nodes do Azure Fabric Controller. 3. Segurança O vendor lock-in e a segurança são as duas principais barreiras na decisão de optar pela cloud. Quanto a esta última, o cliente tende a questionar-se muitas vezes sobre a localização dos seus dados, se existem dados de concorrentes no servidor em uso, quem acede aos dados, entre outros relacionados. Isto tudo causa um medo de investir por parte do utilizador, no entanto é da responsabilidade do mesmo seleccionar um fornecedor com controlo técnico que previna o acesso e a interrupção dos seus dados e serviços. Além disto deve também desenvolver e implementar procedimentos de avaliação, que validem a forma de operar do fornecedor e os limites técnicos que foram acordados, como também detectar potenciais interrupções de serviço ou acesso não autorizado. Quando se está a escolher um fornecedor deve-se ter em conta o tipo de contrato que este oferece, uma vez que o objectivo é limitar o acesso do fornecedor aos serviços, assim como a sua influência na disponibilidade do serviço. Há que ter em conta o controlo técnico que consiste na autenticação, controlo de acesso lógico, antivírus e firewall e as políticas de controlo que geralmente são mais difíceis de interpretar e quase impossíveis de comparar entre fornecedores. Para os fornecedores com pouco controlo técnico e que sejam mais dependentes de políticas de controlo, é importante para o cliente ter em conta a abordagem de monitorização do fornecedor em questão. Até porque as políticas de controlo geram o problema do vendor lock-in que foi referido anteriormente. Em geral, os ambientes cloud são caracterizados por responsabilidade partilhada, onde o cliente nunca está totalmente absolvido de responsabilidade. O seu nível de responsabilidade é que pode variar conforme o modelo do serviço. Mais concretamente em IaaS, o cliente tem como responsabilidade: ● ● ● ● O controlo do acesso à rede; A permissão/negação do acesso ao servidor e à camada de serviço; A concepção, implementação, manutenção e inspecção do controlo de acesso dentro da aplicação; A monitorização contínua de acesso, segurança e disponibilidade. 21 de 39 Diagrama 5: Nível de controlo/responsabilidade para o cliente e para o vendedor. No entanto, uma das áreas mais negligenciadas pelos clientes é a segurança da API. Estes devem assegurar que a comunicação com a aplicação é feita de forma segura e que a configuração não é exposta para não comprometer a segurança. Esta negligência pode incrementar custos elevados ao cliente, porque normalmente todos os acessos às instâncias são feitas através da API. Se esta for comprometida, o intruso tem acesso a toda a infraestrutura da vítima. Dados mais críticos requerem segurança reforçada, onde normalmente envolve cifrar a instância do cliente. Há que também ter em conta que confiar apenas na cifra da base de dados é bastante perigoso, uma vez que qualquer aplicação web mal-intencionada que consiga fazer uma consulta na base de dados irá acabar com qualquer tentativa de cifra. Dito isto, apesar de ser mais dispendioso, deve-se investir na implementação de uma cifra e decifra na camada de aplicação de modo a evitar o acima referido. Em alternativa, pode-se usar serviços de segurança específicos concebidos para ambientes em cloud. 4. Open source Em comparação a todos os serviços proprietários vistos até agora, existe também a vertente open source que pode ser mais facilmente adaptável a todo o tipo de necessidades. Em caso de alguma anomalia, as falhas são discutidas/resolvidas rapidamente, uma vez que existe uma grande comunidade a trabalhar sobre a mesma base, que por consequência também resulta em actualizações ao sistema mais rápidas. Outra das vantagens é o facto de haver uma maior compatibilidade entre fornecedores e ser uma tecnologia que é desenvolvida por vários peritos da área. É altamente personalizável com contribuições de uma ampla gama de developers, no entanto, a natureza em constante evolução da tecnologia open source pode tornar-se um desafio para um fornecedor de cloud que não tenha o conhecimento necessário para gerir a tecnologia complexa. 22 de 39 A Rackspace, em conjunto com a NASA, criou a OpenStack que serve como base para muitos fornecedores de cloud open source. Actualmente a NASA já está fora do projecto, no entanto passou para a posição de consumidor, usando serviços baseados na OpenStack. Figura 15: Principais contribuidores da OpenStack. O projecto OpenStack, maioritariamente baseado em IaaS, é dividido em módulos. Estes módulos são relativos ao tipo de serviço disponibilizado. Os módulos são os seguintes: ● ● ● ● ● ● ● Object Store ("Swift"): Permite armazenar e recuperar grandes quantidades de dados. Image ("Glance"): Um catálogo e repositório de imagens de disco virtuais, com o fim de serem usadas no módulo Compute. Compute ("Nova"): Um serviço de gestão de servidores virtuais on-demand. Existem vários sistemas comerciais construídos com a Nova, além de ser utilizado por grandes companhias, como a Nasa. Dashboard ("Horizon"): Interface gráfica via web para todos os serviços OpenStack. Com esta GUI é possível realizar a maior parte das operações na cloud, como por exemplo iniciar instâncias, gerir IPs e configurar o controlo de acesso. Identity ("Keystone"): Fornece autenticação e autorização para todos os serviços OpenStack. Também disponibiliza um catálogo dos serviços presentes na cloud OpenStack. Network ("Quantum"): Fornece uma conexão de rede entre as várias interfaces de dispositivos criados por um serviço OpenStack, geralmente entre VMs do módulo Nova. Permite a criação de redes com várias topologias. Block Storage ("Cinder"): Fornece blocos de armazenamento para máquinas virtuais. Uma grande vantagem para os fornecedores que usam open source é, dado que a base IaaS em open source já está implementada, o facto de estes só precisarem de se focar em 23 de 39 novas funcionalidades e melhorias de modo a poderem diferenciar as suas ofertas dos outros fornecedores. Apesar de tudo, existem também considerações a ser tomadas pelo utilizador, uma vez que a assistência em open source pode ser mais problemática em comparação aos serviços de cloud proprietários. Em contrapartida, o vendor lock-in é possivelmente menor sendo as políticas de migração de dados benéficas para o utilizador, desde que a mudança seja entre fornecedores que usem a mesma base open source. Considere-se ainda o exemplo da Eucalyptus, que permite criar serviços que sejam compatíveis com a AWS. Isto é benéfico para ambos os fornecedores, na medida em que um serviço baseado em open source tem mais aderência devido à sua compatibilidade com um líder de mercado. 5. Casos de Estudo 5.1. IMDb Sobre a IMDb A Internet Movie Database (IMDb) é uma das fontes oficiais mais populares do mundo sobre filmes, TV e celebridades com mais de 100 milhões de visitantes únicos por mês. Diagrama 6: Timeline da IMDb. Porquê a Amazon Web Services? A IMDb usa a Amazon CloudFront para alojar dados para a sua funcionalidade de pesquisa, mais concretamente, encontrar o filme ou a pessoa que um dado utilizador esteja a procurar com apenas algumas teclas premidas. No espaço móvel, cada milésimo de segundo é precioso. Os clientes móveis, particularmente, adoram ir directamente para o filme que querem sem precisar de escrever uma consulta completa. A Amazon CloudFront torna esta experiência mais rápida, distribuindo o conteúdo fisicamente perto da base de utilizadores mundial da IMDb. A velocidade da luz torna-se uma vantagem competitiva, não há serviço de dados mais rápido do que uma cache estática geograficamente próxima. 24 de 39 Para obter a menor latência possível, todos os resultados possíveis são pré-calculados para um documento com cada combinação de letras na pesquisa. Cada documento é empurrado para o Amazon S3 e posteriormente para a Amazon CloudFront, colocando os documentos fisicamente próximos dos utilizadores. Diagrama 7: Passagem dos documentos para o Amazon CloudFront. O número teórico de possíveis pesquisas para calcular é alucinante, uma pesquisa de 20 caracteres tem 23 x 1030 combinações mas, na prática, usando os dados de cinema e celebridades da autoria da IMDb é possível reduzir o espaço de procura em cerca de 150.000 documentos, que o Amazon S3 e o Amazon CloudFront conseguem distribuir em apenas algumas horas. A IMDB cria índices em vários idiomas com actualizações diárias para conjuntos de dados de mais de 100.000 títulos de filmes, programas de TV e nomes de celebridades. Diagrama 8: Geração das várias possibilidades e associação ao documento em questão. 25 de 39 Os Benefícios Enquanto os serviços típicos de um centro de dados tradicional alcançam cerca de 100ms de latência nos EUA, uma CDN 28 pode alcançar menos de 100ms de latência internacionalmente. "Ao alojar os nossos arquivos de pesquisa e vídeo na CloudFront, ficamos sem servidores para manter, o que torna a nossa confiança elevada. A Amazon CloudFront fornece-nos uma pesquisa ultra-rápida, escalável e confiável em qualquer parte do mundo", disse Doug Treder, developer de software para a IMDb. Apenas para a aplicação da IMDb para o iPhone, num único dia em Janeiro, a IMDb tinha mais de 2.3M de pedidos, com os custos de uma ordem de grandeza menor do que a do servidor de hosting. A IMDb também usa o Amazon CloudFront para alojar os trailers mais recentes de filmes. O CloudFront ajuda a proteger o conteúdo dos vídeos da IMDb com URLs privados, além disso também é rentável a suportar milhões de visualizações por dia através dos sites e de plataformas móveis. A IMDb possui uma base de dados pesquisável com mais de 1,8 milhões de filmes, programas de TV, entretenimento e mais de 4 milhões de membros do elenco e da equipa técnica. É convenientemente acessível em qualquer lugar através de aplicações para iPhone e iPad, por exemplo, a "Movies & TV" que já foi instalada por mais de 12 milhões de utilizadores e está disponível mundialmente em nove idiomas. A plataforma móvel da IMDb também possui uma aplicação líder para Android, que está disponível em sete línguas e conta com um site para dispositivos móveis optimizado. 5.2. Instagram “O Instagram consegue levar dados para os seus sistemas de computação no serviço EC2 da Amazon 20 vezes mais rápido com unidades SSD 29 ”, disse Mike Krieger, um dos fundadores do serviço de partilha de fotografias. “Em vez de aceder aos dados nas unidades de disco rígido na rede, as instâncias do servidor do Instagram no EC2 podem usar directamente SSDs. O Instagram teve acesso experimental a unidades SSD na plataforma de computação em cloud EC2 antes de esta opção tornar-se disponível ao público em geral, uma das vantagens de ser um grande cliente”, disse Krieger. As empresas estão a começar a adoptar SSDs como uma alternativa mais rápida e mais compacta, em comparação aos discos mecânicos, embora o hardware ainda custe mais por gigabyte. Krieger diz não estimar a quantidade de dados que o Instagram mantém, mas afirma que os utilizadores enviam cerca de 5 biliões de imagens para o serviço. “O Instagram começou a usar o EC2 logo no início, a fim de lidar com o crescimento rápido, uma vez que inicialmente apenas se estava a usar um servidor alugado em Los Angeles. Outras startups perto da sede do Instagram, em São Francisco, recomendaram usar EC2 devido à flexibilidade na infra-estrutura", disse Krieger. 28 Content Delivery Network (CDN) é um termo para descrever um sistema de computadores interligados em rede através da Internet, que cooperam de modo transparente para fornecer, tipicamente, grandes conteúdos de média a utilizadores finais. 29 Solid-state drive (SSD) é um tipo de dispositivo, sem partes móveis, para armazenamento não volátil de dados digitais. 26 de 39 Diagrama 9: Timeline do Instagram. Krieger disse ainda que, apesar de a empresa ter agora mais de 100 milhões de utilizadores, ele ainda é uma de três pessoas que mantém a infra-estrutura. A empresa aprendeu cedo a não duplicar desnecessariamente o trabalho dos outros, mas em vez disso, construir sobre a infra-estrutura já existente. Para uma startup, pode significar não construir o seu próprio armazenamento, sistemas de computação, ou componentes de interface do utilizador. "Uma grande parte disto é descobrir no que é que queremos que a empresa seja boa. No caso do Instagram, era a velocidade. Descobriu-se que os utilizadores gostariam de usar a aplicação durante intervalos curtos, como por exemplo, quando se está à espera de um autocarro, permitindo fazer upload de fotos e exibir imagens de outras pessoas muito rapidamente”, disse Krieger. 5.3. Angry Birds Sobre a Rovio: Empresa de média e entretenimento, responsável por títulos como Angry Birds, Bad Piggies e The Croods. Os jogos Angry Birds tornaram-se uma sensação poucos meses após o seu lançamento e são agora alguns dos mais populares de todos os tempos, contando com mais de 1.7 mil milhões de downloads a nível global. O canal Toons, que é o serviço de stream da Rovio, gera mais de 100 milhões de visualizações por mês e oferece entretenimento familiar de alta qualidade que pode ser acedido directamente no jogo. Desafio: Os jogos online vêm com os seus próprios conjuntos de desafios. Quer isto dizer que têm de estar disponíveis em qualquer parte do mundo e a qualquer altura do dia ou da noite, independentemente do número de utilizadores que estejam a jogar. A infra-estrutura que suporta os jogos deve ter uma boa relação custo-benefício, ser fácil de manter e, ao mesmo tempo, ser flexível o suficiente para lidar com picos de uso. Deste modo, assegurar a disponibilidade é uma obrigação. Para a Rovio ter sucesso, a empresa sabia que tinha que 27 de 39 complementar os seus jogos com uma oferta de cloud madura e estável. “A Rovio precisava de uma infra-estrutura que pudesse escalar a um ritmo dramático,” disse Mikko Peltola, Líder de Operações da Rovio.” O enorme sucesso dos jogos Angry Birds necessitava de serviços online que pudessem coincidir com as taxas de crescimento com facilidade. E com a nossa audiência mundial, também precisávamos tanto de uma solução de hosting como de uma rede de distribuição com um alcance global”. Além disso, no negócio dos jogos e entretenimento, os custos devem adaptar-se às mudanças no volume de tráfego dos utilizadores. Porquê a Amazon Web Services? “Desde o início, queríamos usar a AWS para construir a nossa infra-estrutura global. Já a tínhamos usado antes com alguns projectos e sabíamos que poderia atender às nossas necessidades, especialmente quando se trata da nossa crescente base de clientes internacional. Queríamos construir um rico conjunto de serviços para os nossos jogos e, usar a AWS como a nossa plataforma, foi a escolha natural. Praticamente todos os jogos da Rovio usam serviços a correr na AWS. Por exemplo, tanto o Angry Birds original como o The Croods, baseado no filme da DreamWorks, dependem fortemente de serviços em execução no AWS Cloud”, disse Peltola. A Rovio usa vários serviços da AWS, incluindo o Amazon EC2 e o Amazon RDS30 no ambiente Amazon VPC, tal como o Amazon EMR 31 para o processamento de análises. A companhia também usa o Amazon S3 e o Amazon CloudFront para distribuição global. Diagrama 10: Arquitectura AWS da Rovio. 30 Amazon Relational Database Service (Amazon RDS) é um serviço de base de dados relacional distribuído pela Amazon. 31 Amazon Elastic Map Reduce (Amazon EMR) é um serviço que permite processar vastas quantidades de dados facilmente, rapidamente e com um bom custo-benefício. 28 de 39 Os Benefícios “A flexibilidade da cloud AWS permite-nos fazer coisas que de outro modo não conseguiríamos. Podemos escalar à medida que o número de jogadores aumenta, que oscila bastante durante a semana. E somos nós que controlamos isso, para que possamos aumentar automaticamente o poder de processamento para os nossos serviços. Com uma infra-estrutura tradicional no local, isso não seria possível”, disse Peltola. A flexibilidade da cloud AWS também beneficia os developers da Rovio, que podem facilmente aumentar os recursos necessários durante as fases de desenvolvimento e testes e também criar protótipos rapidamente de diferentes tecnologias. Gráfico 5: Variação da taxa de utilização após release. Pode observar-se no gráfico acima que após o lançamento de uma nova release, o consumo de recursos computacionais, onde são alojados os serviços da Rovio, têm um grande pico. 6. Visão de Mercado O mercado de cloud computing encontra-se constantemente em crescimento. Em 2010 a tecnologia cloud computing foi escolhida pelo IEEE como uma das 11 mais importantes tecnologias da década. Entre os principais fornecedores de serviços, de um modo geral, destacam-se a Microsoft, com o Windows Azure, a Google, com a Google APPs e a Amazon com o AWS. Este último é actualmente líder de mercado, onde se destaca o serviço EC2 descrito anteriormente. O Google fornece serviços num conjunto de aplicações designadas de Google Apps. 29 de 39 Estas aplicações abrangem várias áreas funcionais, desde correio electrónico (GMail), agendas pessoais (Google Calendar), chat (Google Chat) e até aplicações de processamento de texto (Google Docs) ou folhas de cálculo (Google Spreadsheets). Tendo em conta a sua natureza, estas aplicações estão disponíveis em qualquer parte e em qualquer momento, por utilizadores que tenham acesso à Internet. Os público-alvos dos serviços em cloud da Microsoft são os utilizadores de software da Microsoft, por exemplo o Microsoft Office. A Microsoft usa uma estratégia de serviços baseados na web, semelhante a outros fornecedores de serviços de software, usando para o efeito um acesso via web browser. Em relação à Amazon temos os AWS. Muitos destes serviços já foram descritos anteriormente neste relatório. O que mais se destaca neste fornecedor em relação aos concorrentes são as constantes novidades associadas aos serviços, incluindo novos tipos de instâncias. Já este ano foi anunciada uma redução de preços no serviço S3, que entra em vigor dia 1 de Fevereiro de 2014, e também foram disponibilizados novos tipos de instâncias EC2. É também comum a apresentação de novos programas e o suporte a mais linguagens nos serviços já existentes. A Amazon Web Services abrange centenas de milhares de clientes em mais de 190 países. Figura 16: Disponibilidade Global AWS Tabela 1: Preços em vigor a partir de Fevereiro de 2014 no serviço S3 30 de 39 Gráfico 5: Número de objectos armazenados no S3, em biliões. A ilustração imediatamente abaixo contém os principais playeres de mercado na área de IaaS. Figura 17: Principais players de IaaS. 31 de 39 Em relação à comunidade OpenStack descrita anteriormente analisemos os dados actuais. Composta por devolopers, investigadores e peritos de cloud computing, conta actualmente com 13731 pessoas, abrangendo 132 países. Os programadores contribuíram com mais de um milhão de linhas de código e a plataforma tem actualmente mais de 70 mil contribuições, com uma média de 238 contribuições mensais. A primeira conferência da Open Stack Summit 32 realizou-se em Julho de 2010, com 75 participantes. A conferência mais recente, realizada em Abril de 2013, contou com três mil participantes. Figura 18: Meetup Groups a nível global da OpenStack. Para se ter uma ideia global sobre a adesão aos serviços em cloud, vários estudos foram feitos a partir de várias populações e de vários fornecedores. Seguidamente são apresentados resultados desses mesmos estudos, em gráficos. Uns são relativos a serviços em cloud de um modo geral, outros são mais concretos, isto é, incidem mais sobre recursos que são tipicamente requisitados quando se trata de infra-estruturas como serviço. Gráfico 6: Percentagem de empresas de pequena e média dimensão, em certos países, que optaram pela cloud até ao ano 2011. 32 É uma conferência de cinco dias para programadores, utilizadores e administradores do software em cloud da OpenStack. 32 de 39 Gráfico 7: Tipo de serviço requisitado pelas organizações. Gráfico 8: Número mínimo e máximo de cores disponível por fornecedor de IaaS. 33 de 39 Gráfico 9: Quantidade mínima e máxima de memória RAM disponível por fornecedor de IaaS. Gráfico 10: Número de fornecedores que suportam um determinado sistema operativo. 34 de 39 A nível nacional, a SmartCloudPT é uma das principais soluções de serviços de cloud computing, fazendo parte do grupo Portugal Telecom. Conta com vários serviços, de entre os quais se destacam serviços de gestão de clientes, servidores públicos, privados, serviços de facturação, email ou simplesmente alojamento. Adicionalmente, a PT disponibiliza o serviço MEO Cloud para o segmento de consumo onde, de forma gratuita, utilizadores de todo o mundo dispõem de 16GB de armazenamento. Em relação aos servidores públicos, suportam os sistemas operativos Windows e Linux com memória RAM até 4GB. É permitido o acesso remoto ao servidor e o suporte de processamento vai até 2 vCPU. Quanto ao espaço em disco pode estender-se até 120 GB. É também fornecido um único IP público para conexão à internet. Tabela 2: Preço mensal do servidor público SmartCloudPT. Em 2013 a PT foi reconhecida, na categoria Best Cloud Service Product, no âmbito do Euro Cloud Europe Awards 2013 como a empresa com o melhor serviço de cloud computing da Europa. Existem ainda outras soluções de serviços cloud nacionais, por exemplo a Lunacloud ou a Primavera. Segundo o mais recente estudo realizado pela IDC33 Portugal e que abrangeu 100 das maiores empresas e organismos da Administração Pública, é revelado que a despesa com cloud computing no mercado nacional em 2012 correspondeu a aproximadamente 57 milhões de euros. O estudo revelou também que o modelo de cloud privada foi o mais adoptado entre as 100 empresas. 7. Análise e Raciocínio Tendo em conta o ambiente de crise económica e financeira que vivemos, migrar os sistemas para a cloud deve ser encarado como uma oportunidade para as empresas que estão dispostas a apostar em tecnologias inovadoras. As restantes, mais cedo ou mais tarde, sentirão necessidade de fazer o mesmo, dado que as empresas precisam de ganhar dinâmica e de optimizar os seus modelos de negócio para resistirem no mercado. Sondagens apontam para que em 2015 aproximadamente 60% das organizações operem na cloud. 33 A IDC é a empresa líder mundial na área de market intelligence, serviços de consultoria e organização de eventos para os mercados das Tecnologias de Informação, Telecomunicações e Electrónica de Consumo. A IDC ajuda os profissionais de Tecnologias de Informação, decisores empresariais e investidores a tomarem decisões sobre tecnologia e estratégias de negócio baseadas em factos. 35 de 39 O grupo Forrester vai ainda mais ao detalhe e afirma que o mercado de cloud computing global, em 2020, vai atingir 110 biliões de euros (note-se que o valor em 2011 foi 26 biliões de euros). Este grupo analista afirma também que, a acompanhar este grande crescimento de mercado, vai também existir um desenvolvimento da tecnologia de cloud que suporte tal crescimento, tornando esta tecnologia ainda mais acessível em termos monetários. Já John Manley, director da Automated Infrastructure Lab da HP, argumenta que as noções de software e hardware vão estar cada vez mais separadas, sendo que haverá um crescimento de tecnologias consumidas como um serviço. Cita também que " cloud computing é um meio pelo qual a computação se torna invisível". Analisando a citação podemos concluir que, cada vez mais, vão ser requisitados serviços sem existir a mínima preocupação ou ideia do hardware que os suporta. A opinião de David Merrill, economista-chefe da Hitachi Data Systems, não difere muita desta última. O mesmo afirma que, em 2020, se pedirmos a um CIO para desenhar a infra-estrutura da sua organização ele não vai ser capaz. No entanto vai conseguir identificar sem dificuldades quem são os fornecedores de serviços da sua organização. Mais uma vez, ao analisar a opinião, nota-se uma clara invisibilidade em termos de hardware aos olhos do cliente. Na nossa opinião, acreditamos que no futuro a noção de IaaS não esteja directamente associada ao cliente na maior parte dos casos, ou seja, o cliente requisita que um determinado serviço esteja disponível (software próprio do cliente ou comercial) e a contabilização de recursos só é tida em conta pelo fornecedor. Deste modo, é como se o pedido relativo a ter um determinado serviço a correr já incluísse toda a contabilização de recursos necessários (incluindo a infra-estrutura). Ao cliente final irá apenas interessar ter o serviço funcional, não fazendo ideia do hardware usado para suporte. Isto seria bastante vantajoso para as empresas que necessitam de poder de processamento para colocarem os seus produtos no mercado, mas não têm foco na tecnologia, sendo que até seria mais barato entregar a responsabilidade de gestão da parte informática ao fornecedor de serviços. O cliente não teria que fazer planos para saber que recursos necessita na actualidade nem futuramente, tudo seria deixado ao critério do fornecedor. Neste caso, os clientes que apresentem softwares mais pesados vão sentir mais peso na factura. Ao invés das diferentes organizações compararem entre si, por exemplo, o número de processadores usados, vão apenas ter como medida o preço, ficando a noção do hardware usado para o fornecedor. Isto seria uma evolução na medida em que o cliente teria apenas que enviar o ficheiro de instalação do software em questão ou, caso seja um software comercial, citar o que pretende comprar. As questões de picos de utilização ou necessidades de mais recursos seriam deixadas ao critério do fornecedor. Hoje em dia já existem serviços de autoscaling, mas acreditamos que no futuro este comportamento de escalar automaticamente esteja sempre incluindo em qualquer pedido do cliente, não sendo um serviço adicional, ao invés do que acontece na actualidade. O fornecedor seria responsável por manter a escalabilidade do serviço, tendo como acção default o aumento da capacidade computacional sempre que necessário. Isto trás novos desafios, entre os quais se destaca o facto do cliente não saber exactamente o que está a gastar. Pensamos que uma forma de solucionar isto seria enviar periodicamente ao cliente o valor que se encontra na sua factura actualmente, para caso o mesmo não queira pagar mais, mandar simplesmente parar o serviço ou dar ordens explícitas para não escalar mais em recursos a partir daquele momento. Pode ver-se esta possível evolução como a integração parcial de IaaS em SaaS, com a diferença que o software que é disponibilizado também pode inclui software fornecido pelo próprio cliente. Note-se que a nossa opinião não se baseia no 36 de 39 desaparecimento total de IaaS, achamos apenas que o modelo de infra-estrutura como serviço não vai estar presente de forma generalizada como está actualmente. Vai apenas estar presente em organizações da área computacional, em que o foco de estudo e desenvolvimento seja o próprio hardware. Para as restantes organizações, o foco vão ser os serviços e não o suporte dos mesmos. Tanto a manutenção como a monotorização serão responsabilidades do fornecedor. Isto dá uma flexibilidade muito superior em comparação à existente actualmente mas requer novos tipos de contractos, para sustentar estas novas responsabilidades do fornecedor. A acrescentar a isto, e visto que muitas empresas são consumidoras de IaaS a nível de armazenamento de dados, acreditamos que existirá uma aplicação padrão para gerir os dados armazenados na cloud. Esta aplicação permitira a rápida migração entre fornecedores, sendo portanto universal. Em conformidade com a evolução descrita acima, achamos que este tipo de solução devia escalar automaticamente de acordo com o contracto. Por exemplo, quando 90% da capacidade fosse atingida, era automaticamente incrementada. Repete-se o processo de periodicamente informar o utilizador acerca do custo corrente da sua factura. Outro dos meios pelo qual achamos que a cloud vai evoluir é no controlo das instalações. Seja em casas particulares ou em instituições, existem cada vez mais sensores de controlo, seja de incêndio, temperatura, luminosidade ou intrusão. Acreditamos que, com a evolução da tecnologia, será possível manter o controlo deste tipo de informação na cloud, para cada cliente. Este controlo, ao invés de estar localmente nas instalações do cliente estaria numa central, globalmente distribuída e seria oferecido como serviço. Nas instalações do cliente apenas ficavam os mecanismos que reagem aos eventos, por exemplo para permitir o corte geral da energia. Claro que para que isto seja possível tem de existir sincronismo e redundância nas ligações, mas não é nada que constitua um problema nos dias que correm. Indo um pouco mais longe, visamos que este tipo de serviço esteja presente nos projectos das instalações, que seja aplicado de raiz e constituía uma norma de segurança para qualquer construção, seja para habitação ou industrial. De facto, a cloud está a criar um nova forma de ver a internet das coisas 34 e o aparecimento de dispositivos móveis cada vez mais inteligentes reforça as necessidades e leva a novos modelos de consumo. Estudos mostram que em 2017 o valor correspondente ao mercado de cloud computing em Portugal seja de aproximadamente 184 milhões de euros (em contraste com os 57 milhões de 2012). Apesar do crescimento inevitável, e tendo em conta tudo o que foi descrito neste relatório, achamos que o mercado de cloud computing em Portugal não é tão maduro em comparação a certas soluções do estrangeiro. O sector que está a lucrar com este tipo de serviços a nível nacional é o das telecomunicações, fazendo uso da confiança ganha aos clientes ao longo dos anos. Se surgissem mais soluções inovadoras e mais concorrência nesta área decerto que o desenvolvimento no mercado seria exponencial e tal fomentaria a economia. De um modo geral, achamos que o futuro da computação vai basear-se em sistemas de cloud e é inevitável adiar este progresso. As necessidades crescentes e o avanço da tecnologia apontam sempre para soluções mais flexíveis e à medida de cada utilizador, matéria na qual as soluções cloud continuam a ser desenvolvidas e apresentadas. Constantemente aparecem novos serviços, tudo depende da criatividade e do modo como se emprega a tecnologia. Se houver um nicho de mercado interessado, o sucesso está quase sempre garantido. Deste 34 É um cenário em que os objectos, animais ou pessoas estão equipados com identificadores únicos e com a capacidade de transferir automaticamente os dados através de uma rede sem a necessidade de uma interacção humana. 37 de 39 modo acreditamos que, apesar da tecnologia em cloud já estar bastante desenvolvida, esta é uma área que ainda tem bastante para oferecer, sendo que não está totalmente explorada. 8. Conclusões Os serviços de cloud computing surgem e intensificam-se pela evolução natural da tecnologia, de modo a permitir responder às necessidades actuais. Após a análise dos vários serviços existentes, podemos afirmar que o mercado de cloud computing está cada vez mais emergente na sociedade. Tais serviços podem ser usados a favor das organizações, permitindo adoptar estratégias alternativas que possam vir a tornar a empresa mais competitiva. Aquando do uso de IaaS permite-se que a atenção e tempo que seriam gastos na infra-estrutura possam ser aproveitados noutra tarefa, maioritariamente no foco principal da empresa e no produto que se destina a apresentar ao público. Não esquecendo que tudo isto tem um custo, que pode não ser apenas monetário, há que ponderar bem o tipo de fornecedor e serviço a escolher. A maior resistência continua a ser devido ao vendor lock-in e a questões relacionadas com privacidade. No entanto, o crescimento da adesão a serviços desta natureza demonstra claramente um ganho de confiança considerável em relação às soluções de cloud. 9. Principais Fontes de Informação http://searchcloudapplications.techtarget.com/tip/Cloud-data-security-Share-the-responsibilityminimize-the-risks http://searchcloudapplications.techtarget.com/news/2240210054/AWS-reInvent-Securing-thecloud-based-virtual-desktop http://searchcloudcomputing.techtarget.com/photostory/2240210432/Counting-down-the-topcloud-computing-vendors-of-2013/1/Eight-cloud-computing-service-providers-that-stood-outthis-year#contentCompress http://searchcloudapplications.techtarget.com/tip/Security-considerations-for-IaaS-cloud http://www.infoworld.com/t/virtual-desktop/amazon-workspaces-delivers-windows-desktopsdemand-230850?source=IFWNLE_nlt_daily_pm_2013-11-14 https://wiki.openstack.org/wiki/Main_Page http://aws.amazon.com/pt/documentation/ http://www.computerworld.com.pt/media/2013/11/Dossier-Outubro-2013-B_CloudComputing.pdf https://www.smartcloud.pt/Pages/Catalog/Search.aspx?language=pt-PT http://aws.amazon.com/pt/solutions/case-studies/rovio/ 38 de 39 http://aws.amazon.com/pt/solutions/case-studies/reddit/ http://aws.amazon.com/pt/s3/pricing/effective-february-2014/ http://www.marketluminary.com/sites/default/files/whitepapers/research-iaas-buyer-sguide_2012.pdf http://www.apdc.pt/Legacy/Evento.aspx?channel_id=E9A3C1EB-783F-4019-A75A20B2BE60F8F4&content_id=161D4326-F1D1-4ECC-8948-6C0E4826F3BD&lang=pt# http://whatis.techtarget.com/definition/Internet-of-Things http://spectrum.ieee.org/static/special-report-top-11-technologies-of-the-decade http://www.youtube.com/watch?v=D34G30lWgg8 http://ianfoster.typepad.com/blog/2009/08/whats-fastera-supercomputer-or-ec2.html http://www.windowsazure.com/en-us/documentation/services/cloud-services/ http://www.computerworld.com.pt/2011/04/01/seis-dicas-para-a-migracao-do-e-mail-para-acloud/ http://www.zdnet.com/cloud-computing-10-ways-it-will-change-by-2020-7000001808/ https://www.nda.com.au/gettingstartedinthecloud.pdf 10. Referências Peter Mell & Timothy Grance, The NIST definition of Cloud Computing, 2011, NIST Special Publication 800-145 Diário Económico, Cloud Computing, 14 de Maio de 2012, Suplemento do Diário Económico nº 5424 Reichle & De-Massari AG, R&M Data Center Handbook V2.0, Agosto de 2011 39 de 39