De acordo com Taurion (2009, p. 128, 129), manter toda a infraestrutura necessária para o armazenamento de informações em bancos de dados, como integração, segurança, disponibilidade, e desempenho adequado, consome parcela significativa do orçamento de TI. Neste modelo o provedor da nuvem mantém o serviço e o cliente paga somente pelo volume de dados armazenados e transferidos de e para a nuvem.
Ao referir-se a percepção da falta de privacidade, (CURINO et al., 2011) afirma que pode-se utilizar DaaS com CryptDB, isto é, utilizar um conjunto de técnicas projetadas para fornecer privacidade com impacto aceitável sobre o desempenho (22,5% na taxa de transferência em TPC-C). Com este conjunto de técnicas, todas as consultas são avaliadas sobre dados criptografados e enviados de volta ao usuário para decodificar. Além dos administradores poderem gerenciar as bases de dados mantendo a privacidade sobre os dados dos usuários.
Outro aspecto levantado por (CURINO et al., 2011), é que DaaS utiliza os motores existentes no mercado e sem modificações no SGBD (Sistema de Gerenciamento de Banco de Dados).
Taurion (2009, p. 130), sugere alguns usos iniciais para DaaS:
- Ambiente de desenvolvimento e testes. Os desenvolvedores podem testar suas aplicações exaustivamente no momento em que precisam, sem a burocracia para terem ambientes disponibilizados.
- Data archiving. Sabendo que apenas 20% das informações das empresas estão ativas e por aderência a legislação, a grande maioria das informações é armazenada em fitas após um período de inatividade. Através do DaaS há uma nova alternativa com custos menores para armazenar estas informações inativas.
- Backup. O DaaS permite armazenamento de informações com custos menores que em discos próprios, além de fornecer ferramentas para automatizar os backups.
De acordo com Hamilton et. al (2009), a utilização de DaaS pode ser uma ferramenta importante para desenvolvedores, porém os desenvolvedores deverão ficar atentos as vantagens e desafios abordados.
Vantagens |
Desafios |
Facilidade de implantação |
Data Design, número de entidades limitado em junções |
Independência de plataforma |
Não existe padrão para particionamento dos dados |
Administração simplificada de banco de dados |
Backup e recovery exigem procedimentos personalizados |
Integração padronizada de dados |
Performance Tuning exigem boas práticas com os dados |
Segundo Curino et. al (2011), a arquitetura do modelo DaaS (Ilustração a baixo) possui mais desafios do que uma simples instrução SQL sobre dados criptografados. Os aplicativos de usuários comunicam-se com o frontend utilizando um driver especifico de criptografia (CryptDB), que codifica e decodifica as instruções SQL mantendo a privacidade dos dados. O frontend analisa as consultas SQL e, utilizando seus metadados, determina os nós de backend e o plano de execução. O frontend também coordena transações multi-nós, controle de erros por nó (failover), grau de isolamento de desempenho, e a velocidade. Já nos nós de backend, o CryptDB explora uma combinação de criptografia no lado do servidor (serverside) junto com funções de usuário (UDFs) para permitir eficiência no processamento da SQL e suas particularidades – agregação, ordenação, junções, entre outros.
Aplicativos se comunicam com DaaS usando uma camada de conectividade padrão, tais como JDBC. Eles se comunicam com o frontend usando um driver especial que garante a privacidade de seus dados, por exemplo, não pode ser lido pelo administrador do banco de dados (CURINO et al., 2011).
Atualmente grandes empresas como Amazon, IBM, Microsoft, e Oracle ofertam bancos de dados na nuvem. A Amazon com SimpleDB, EnterpriseDB, e MySQL; a IBM com DB2 Express-C e Informix Developer Edition; e a Microsoft com SQL Server Data Services (TAURION, 2009, p. 131, 132).
Referências:
TAURION, Cezar. Cloud computing: computação em nuvem: transformando o mundo da tecnologia da informação. Rio de Janeiro: Brasport, 2009.
CURINO, Carlo; WU, Engene; JONES, Evan P. C.; MADDEN, Sam; RALUCA, Ada Popa; BALAKRISHNAN, Hari; MALVIYA, Nirmesh; ZELDOVICH, Nickolai. Relational Cloud: A Database-as-a-Service for the Cloud. 2011. Disponível em: <http://tiny.cc/sjxxo>. Acesso em: 31 jul. 2011.
HAMILTON, Gary; QUIMBO, Jocelyn; VERMA, Saurabh. Database as a Service: A Different Way to Manage Data. 2009. Disponível em: <http://cloudcomputing.sys-con.com/node/1203562>. Acesso em: 30 jul. 2011.