Tem um produto de software? Adicione de graça. Uma pessoa lê e publica em até um dia.Tem um produto? Adicione de graça.

Adicione o seu produto
Adicionar um produto

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 produto

O 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.