Bancos de dados
Armazenar dados e recuperá-los rapidamente.
Bancos de dados
Ainda não há produtos nesta categoria
Nada foi cadastrado aqui até agora. Se você faz um produto que pertence a esta prateleira, adicione-o e uma pessoa vai lê-lo.
Adicione o seu produtoO que há nesta prateleira
Lugares para guardar dados e recuperá-los rapidamente: motores relacionais, bancos de documentos, caches chave-valor, índices de busca, bancos de séries temporais e os serviços gerenciados que rodam qualquer um deles para você.
A maioria das equipes precisa de menos deles do que os fornecedores sugerem. Um único banco relacional atende à maior parte das aplicações por muito tempo, e acrescentar um segundo motor acrescenta um segundo conjunto de falhas, de backups e de pessoas que o entendam.
A análise e os relatórios sobre esses dados pertencem a analytics. Onde a própria aplicação roda é hospedagem e nuvem.
Escolher um motor
Comece pelo formato dos seus dados e pelas perguntas que você fará a eles.
Os motores relacionais servem a tudo o que tem relacionamentos, transações, restrições e relatórios, o que descreve a maior parte do software empresarial.
Os demais são especialistas. Os bancos de documentos servem a registros que variam de formato e costumam ser lidos por inteiro. Os bancos chave-valor são para velocidade em buscas simples. Os índices de busca existem porque a busca de texto relacional deixa de bastar a partir de certo tamanho, e os bancos de séries temporais existem porque as métricas chegam mais rápido do que qualquer outra coisa.
O padrão honesto é um motor relacional até que algo prove que ele é insuficiente. As equipes que começam com um repositório exótico para evitar um problema de escala que não têm costumam encontrar antes um problema diferente e pior.
A compatibilidade importa mais que a marca. Um motor que fala um protocolo amplamente implementado dá a você ferramentas, drivers, contratação e uma saída. Uma interface proprietária dá a você um projeto de migração.
Gerenciado, auto-hospedado ou serverless
Os serviços gerenciados cobram um adicional e eliminam um trabalho que você faria em horários inconvenientes: correções, atualizações de versão, failover, verificação de backups.
A auto-hospedagem é mais barata no papel e só é mais barata na prática quando a habilidade já está dentro de casa. Conte as horas com honestidade, inclusive as da noite em que um disco enche.
As ofertas serverless escalam a capacidade com a carga e cobram pouco quando ociosas. Isso serve ao tráfego irregular e serve ainda melhor aos ambientes de desenvolvimento. Confira o comportamento de cold start, os limites de conexões e como o medidor trata uma tarefa em segundo plano que nunca para.
As perguntas que decidem a confiabilidade
- Backups: com que frequência, por quanto tempo são mantidos e se dá para restaurar até um ponto no tempo escolhido.
- Restauração: quanto tempo leva uma completa no tamanho dos seus dados, testada e não prometida.
- Failover: automático ou manual, quanto tempo leva e o que a aplicação vê enquanto acontece.
- Replicação: réplicas de leitura, cópias entre regiões e a defasagem que o seu código precisa tolerar.
- Conexões: o teto e se o pooling está incluído ou é algo que você precisa operar.
Faça uma restauração durante o período de teste. Um backup que ninguém restaurou é uma esperança, e esta é a categoria em que a esperança sai mais cara.
Crescimento, migrações e o que dói depois
Mudanças de esquema numa tabela grande são a operação que arruína os fins de semana. Pergunte como o motor lida com adicionar uma coluna, mudar um tipo ou construir um índice enquanto o tráfego continua.
Mantenha as migrações no controle de versão junto com a aplicação desde o primeiro dia. A alternativa, mudanças aplicadas à mão num console, produz ambientes que diferem de maneiras que ninguém consegue reconstituir.
Observe também a localização dos dados. Um banco em outra região que não a da aplicação acrescenta latência a cada consulta, e uma aplicação que faz cinquenta consultas por página vai sentir isso com clareza.
Como a fatura é montada
Computação, armazenamento, armazenamento de backups, saída de rede e, em alguns serviços, uma unidade para leituras e gravações.
A saída de dados é a linha que surpreende as pessoas, sobretudo quando análises ou réplicas puxam grandes volumes entre regiões. O armazenamento raramente encolhe sozinho, então linhas excluídas podem continuar sendo pagas até a manutenção rodar. Cópias de desenvolvimento e de homologação dobram tudo, a menos que sejam reduzidas ou desligadas durante a noite.
Pergunte quanto o preço vira com o triplo do volume de hoje, e não com o de hoje, já que esse é o número que você realmente vai pagar. Hábitos relacionados estão reunidos em o que as páginas de preços escondem.
Práticas que mantêm um banco de dados entediante
O objetivo desta categoria é a ausência de drama, e um pequeno número de hábitos produz a maior parte dela.
Mantenha as migrações no controle de versão e aplique-as do mesmo jeito em todos os ambientes. Mudanças manuais feitas num console produzem diferenças que ninguém consegue reconstituir depois.
Acrescente índices de propósito e revise-os de vez em quando, já que os não usados custam desempenho de escrita e armazenamento enquanto parecem inofensivos.
Acompanhe as consultas lentas como rotina, e não durante um incidente. A consulta que leva quatro segundos hoje é a indisponibilidade do próximo trimestre, quando a tabela tiver crescido.
E restaure um backup em intervalos regulares. Uma cópia que nunca foi restaurada é um arquivo, não uma salvaguarda, e esta é a categoria em que descobrir isso tarde sai mais caro.
Perguntas frequentes
Serviço gerenciado ou auto-hospedado?
O gerenciado custa mais por mês e menos no total quando você conta correções, atualizações, backups e a noite em que alguém precisa ficar acordado. A auto-hospedagem compensa quando você já tem a habilidade operacional e precisa de controle sobre a localização ou o ajuste fino.
O que serverless significa para um banco de dados?
A capacidade escala com a carga e o tempo ocioso custa pouco ou nada. É bom para tráfego irregular e ambientes de desenvolvimento. Fique atento a cold starts, limites de conexões e à fatura quando uma tarefa em segundo plano roda o tempo todo.
Como evitar ficar preso a um fornecedor?
Prefira motores com uma implementação aberta que você possa rodar em outro lugar, mantenha as mudanças de esquema em arquivos de migração e teste uma restauração numa instância comum. As extensões proprietárias são a parte que torna sair silenciosamente caro.
Onde o banco deve ficar em relação à aplicação?
Na mesma região, de preferência na mesma zona. Alguns milissegundos por consulta viram segundos por página quando a aplicação faz cinquenta delas, e nenhum cache esconde uma instância primária mal posicionada.
Como o preço costuma ser calculado?
Computação, armazenamento, backups, saída de rede e, às vezes, unidades de leitura, cobrados separadamente. A saída de dados e a replicação entre regiões são as duas linhas que aparecem maiores do que o esperado no primeiro mês completo.