Banco de Dados como Serviço
Com o crescimento da computação em nuvem, foram criados vários modelos de serviços especializados. Tanto que se fala até em XaaS (Everything as a Service), que poderia ser entendido como “qualquer coisa como serviço” ou “tudo como serviço” (DUAN et al., 2015, [s.p.]).
Como não seria possível descrever tantos modelos especializados, vamos discutir alguns dos mais importantes no mercado atualmente. Vamos começar com o modelo denominado Banco de Dados como Serviço (DBaaS – Database as a Service) (SOUSA et al., 2010). Este é um caso de especialização do modelo PaaS, no qual o cliente pode criar um banco de dados sem ter que instalar e configurar o SGBD.
A infraestrutura computacional necessária e o gerenciamento do SGBD são responsabilidades do provedor. O gerenciamento de dados na nuvem envolve grandes desafios, por exemplo, em termos de segurança dos dados, escalabilidade e qualidade de serviço (SOUSA et al., 2010).
Nesse contexto, um problema comum é quando uma aplicação em um provedor precisa acessar um banco de dados que está em outro provedor. Nesse caso, a latência de acesso aos dados pode comprometer o desempenho do sistema caso a aplicação precise consultar o banco com muita frequência. O ideal é que a aplicação e o banco de dados sejam implantados em máquinas virtuais hospedadas na mesma máquina física, ou, pelo menos, na mesa rede local, de forma que a latência seja mínima.
Com a migração de dados e aplicações para a nuvem, o uso de banco de dados como serviço tem aumentado nos últimos anos. O fato de não ter que se preocupar com o gerenciamento da infraestrutura é algo muito importante para administradores de bancos de dados.
Porém, um dos aspectos mais críticos no uso do modelo DBaaS são a segurança e o sigilo dos dados. Algumas questões importantes para refletir são: é recomendável ter bancos de dados de clientes diferentes hospedados na mesma máquina virtual? Será que as tecnologias de virtualização são capazes de prover isolamento e proteção dos dados de clientes diferentes que compartilham os mesmos equipamentos? Não é fácil para empresas tradicionais aceitarem que seus dados (e os dados de seus clientes) serão armazenados em instalações externas à empresa, ou seja, nos provedores.
Os provedores de serviços no modelo DBaaS oferecem recursos avançados como suporte a replicação e balanceamento de carga automático (SOUSA, 2010). Dessa forma, os provedores são capazes de, automaticamente, criar réplicas do banco de dados a fim de atender a eventual aumento no número de consultas ao banco.
Assim, as requisições de acesso aos dados são divididas entre as réplicas do banco, o que permite melhorar o desempenho do sistema. Além disso, os serviços incluem suporte tanto para bancos relacionais como para bancos não relacionais (NoSQL). Um exemplo do primeiro caso é o Azure SQL Server da Microsoft.
Entre os bancos não relacionais, podemos destacar o MongoDB que também é oferecido como plataforma na nuvem por vários provedores, como o MongoDB Atlas. Em geral, o cálculo de tarifas relacionadas a serviços de suporte a banco de dados não é uma tarefa simples, pois os custos envolvem os volumes de dados armazenados, a quantidade de transações no banco e o tempo de uso das máquinas virtuais utilizadas para executar uma ou mais instâncias do SGBD.