COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE Andressa T.R. Fenilli1, Késsia R.C.Marchi1 1 Universidade Paranaense (UNIPAR) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. Computação em nuvem é uma forma eficiente de armazenar arquivos e torná-los acessíveis a partir de qualquer dispositivo com acesso a web. Este assunto que se diz ser o futuro da computação está cada vez mais presente na atual realidade. Este artigo constitui de uma descrição da computação em nuvem apresentando os seus conceitos abordando também suas principais características, modelos de serviços e de implantação. 1. Introdução Computação em nuvem é um termo relativamente novo, devido a isso não há uma definição bem consistente sobre o assunto causando ainda muita divergência de opiniões quanto à utilização do termo. Computação em Nuvem é uma maneira eficiente de aumentar e tornar flexível os recursos computacionais [Taurion 2009]. Com o passar dos anos e com a evolução tecnológica surgiram diversas necessidades para quem faz uso de tecnologia, entre estas estão: mobilidade, comodidade, compartilhamento de informações, grande capacidade de armazenamento de dados e diminuição de custos com hardware e software. A computação em nuvem tem por objetivo atender estas necessidades tornando os dados mais acessíveis de forma compartilhada e auxiliando na redução de custos com equipamentos [Taurion 2009]. De acordo com o conceito de computação em nuvem essas necessidades serão atendidas com sua utilização, pois o arquivo poderá ser acessado de qualquer lugar, desde que haja Internet, com conforto e praticidade podendo acessar seus dados de um celular, notebook, PDA, desktop ou qualquer outro dispositivo com acesso a Internet O objetivo deste trabalho é compreender o funcionamento da computação em nuvem através de uma pesquisa que apresenta seus conceitos, características, modelos de aplicação e tipos de serviços. 2. Computação em Nuvem Computação em nuvem é um modelo útil de permitir acesso para o compartilhamento de recursos de computação possível de configuração como redes, servidores, armazenamento, aplicações e serviços. Estes recursos podem ser configurados de forma rápida e lançados com o mínimo de esforço de gestão ou interação com o provedor de serviços [Badger 2011]. Com a utilização da computação em nuvem será possível compartilhar o arquivo podendo este ser utilizado por várias pessoas e acessado de qualquer dispositivo com acesso a Internet. Algumas nuvens disponibilizam grande capacidade para armazenamento dos dados, não sendo necessários gastos excessivos com equipamentos de hardware, pois o armazenamento não é feito na máquina na qual o arquivo será acessado, com isso também não há necessidade de instalação de aplicativos pelo fato de que todos eles estarão disponíveis em servidores na Web. Existem muitos prós quando se diz respeito à computação em nuvens, mas como tudo tem seus contras neste caso não seria diferente. Na Computação em Nuvem existe algo muito incerto quando se trata de segurança na nuvem, pelo fato de tudo estar disponível para o usuário na rede, existe a possibilidade das informações sofrerem ataques de pessoas más intencionadas e usar tais informações para prejudicar o proprietário destas. 3. Características Essenciais O modelo de computação em nuvem é composto por cinco características essenciais, três modelos de serviço e quatro modelos de implantação [Badger 2011]. Para que a aplicação seja realmente uma aplicação na nuvem ela deve atender suas características essenciais. Estas características são: Autoserviço sob demanda: O usuário pode abastecer os recursos computacionais sem necessitar de interação humana com o provedor de serviço. Acesso por banda larga: Os recursos estão disponíveis através da Internet e podem ser por mecanismos padronizados independente da plataforma, podendo ser acessado tanto por celulares, notebooks, desktops, etc. Agrupamento de recursos: O provedor de serviços agrupa os recursos computacionais (armazenamento, processamento, memória, banda larga e máquinas virtuais) através de um modelo multi-tenant que os recursos físicos e virtuais distribuídos dinamicamente de acordo com a necessidade do cliente. Geralmente o cliente não tem controle ou conhecimento sobre a localização exata de onde os arquivos estão armazenados, mas pode especificar o local em um nível de maior abstração como o estado ou o país. Elasticidade rápida: Os recursos podem ser disponibilizados rapidamente e elasticamente configurados, ou até de forma automática em alguns casos, aumentando ou diminuindo a quantidade de recursos de acordo com a necessidade do usuário. Serviço mensurado: A nuvem controla e aperfeiçoa de forma automática a utilização dos recursos conforme o serviço fornecido. O uso dos recursos pode ser controlado e monitorado entre o usuário e o provedor de forma transparente. 4. Modelos de Serviços A idéia de computação em nuvem consiste na disponibilização de serviços através da Internet, estes serviços são pagos conforme a necessidade de uso (pay-per-use), dando ao cliente a possibilidade de aumentar ou diminuir sua capacidade de armazenamento conforme a quantidade necessária para o uso. Os serviços são diversificados, isto é um ponto positivo, no qual permite que o cliente adquira os serviços mais adequados às suas necessidades, o que também pode ser negativo devido à maior parte dos serviços não ser compatíveis entre si [Taurion 2009]. Os sistemas desenvolvidos para a nuvem foram divididos em três principais subgrupos: SaaS (Software como um Serviço): São os softwares disponibilizados aos usuários através da Internet, é direcionado ao usuário final. Os usuários deste serviço não têm contato com os serviços pertencentes às camadas abaixo, os custos são reduzidos, pois não necessita de aquisição de licenças de softwares. Os serviços podem ser acessados pelo usuário de qualquer dispositivo com acesso a Internet. Muitos destes softwares são usados diariamente sem o usuário saber que está utilizando um serviço da nuvem. Alguns exemplos de SaaS são: Google Apps, CRM on-line (Salesforce), Facebook, Linkedin, Sky Drive (Microsoft), etc. PaaS (Plataforma como um Serviço): Utilizada para que o usuário possa desenvolver suas aplicações e disponibilizá-las nas nuvens. PaaS oferece integração para implementar e testar aplicações nas nuvens, o usuário não gerencia ou controla a camada, mas controla a aplicação implementada na nuvem. É o provedor da PaaS quem fornece o sistema operacional, linguagem de programação e o ambiente de desenvolvimento para o usuário desenvolver suas aplicações. São Exemplos de PaaS: Google AppEngine, Windows Azure, Aneka Software, Bungee Connect, Heroku, Force.com, Amazon S3, etc. IaaS (Infra-Estrutura como um Serviço): O provedor oferece a infraestrutura de armazenamento e processamento, e tem como objetivo principal facilitar o fornecimento de recursos de computação necessários para criar um ambiente de aplicação. O usuário não administra ou controla a infra-estrutura, mas tem controle sobre os sistemas operacionais, armazenamentos e aplicativos implantados [Sousa 2010]. IaaS é baseado em técnicas de virtualização, seus recursos podem ser diminuídos ou aumentados de acordo com a necessidade do usuário. Os Exemplos de IaaS são: Amazon EC2, Flexiscale, GoGrid, Eucalyptus (open source), Tecla Internet, Cloud Server Locaweb, etc. A Tabela 1 apresenta os modelos de serviços da computação em nuvem e suas permissões de acesso. Tabela 1 Modelos de Serviços de Computação na Nuvem [Snowman 2010] Configuração Local IaaS PaaS SaaS Aplicações Aplicações Aplicações Aplicações Intermediárias Intermediárias Intermediárias Intermediárias Framework de Aplicação Framework de Aplicação Framework de Aplicação Framework de Aplicação Sistema Operacional Sistema Operacional Sistema Operacional Sistema Operacional Virtualização Virtualização Virtualização Virtualização Hardware Hardware Hardware Hardware Conectividade Conectividade Conectividade Conectividade Datacenter Datacenter Datacenter Datacenter Laranja = Gerenciado pelo Cliente Azul Marinho = Gerenciado pelo Fornecedor de Nuvem 5. Modelos de Implantação Os modelos de implantação permitem ao usuário usar as tecnologias disponibilizadas na nuvem de acordo com as necessidades do usuário. Existem diferentes tipos de modelos para definir qual modelo é viável, é necessário analisar o processo de negócios, tipos de informações a serem armazenadas e nível de visão desejado para adotar o modelo mais apropriado. Os tipos de nuvem (modelos de implantação) podem ser divididos em: público, privado, híbrido e comunitário. Nuvem Pública: A infra-estrutura é disponibilizada pelo público em geral, pode ser acessada por qualquer usuário que tenha o conhecimento de onde o serviço está localizado. A nuvem pública é controlada pelo provedor que está disponibilizando o serviço, sendo este responsável pela instalação, manutenção, gerenciamento e o abastecimento dos recursos necessários. O usuário não tem controle sobre a nuvem pública, não sendo interessante aos usuários que necessitam de que seus processos sejam estritamente seguros. Nuvem Privada: Uma nuvem privada possui os mesmos benefícios de uma nuvem pública, mas com uma diferença ela é construída exclusivamente para um único usuário, ou seja, o controle não fica sob responsabilidade do provedor e sim da organização que faz uso da nuvem. Este modelo oferece maior grau de controle, confiabilidade, desempenho e segurança, esta nuvem pode ser local ou remota e outras organizações não possuem acesso aos serviços. Nuvem Comunitária: A nuvem comunitária tem sua infra-estrutura compartilhada por organizações com interesses em comum, entre estes interesses estão os valores como a missão, requisitos de segurança, políticas, etc. Estas organizações partilham os acessos e as aplicações nas nuvens. Nuvem Híbrida: A nuvem híbrida é a combinação de duas ou mais nuvens. São ligadas pela padronização ou pela propriedade tecnológica, permite a portabilidade de aplicações e dados. Geralmente o usuário busca terceirizar as informações não críticas para a nuvem pública a serem controladas pelos provedores e os serviços críticos permanecem na privada sob seu controle. 6. Metodologia Para o desenvolvimento deste trabalho foi realizada extensa revisão bibliográfica em livros, artigos científicos e publicações em sites. A partir destas referências foi realizada a pesquisa que resultou neste artigo. 7. Conclusão A computação em nuvem está presente no nosso cotidiano, muitas vezes utilizamos seus serviços sem saber que se trata de computação em nuvem, serviços estes comumente utilizados por várias pessoas como os aplicativos do Google, Hotmail e Facebook. Mas para que a computação em nuvem seja amplamente adotada, tanto por usuários comuns quanto corporativos, as empresas que fornecem serviços nas nuvens devem avaliar e estudar maneiras de acabar com as fragilidades em respeito à segurança tornando a nuvem um ambiente totalmente seguro para dar mais confiança pra quem faz uso dos serviços. Este artigo abordou a computação em nuvem de forma resumida apresentando seus conceitos para obter um melhor entendimento sobre o assunto. A partir desta compreensão o intuito e aprofundar mais sobre o assunto para que possam ser desenvolvidas aplicações utilizando o modelo de computação em nuvem. Referências Badger, L. et al. (2011) “DRAFT Cloud Computing Synopsis and Recommendations”, http://csrc.nist.gov/publications/drafts/800-146/Draft-NIST-SP800-146.pdf, Acesso em 15/05/2011. Cambiucci, W. (2010) “Computação em Nuvem: algumas perguntas sobre desafios em projetos”, http://blogs.msdn.com/b/wcamb/archive/2010/05/07/computa-o-emnuvem-a. aspx, Acessado em 14/05/2011. Dios, I. (2011) “Casos de Uso de Cloud Computing”, http://www.aunclicdelastic.com/cloud-computing/casos-de-uso-de-cloud-computing, Acesso em: 12/05/2011. Martins, A. (2010) “Fundamentos de Computação Nuvem para Governos”, http://www.serpro.gov.br/wcge/artigos/Artigo-Fundamentos de Computacao Nuvem para Governos.pdf, Acesso em: 12/05/2011. Pontes, V. (2010) “Nuvens Públicas, Privadas e Híbridas”, http://www.winbrasil.com.br/sem-categoria/nuvens-publicas-privadas-e-hibridas, Acesso em: 12/05/2011. Snowman, G. (2010) “Diferença nos tipos de Computação nas Nuvens”, http://www.solidq.com/sqj/pt/Documents/2010_August_Issue/SQJ 002 pag. 4044.pdf, Acesso em: 01/06/2011. Sousa, F.R.C. et al. (2009) “Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios”, http://www.es.ufc.br/~flavio/files/Computacao_Nuvem.pdf, Acesso em: 14/05/2011. Taurion, C. (2009) “Cloud Computing: computação em nuvem: transformando o mundo da tecnologia da informação”, Editora Brasport: Rio de Janeiro, Brasil. Zangh, Q. et al. (2010) “Cloud Computing: state of the art and research challenges”, http://www.es.ufc.br/~flavio/files/Computacao_Nuvem.pdf, Acesso em 12/05/2011.