Banco de Dados

12 ago, 2015

Gerenciamento de bancos de dados na nuvem

Publicidade

Em um artigo anterior, discuti alguns pontos importantes que você deve ter em mente ao pensar em migrar bancos de dados para a nuvem. Agora, é hora de falar sobre seu gerenciamento assim que eles estiverem na nuvem.

E aí você diz, “Mas eu mudei para a nuvem justamente para não ter que gerenciar meu banco de dados!”. É verdade. Além de diversas outras vantagens discutidas previamente, hospedar seus bancos de dados na nuvem é um alívio para grande parte da demanda e pressão associadas ao gerenciamento da infraestrutura de banco de dados no dia a dia. Contudo, isso não significa que você está totalmente livre. Com isso em mente, estes são alguns pontos a serem levados em consideração:

  1. Em última análise, você ainda é o responsável pelo desempenho. Embora transferir o controle de sua infraestrutura de banco de dados ao provedor de nuvem possa aliviar parte de sua carga em termos de tarefas administrativas e de configuração, você ainda é responsável pelo desempenho geral do banco de dados. É necessário estar atento a contenção de recursos, congestionamentos, ajuste de consultas, índices, planos de execução etc. Você pode precisar de novas ferramentas de análise de desempenho: mesmo que algumas funcionem bem, muitas delas não funcionam corretamente na nuvem.
  1. Em última análise, você ainda é o responsável pela segurança. Existem tanto riscos de segurança reais quanto percebidos associados a bancos de dados na nuvem, e você não pode esperar que o provedor de serviços de nuvem cuide da segurança para você. É preciso pensar na segurança como um modelo compartilhado no qual você é responsável por acesso e governança, criptografia, monitoramento da segurança, backups e recuperação de desastres. A nuvem pode ser segura – você só precisa ter um plano.

Então, qual é exatamente o seu papel no gerenciamento de seu banco de dados baseado na nuvem? Veja algumas ideias:

  1. Compreenda e gerencie as transferências de dados e a latência. Você precisará determinar onde seus dados estão efetivamente – região e data center – bem como elaborar planos para uso de várias zonas de disponibilidade, recuperação ativa e passiva de desastres ou localidades com alta disponibilidade. Será importante levar em conta a transferência de dados e a latência para backups e ter todos os bancos de dados em sincronia, especialmente se seu aplicativo precisar integrar-se com outro que não esteja na mesma implantação de nuvem. Alguns provedores de nuvem permitem que você lhes envie discos rígidos, outros têm conexões dedicadas de alta velocidade e outros ainda fornecem orientações arquitetônicas para ajudá-lo no processo de decisão.
  1. Conheça a nuvem de seu provedor de serviços e fique em dia com as mudanças. É crucial que você reserve algum tempo extra para compreender seu provedor de serviços, já que eles tendem a evoluir rapidamente. Você deve estar sempre a par de novos serviços e recursos, entender seus SLAs, examinar sua arquitetura recomendada e estar ciente de manutenções programadas que possam afetá-lo. Na parceria com a nuvem, você e o provedor de serviços precisam estar em sintonia.
  1. Esteja ciente da estrutura de custos. É fácil dar os primeiros passos na nuvem, mas essa simplicidade pode rapidamente levar a um hábito caro. Procure entender todos os elementos que compõem o custo de executar seu banco de dados na nuvem – como classe de instância, tempo de execução, armazenamento principal e backup, solicitações de E/S por mês e transferência de dados – e suas expectativas de crescimento ao longo do tempo. Isso pode ajudá-lo a evitar excessos no provisionamento e utilizar os recursos da nuvem de forma mais eficiente.
  1. Evite colocar todos os ovos na mesma cesta. Reflita, planeje e gerencie os requisitos necessários para backup e recuperação para não perder dados importantes caso ocorra uma falha ou interrupção no fornecedor. Faça isso mantendo uma cópia de seus dados com um fornecedor diferente, em uma localização diferente, de modo que fiquem em segurança e possam ser recuperados facilmente caso uma catástrofe venha a ocorrer.
  1. Mantenha-se à frente da segurança. Quais são os requisitos de segurança de sua organização e com quais regulamentos você precisa estar em conformidade? A criptografia é apenas a ponta do iceberg. Existem considerações como quais chaves serão usadas, quem terá acesso a elas, qual algoritmo será usado na criptografia, como os dados serão protegidos quando armazenados, em trânsito e em backups. Além disso, quem irá monitorar o acesso ao banco de dados com relação ao acesso mal-intencionado ou não autorizado? Lembre-se de que a maioria das ameaças à segurança vem de dentro. Por fim, planeje-se para o pior e tenha um plano de ação documentado para o caso de violação de segurança ou perda de dados.
  1. Monitore e otimize seu ambiente de nuvem. Se é importante monitorar e otimizar as implantações nas próprias instalações, isso é ainda mais importante na nuvem, devido à sua natureza dinâmica. Ferramentas de otimização de desempenho de bancos de dados podem fazer análises complexas do tempo de espera e correlação de recursos para acelerar significativamente as operações do banco de dados e reduzir os custos. Essas ferramentas também podem emitir alertas com base no desempenho de linha de base para identificar problemas antes que aumentem de proporção. Administradores de bancos de dados, desenvolvedores e equipes de operações podem se beneficiar de uma exibição compartilhada do desempenho dos sistemas de produção que lhes permita ver o impacto de seu código e isolar a causa raiz do que possa estar desacelerando o banco de dados, sejam consultas, sistemas de armazenamento, bloqueadores etc.

Em conclusão, executar seu banco de dados na nuvem pode proporcionar maior flexibilidade e agilidade e, sim, também pode significar menos de seu tempo sendo gasto com a administração do banco de dados. No entanto, não caia na armadilha de pensar que você pode se livrar das responsabilidades de gerenciamento do banco de dados. Na verdade, você deve ver isso como uma oportunidade de passar mais tempo gerenciando o próximo nível – aprimorando e otimizando o desempenho dos bancos de dados e aplicativos.