ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM - PDF Free Download
Download "ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM"
Leonor Leal Gesser
1 ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM Igor dos Passos Granado¹, Ricardo de Melo Germano¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavai PR Brasil ²University of York York North Yorkshire United Kingdom Resumo: Este trabalho contém uma investigação científica sobre computação em nuvem, com o intuito de apresentar um estudo sobre os serviços e a arquitetura de uma computação em nuvem, afim de tornar possível a comparação entre duas plataformas do mercado, utilizando de informações disponibilizadas pelos provedores das plataformas e reunidas através da investigação realizada. Conclui-se que há diferentes tipos de plataformas no mercado que podem oferecer diferentes tipos de serviços, no qual temos a função de analisar qual a mais adequada em relação as necessidades da aplicação. 1. Introdução A Computação em Nuvem faz parte das quatro ondas tecnológicas da segunda década do século XXI, onde temos também a mobilidade, Big Data e Social Business que juntas vem trazendo grande impacto e mudanças no mercado de indústrias [Taurion, 2013]. A computação vem sendo transformada em um modelo que consiste em serviços que são padronizados e entregues de maneira similar a serviços tradicionais como água, eletricidade e telefonia, todos estes, possuem cobrança baseada na sua utilização. Nesse modelo de serviço, os usuários tem acesso de acordo com sua necessidade de uso sem ter que se preocupar onde os serviços são hospedados ou a maneira que são entregues. Vários paradigmas da computação possuem a mesma promessa e visão da Utility Computing, incluindo Cluster Computing, Grid Computing e a mais recente a Computação em Nuvem[Buyya et al., 2009]. Por ser uma tecnologia de grande impacto a computação em nuvem levanta várias questões para quem vai se lançar ao novo negócio ou serviço, portanto antes de tomar qualquer decisão é necessário também relevar os riscos que a tecnologia pode trazer, sendo necessário observar e comparar o potencial de valor versus o potencial de risco [Taurion, 2013]. Outro fator a ser levado em conta é a decisão de qual provedor optar, no mercado temos várias empresas como Amazon, Google, Microsoft, IBM, entre outras que estabeleceram data centers para fornecerem serviços e aplicação de
2 computação em nuvem, portanto é de extrema importância analisar a necessidade, o tipo de aplicação e ter conhecimento das ofertas de mercado antes de se fazer uma escolha. O trabalho tem como objetivo identificar quais as diferenças entra duas plataformas de nuvem com intuito de indicar qual é a melhor para determinado tipo de aplicação, para alcançar este objetivo será realizada uma investigação científica sobre computação em nuvem, um estudo sobre plataformas do mercado destacando quais os serviços oferecidos pelas mesmas e por fim um estudo sobre uma aplicação, identificando quais as características necessárias para um provedor hospedá-la. 2. Metodologia Para a construção do trabalho foi realizada uma revisão bibliográfica sobre Computação em Nuvem para dar contexto sobre a área estudada. Seguido de um estudo sobre riscos e recomendações que devem-se levar em conta antes de optar por um provedor em nuvem. Após isso foram estudadas plataformas de nuvem através de conteúdos disponibilizados pelos seus provedores ou fontes bibliográficas como artigos e ebooks. Os resultados foram obtidos através de comparações entre as plataformas, identificando qual atende melhor a diferentes tipos de aplicações. 3. Desenvolvimento 3.1.Conceito A computação em nuvem é vista por muitos como um termo inovador, muitas vezes apresentadas como uma tendência e de longo prazo. Porém em 2006 foi assim que surgiu o termo, computação em nuvem, sendo empregado pela primeira vez pelo Chief Executive Officer (CEO) da Google, Eric Schmidt [Aymerich et al., 2008]. Conforme avançarmos no estudo poderemos notar que o termo não é mais apenas uma tendência, e sim uma realidade para as empresas, principalmente as startups e em um futuro não muito distante talvez não teremos esse destaque para o termo (computação em nuvem) pois ele já será particular de toda a computação [Taurion, 2013]. 3.2.Definição de Computação em Nuvem A definição de computação em nuvem utilizada como embasamento para a construção do trabalho é a dos autores Mell e Grance [2011] do NIST (National Institute of Standards and Technology). Segundo pesquisadores ligados ao NIST: Computação em nuvem é um modelo que viabiliza o acesso oportuno e sob demanda a um pacote compartilhável de recursos computacionais configuráveis (por exemplo, redes, servidores, áreas para armazenagem, aplicativos e serviços) que podem ser rapidamente distribuídos e liberados com um esforço mínimo de gestão ou interação com o provedor de serviços [Mell; Grance, 2011, p. 2]. Este modelo ainda divide a computação em nuvem em cinco características essenciais, Self-service sob demanda, amplo acesso a rede, pool de recursos, elasticidade rápida e serviço mensurável, quatro modelos de implantação, público, privado, comunitário e híbrido, e três modelos de serviço, software as a service, platform as a service e infrastructure as a service.
3 3.3.Arquitetura dos Serviços de Computação em Nuvem Conforme a Figura 1, a arquitetura da computação em nuvem pode ser dividida em quatro camadas, a camada de aplicação, plataformas, infraestrutura e hardware, sendo situado dentro dessas camadas os três modelos de serviços. Figura 1 - Arquitetura da Computação em Nuvem. Fonte: Zhang, Cheng e Boutaba [2010]. As camadas são definidas abaixo de acordo com os autores Zhang, Cheng e Boutaba [2010]: - Hardware (Camada de hardware) - Camada responsável por gerenciar os recursos físicos da nuvem, consiste de servidores físicos, roteadores, switches, energia e sistemas de refrigeração. A camada de hardware geralmente é implementada em datacenters, onde os principais problemas encontrados nessa camada são: configuração de hardware, tolerância a falhas, gestão de tráfego, energia e gerenciamento do recursos de refrigeração. - Infrastructure (Camada de infraestrutura) - Conhecida também como camada de virtualização, é responsável por criar uma pool de recursos de armazenamento e recursos computacionais, utilizando de tecnologias de virtualização (VMware, por exemplo) para compartilhamento de recursos físicos. - Platforms (Camada de plataformas) - Consiste de sistemas operacionais e frameworks e tem como finalidade minimizar o ônus da implantação de aplicações diretamente em máquinas virtuais. - Apllication (Camada de aplicação) - Situa-se no nível mais alto da hierarquia, consiste das aplicações em nuvem. Ao contrário das aplicações tradicionais, essas aplicações utilizam da escalabilidade para alcançar melhor desempenho, disponibilidade, além de menor custo operacional. De tal maneira se compararmos a arquitetura da computação em nuvem aos serviços tradicionais de hospedagem, notaremos que ela é mais modular, onde cada
4 camada não é totalmente acoplada a outra, seja inferior ou superior, o que permite que cada uma evolua separadamente [Zhang; Cheng; Boutaba, 2010]. 3.5.Plataformas Amazon Elastic Compute Cloud 2 (EC2) O Amazon Elastic Compute Cloud (Amazon EC2) é um serviço da web que fornece recursos de computação na nuvem, agregando os princípios básicos da computação em nuvem [Amazon, 2014]. Abstraindo um pouco mais, Buyya [2009] define que o EC2 dispõe um ambiente virtual de computação que permite ao usuário executar aplicações baseadas em Linux e Windows. O usuário também pode criar uma nova Amazon Machine Image (AMI) que são máquinas virtuais, que contém aplicações, bibliotecas, dados e opções de configuração associadas, caso o usuário não queira criar uma nova AMI é possível escolher na biblioteca uma ou mais das diversas AMIs disponíveis. O Amazon EC2 foi desenvolvido para trabalhar com outros serviços fornecidos pela Amazon Web Services (AWS), entre eles o Amazon Simple Storage Service (Amazon S3), o Amazon SimpleDB e o Amazon Simple Queue Service (Amazon SQS), juntos fornecem uma solução completa de computação em nuvem [Amazon, 2014] Windows Azure Windows Azure é uma plataforma de desenvolvimento e implantação end-to-end para construção de serviços em nuvem, onde cada componente do Azure é responsável por uma função específica dos serviços de nuvem. De maneira geral o Azure oferece todos os recursos necessários para a realização dos serviços na nuvem, ele fornece um ambiente incluído de um servidor web, serviços computacionais, de armazenamento, de redes, e além de tudo fornece aos desenvolvedores uma fábrica de desenvolvimento, local onde é possível construir e testar serviços antes de implantá-los no Windows Azure [Redkar, 2009]. Figura 2 - Arquitetura do Windows Azure Fonte: Redkar [2009] Conforme apresentado na Figura 3, o Fabric Controller (Controlador de Fábrica) é responsável por ler as informações de Service Configuration (Serviço de Configuração)
5 fornecidos pelo Cloud Service (Serviço Nuvem) e gera as máquinas virtuais necessárias para implantar o serviço de nuvem. Compute tratam-se dos recursos de computação virtualizados, sendo um dos principais serviços do Azure. Este serviço oferece a capacidade de desenvolver e implantar serviços no Windows Azure, seu ambiente é composto por uma framework subjacente do.net 3.5 Framework (SP1) e IIS 7 rodando em servidores Windows 2008 [Redkar, 2009]. Storage trata-se do serviço de armazenamento, tem capacidade para armazenar desde pequenos até grandes arquivos (terabytes) Comparação preliminar entre as plataformas Na Tabela 1, é realizada uma comparação entre a plataforma Amazon EC2 e o Windows Azure seguindo alguns critérios breves. Tabela 1 - Comparação entre duas plataformas de computação em nuvem Serviço AWS Windows Azure Provedor Amazon Microsoft Lançamento Modelo de Serviço IaaS IaaS Interface API e Linha de Comando API e Linha de Comando Licença Comercial Proprietário Proprietário Sistemas Operacionais Compatíveis Linguagens de Programação suportadas Tempo garantido de disponibilidade Fonte: Adaptado de Magalhães et al. [2012]..NET, Node.js, Java, PHP, Python, Ruby, Android e ios.net, Node.js, Java, PHP, Python, Ruby, Android e ios 99,95% 99,95% A partir dos critérios preliminares analisados notamos as plataformas apresentam grande semelhança em suas propostas, porém isso mostra a evolução da tecnologia com o passar do tempo onde seus provedores buscaram suporte para novas linguagens de programação, aumentaram a compatibilidade de sistemas operacionais, tudo isso para não ceder a concorrência no mercado. Podemos notar melhor a evolução das plataformas se analisarmos a Tabela 2 adaptada de Magalhães et al. [2012]. Tabela 2 - Comparativo entre as plataformas de computação em nuvem Serviço AWS Windows Azure Provedor Amazon Microsoft Lançamento Modelo de Serviço IaaS IaaS Interface API e Linha de Comando API e Linha de Comando Licença Comercial Proprietário Proprietário Sistemas Operacionais Compatíveis Linguagens de Programação.NET, Node.js, Java, PHP,.NET, Node.js, Java, PHP,
6 suportadas Python, Ruby, Android e ios Python, Ruby, Android e ios Tempo garantido de 99,95% 99,95% disponibilidade Fonte: Adaptado de Magalhães et al. [2012]. 4. Considerações finais Com base no estudo realizado encontramos uma definição e exemplificação de uma arquitetura de computação em nuvem, onde é possível identificar a relação entre os serviços prestados pelo provedor e os atores, o que torna possível um estudo sobre plataformas específicas, no caso o Windows Azure e o Amazon Elastic Compute Cloud 2 (EC2), onde não é possível destacar previamente qual delas é a melhor, porém é possível notar que cada uma delas fornece diversas ofertas de serviços com algumas familiaridades em específico. Para a conclusão dos resultados será realizado um estudo de caso através de implementações, analisando e identificando quais os requisitos necessários para um provedor hospedar este tipo de aplicativo, assim sendo possível realizar uma comparação entre dois provedores afim de obter resultados sobre qual atende melhor a necessidade de determinado tipo de aplicação. 5.Referências: Amazon. (2014) Amazon Web Services: Amazon EC2. Disponível em: < Acesso em 29/05/2014. Aymerich, F. M. et al. (2008) An Approach to a Cloud Computing Network. 1st International Conference on the Applications of Digital Information and Web Technologies (ICADIWT). Buyya, R. et al. (2009) Cloud computing and emerging IT platforms: vision, hype, and reality for delivering computing as the 5th utility. Future Generation Computer Systems, v.25, n. 6, p Magalhães, G. et al. (2012) Comparação entre Plataformas de Computação em Nuvem. Escola Regional de Alto Desempenho do RS (ERAD 2012). Mell, P.; Grance, T. (2011) The NIST definition of cloud computing. Recommendations of the National Institute of Standards and Technology (NIST) Disponível em: Acesso em 26/05/2014. Redkar, T. (2009) Windows Azure Platform - unlock the power of cloud computing. US: Apress. Taurion, C. (2013) O papel da computação em nuvem dentro das quatro ondas tecnológicas. Disponível em: < mputacao_em_nuvem_dentro_das_quatro_ondas_tecnologicas?lang=en>. Acesso em: 28/05/2014. Zhang, Q. et al. (2010) Cloud computing: state-of-the-art and research challenges. Journal of Internet Services and Applications, v. 1, n. 1, p