COMPUTAÇÃO EM NUVEM: CONCEITOS E TECNOLOGIAS DE GERENCIAMENTO DE DADOS Ticiana Linhares Coelho da Silva 1, Jean Gleison de Santana Silva 2, Lincoln Alexandre Paz Silva 2, Clayton Maciel Costa 2 1 Departamento de Computação Universidade Federal do Ceará (UFC) Fortaleza, CE Brasil 2 Instituto Federal do Rio Grande do Norte (IFRN) Ipanguaçu, RN Brasil ticianalc@lia.uf.br, jeangleison2@gmail.com, lincolnalexandre@hotmail.com, clayton.maciel@ifrn.edu.br Abstract. The advent of new information technologies has resulted in an increased amount of data to be stored. The need to provide services that manipulate data, such as management services, storage and query on these data still grows. In this context, it is necessary to provide computing as a service, such paradigm is known as Cloud Computing, where the term cloud is a metaphor for the Internet. This new trend of technology, which is one of the biggest promises of the century, allows the use of services of Information Technology (IT) to demand payment based on usage. Furthermore, Cloud Computing is an alternative sustainable and brings many benefits; because it covers a wide area in the IT market. This work discusses the concept, some characteristics of Cloud Computing technologies and data management technologies in Cloud Computing. Resumo. O advento das novas tecnologias de informação têm resultado no aumento da quantidade de dados a serem armazenados. Cresce ainda, a necessidade de disponibilizar serviços que manipulem esses dados, tais como serviços de gerenciamento, de armazenamento e de consulta sobre esses dados. Nesse contexto, é necessário fornecer computação como um serviço, tal paradigma é conhecido como Computação em Nuvem ou Cloud Computing em inglês, onde o termo nuvem é uma metáfora para Internet. Essa nova tendência de tecnologia, a qual é uma das maiores promessas do século, permite a utilização de serviços de Tecnologia da Informação (TI) sob demanda com pagamento baseado no uso. Além disso, a Computação em Nuvem se mostra uma alternativa sustentável e trás muitos benefícios, pois abrange uma ampla área no mercado de TI. Dessa forma, o objetivo desse artigo consiste em discutir o conceito, as características, e ainda algumas tecnologias de gerenciamento de dados em Computação em Nuvem. 1. Introdução O advento das novas tecnologias de informação têm resultado no aumento da quantidade de dados a serem armazenados. Cresce ainda, a necessidade de disponibilizar serviços que manipulem esses dados, tais como serviços de gerenciamento, de armazenamento e de consulta sobre esses dados. Nesse contexto, é
necessário fornecer computação como um serviço, tal paradigma conhecido como Computação em Nuvem ou Cloud Computing em inglês, onde o termo nuvem é uma metáfora para a Internet. Essa nova tendência de tecnologia diz respeito a proporcionar serviços de Tecnologia da Informação (TI) sob demanda com pagamento baseado no uso. A Computação em Nuvem pretende atingir desde os usuários finais que hospedam seus documentos na Internet até empresas que terceirizam recursos de TI para outras empresas. A Computação em Nuvem facilita o acesso aos serviços ou recursos computacionais, de maneira independente de plataforma e de arquitetura. Além disso, provê aos usuários a ideia de recursos computacionais e armazenamento de dados infinitos. Contudo, toda sua estrutura arquitetural é sob demanda e com pagamento baseado no uso, ou seja, só se paga pelo que é utilizado (pay only when it matters). Esse artigo tem como objetivo discutir o conceito, as características e algumas tecnologias de Computação em Nuvem. Além disso, são apresentadas algumas tecnologias de gerenciamento de dados em nuvem existentes. O artigo está organizado da seguinte forma: a Seção 2 apresenta uma visão geral do que é a Computação em Nuvem e suas principais características; a Seção 3 descreve o gerenciamento de dados em nuvem. Finalmente, a Seção 4 discute as considerações finais. 2. Computação em Nuvem: uma nova tendência O computador tem sido utilizado cada vez mais em nosso dia-a-dia, pois é nele que armazenamos arquivos e que executamos aplicativos para uso pessoal. Contudo, em um ambiente corporativo, o mesmo não acontece, pois normalmente tem-se uma estrutura de rede e os arquivos ficam armazenados nos servidores, de forma que os usuários finais podem acessá-los de qualquer computador que esteja no grupo da rede. Essa ideia de armazenamento e processamento local, que temos hoje, está sendo substituída por outros modelos distribuídos e transparentes ao usuário. Computação em Nuvem tem se tornado uma palavra chave da indústria de TI. Ela é uma evolução dos serviços e produtos de tecnologia da informação sob demanda. Usuários de serviços que são baseados nesse modelo, não precisam se preocupar com escalabilidade nem com disponibilidade dos recursos, e ainda, eles pagam apenas pelo recurso utilizado. Assim, computação em Nuvem é um modelo inovador que provê recursos computacionais com base em self-service sob demanda, ou seja, os recursos utilizados pelo usuário que estão dentro da nuvem sejam eles software ou hardware, podem ser alocados automaticamente de acordo com a necessidade do usuário de maneira transparente e sem que o mesmo necessite de interação humana com os provedores do serviço. A Computação em Nuvem provê ainda um pooling de recursos. O provedor organiza seus recursos computacionais em um pool, tanto de recursos físicos quanto virtuais, a fim de atender a demanda de vários usuários. A localização desses recursos é transparente ao usuário. A elasticidadade rápida é outra característica do modelo de Computação em Nuvem, ela se comporta de acordo com a demanda. Recursos dedicados ao processamento e à capacidade de armazenamento dos dados, por exemplo, são automaticamente adquiridos pelo usuário de maneira rápida e elástica, basta que o
mesmo pague o preço adequado pelo uso do recurso. Quando a demanda dimunui, os recursos são automaticamente liberados. A Computação em Nuvem permite aos usuários acessarem seus aplicativos e programas como se estivessem instalados em sua máquina e independentemente do sistema operacional. O processamento da máquina, as configurações de hardware e de softwares aplicativos, e até mesmo o sistema operacional são carregadas no momento em que se começa a utilizar o serviço. Isso é vantajoso, não só para as empresas como para os usuários domésticos, visto que dessa forma só há o pagamento se houver o uso, não havendo a necessidade de comprar licenças integrais de um software. Assim, a medida que a necessidade dos usuários aumenta, basta eles adquirirem facilmente recursos que estão nas nuvens. Figure 1. Uma visão geral de uma nuvem computacional. Outra vantagem para empresas e usuários domésticos é que eles não precisarão mais se preocupar com o backup, cuja responsabilidade passa a ser do provedor de serviço de Cloud Computing, responsável por guardar e proteger seus arquivos, e restaurar se necessário. Contudo, muitas empresas ficam receosas pelos seus dados estarem sob o domínio de outra empresa, ou hospedar todos os seus dados na Internet, não oferecendo total segurança a suas informações, como por exemplo, número da conta corrente dos funcionários, relatórios de produção, relatórios de projetos, entre outros. Dessa forma, foram criados os modelos de implantação, são eles: público, privado, híbrido e comunidade [NIST 2009], a fim de atender ao requisito de segurança da aplicação. O modelo de implantação privado é dedicado exclusivamente para uma organização, podendo a nuvem ser administrada pela própria empresa ou por terceiros. Neste modelo, são empregadas políticas de segurança quanto ao acesso. Essas políticas podem ser a nível de gerenciamento de rede, configurações dos provedores de serviços e utilização de tecnologia de autenticação e autorização [Sousa 2010]. Esse tipo de
modelo é viável de se utilizar em um cenário de uma universidade e seus departamentos, de tal forma que a universidade só deseja disponibilizar seus dados aos departamentos. O modelo de implantação público é dedicado a qualquer usuário, basta que o mesmo conheça onde se encontra o serviço. Nesse modelo, não faz sentido aplicar técnicas de segurança quanto ao acesso, como por exemplo, aplicação de tecnologia de autenticação e autorização. No modelo de implantação comunidade, diversas empresas compartilham uma mesma nuvem. Nesse modelo, podem ser aplicadas técnicas de segurança quanto ao acesso, tais políticas de segurança devem estar de acordo com os requisitos de cada empresa que participa da comunidade. Uma empresa da comunidade ou terceiros podem administrar a nuvem. O modelo híbrido envolve união de duas ou mais nuvens, que podem ser privada, pública e comunidade. 3. Gerenciamento de Dados em Computação em Nuvem A expansão dos processos automatizados em diversas áreas e as novas tecnologias de informação levaram os sistemas computacionais a manipularem grande quantidade de dados e ainda, de forma flexível. Aplicações como sistemas de monitoramento, desejam armazenar e consultar dados capturados por uma rede de sensores, por exemplo, a fim de tomar decisões futuras. Assim, um sistema de monitoramento que opera em um ambiente local, pode utilizar um Sistemas de Gerenciamento de Banco de Dados (SGBD) relacional, o qual atenderia ao requisito de os usuários consultarem de forma flexível. Contudo, quando esses sistemas passam a ser operados e sincronizados de maneira distribuída, uma opção seria utilizar SGBDs que estivesse em ambiente de nuvem, já que esses ambientes garantem características tais como alta escalabilidade, alta disponibilidade, autogerenciamento. Apesar da alta disponibilidade que os bancos de dados para ambientes de nuvem garantem, através da replicação em múltiplos data centers, do escalonamento automático e do particionamento dos dados para o armazenamento em vários hosts atendendo a demanda dos usuários, muitos dos bancos de dados de ambientes de nuvem perdem características peculiares que existem em bancos de dados relacionais, tais como consultas utilizando operador de junção, suporte a transações e garantia de consistência forte [Sousa 2010]. Na literatura, existem SBGDs relacionais para ambientes de nuvem, tais como Relational Cloud [Curino 2010], SQL Azure [Microsoft Azure 2009] e Amazon RDS [Amazon 2010], que garantem suporte a transação e suporte ao SQL como linguagem de consulta. Mas, apresentam desvantagens, pois não garantem forte escalabilidade nem alta disponibilidade. Já os SGBDs orientados a coluna, tais como Google DataStore e Cassandra [Lakshman, A., Malik, Prashant 2009], garantem forte escalabilidade e alta disponibilidade. Porém, não oferecem ou oferecem suporte simplificado a transações e possuem API simples para realizar consultas, não oferecendo suporte a junções. Os SGBDs orientados a coluna, geralmente, são otimizados para leituras, sendo aconselhável a sua utilização em aplicações que requerem a realização de consultas adhoc em grande quantidade de dados, já os SGBDs relacionais, geralmente, são otimizados para escrita, sendo mais viáveis para aplicações que realizam consultas com pouca frequência e que desejam alto desempenho na escrita dos dados.
Na literatura, existem outros Sistemas de Gerenciamento de Banco de Dados que apresentam suporte à nuvem e que possuem modelos de dados diferentes do relacional e do modelo orientado a coluna, como por exemplo, os modelos Chave-Valor, como Amazon Dynamo [DeCandia 2007] e orientado a Documento, como CouchDB [Apache CouchDB 2010]. O Dynamo utiliza o modelo par chave-valor armazenados em uma Distributed Hash Table e não possui suporte a associações ou esquemas. Para garantir um nível de escalabilidade e disponibilidade, uma das técnicas utilizada por ele é relaxar a consistência em alguns cenários de falhas [Sousa 2010]. O CouchDB é um sistema de banco de dados orientado a documentos, ditribuído, livre de esquema e de código livre. Figure 2. Classificação dos Sistemas de Gerenciamento de Dados. 4. Considerações finais Ultimamente, a atenção dada à preservação do meio ambiente tem aumentado. Os problemas ambientais causados pelos lixos tecnológicos têm obrigados as empresas a repensar seu modo de trabalhar e adotarem medidas que sejam tanto benéficas aos seus negócios, quanto ao meio ambiente. Toneladas de lixo tecnológico são jogadas no meio ambiente todos os dias, devido à falta de postos de coleta, principalmente em países de economia emergente como o Brasil. O uso cada vez mais crescente do computador e a necessidade de upgrade das máquinas, devido ao uso de softwares que exigem melhores configurações de hardware, gera uma problemática preocupante, pincipalmente nos dias de hoje. Alternativas como Cloud Computing prometem diminuir esse problema, pois os provedores oferecem servidores de alto desempenho, de tal sorte que os usuários não precisam se preocupar com o upgrade de suas máquinas e em descartar as que estão obsoletas. Dessa forma, os usuários geram menos lixo tecnológico, não prejudicando o meio ambiente.
Este artigo apresentou um estudo sobre Computação em Nuvem, destacando o gerenciamento de dados nesse ambiente. A Computação em Nuvem é um novo paradigma, onde os recursos de TI são oferecidos como serviços aos usuários que pagam pelo seu uso. No gerenciamento de dados, podemos perceber que existem vários sistemas de gerenciamento de banco de dados que oferecem suporte à nuvem. Esses SGBDs estão evoluindo e se adequando à necessidade das aplicações. 5. Referências Sousa, F. R. C. (2010). Gerenciamento de Dados em Nuvem, Monografia de Qualificação de Doutorado em Ciência da Computação na Universidade Federal do Ceará, Brasil. NIST. Draft Definition of Cloud Computing. National Institute of Standarts and Technology, 2009. http://csrc.nist.gov/groups/sns/cloud-computing. Curino, C., Jones, E., Zhang, Y., Wu, E., Madden, S. (2010). Relational cloud: The case for a database service. Technical report, MIT-CSAIL-TR-2010-014. Computer Science and Artificial Intelligence Laboratory, MIT, Estados Unidos. Microsoft Azure (2009). http:/www.microsoft.com/azure/. Amazon Relational Database Service (2010). http://aws.amazon.com/rds/. Lakshman, A., Malik, Prashant (2009). Cassandra a decentralized structured storage system. Ladis 09: Proceedings of the 3nd Workshop on Large-Scale Distributed Systems and Middleware. DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W. (2007). Dynamo: amazon s highly available key-value store. SIGOPS Oper. Syst. Rev., 41(6):205 220. Apache CouchDB(2010). http://couchdb.apache.org/. Vecchiola C., Chu, X. and Buyya R. Aneka: A software platform for.net-based cloud computing. CoRR, abs/0907.4622, 2009. Daniel J Abadi. Data management in the cloud: Limitations and opportunities. IEEE Data Eng. Bull., 32:3-12, 2009. Vaquero L. M., Rodero-Merino L., Caceres J and Lindner M. A breaking the clouds: towards a cloud definition. SIGCOMM Comput. Commun. Rev., 39(1):50-55, 2009. Aboulnaga A., Salem K., Soror A. A, Minhas U. F., Kokosielis P. and Kamath S. Deploying database appliances in the cloud. IEEE Data Eng. Bull., 32(1):13-20, 2009. Ciurana E. Developing with Google App Engine. Apress, Berkely, CA, USA, 2009. Liu S, Liang Y. and Brooks M. Eucalyptus: a web service-enabled-infrastructure. In CASCON '07: Proceedings of the 2007 conference of the center or advanced studies on Collaborative research, pages 1-11, New York, NY, USA, 2007. ACM.