O FerretDB é um sistema de banco de dados open source desenvolvido para empresas e desenvolvedores que buscam uma alternativa ao MongoDB. Ele é projetado para funcionar como uma camada de compatibilidade com APIs MongoDB, permitindo que os desenvolvedores usem aplicativos MongoDB sem realmente usar um servidor MongoDB. Na prática, o FerretDB substitui o MongoDB usando PostgreSQL como backend, oferecendo um sistema de banco de dados que se comporta de forma similar ao MongoDB, mas com a robustez e confiabilidade do PostgreSQL.
A escolha do FerretDB é especialmente interessante para empresas que desejam migrar seus sistemas de banco de dados, manter compatibilidade com o MongoDB e ainda aproveitar as vantagens do PostgreSQL. Ele é indicado para equipes que buscam flexibilidade, segurança e custo-benefício em projetos que exigem um banco de dados NoSQL, mas que também valorizam o suporte de um sistema SQL como o PostgreSQL.
O que é o FerretDB?
O FerretDB, antes conhecido como MangoDB, surgiu como resposta à mudança de licença do MongoDB, que adotou a SSPL (Server Side Public License), uma licença que exige que os usuários compartilhem o código de qualquer serviço em que MongoDB esteja embutido. A mudança gerou receio entre empresas e desenvolvedores, levando à criação do FerretDB para oferecer uma alternativa open source com funções semelhantes.
O objetivo principal do FerretDB é permitir que as aplicações que usam o driver e a API MongoDB continuem funcionando normalmente, mas utilizando o PostgreSQL como backend de dados. Essa abordagem mantém a experiência de desenvolvimento e a estrutura dos dados similares ao MongoDB, enquanto oferece os benefícios de um banco de dados SQL confiável.
Vantagens do FerretDB para Empresas
- Open Source e Livre de Restrições: O FerretDB é totalmente open source, e sua licença é amigável para empresas, diferentemente da SSPL adotada pelo MongoDB.
- Custo-efetivo: Empresas que já utilizam PostgreSQL conseguem otimizar custos ao centralizar dados e reduzir a dependência de múltiplos sistemas de banco de dados.
- Compatibilidade com MongoDB: FerretDB permite que empresas continuem usando a API MongoDB, o que facilita a migração e mantém a familiaridade dos desenvolvedores com o sistema.
- Apoiado pelo PostgreSQL: Ao usar PostgreSQL como backend, o FerretDB garante estabilidade, robustez e uma base de dados já madura e amplamente suportada no mercado.
- Facilidade de Implementação: Empresas que já usam PostgreSQL podem facilmente integrar o FerretDB, aproveitando a infraestrutura existente.
Funcionalidades
O FerretDB oferece diversas funcionalidades que o tornam uma alternativa interessante para empresas que buscam compatibilidade com o MongoDB. Confira a seguir as principais:
- API Compatível com MongoDB: O FerretDB suporta as principais operações de API do MongoDB, permitindo que as aplicações façam CRUD (Create, Read, Update, Delete) de dados sem problemas.
- Suporte a Operadores MongoDB: Ele suporta diversos operadores do MongoDB, como
$and
,$or
,$in
,$regex
, e muitos outros, garantindo que a manipulação de dados seja semelhante ao MongoDB. - Camada de Tradução para PostgreSQL: O FerretDB traduz as consultas e operações MongoDB para PostgreSQL, mantendo a compatibilidade enquanto aproveita o desempenho e a segurança do PostgreSQL.
- Escalabilidade: Como o backend é PostgreSQL, o FerretDB oferece um bom suporte a escalabilidade, especialmente para empresas que desejam crescer sem perder a eficiência na gestão de dados.
- Manutenção Simplificada: Usando PostgreSQL como base, a manutenção é facilitada, e as equipes de TI podem contar com uma infraestrutura já conhecida e testada.
- Suporte a Sharding e Replicação: O FerretDB também aproveita as funcionalidades de sharding e replicação do PostgreSQL, facilitando o gerenciamento e a segurança dos dados.
Extensões e Integrações
O FerretDB é compatível com várias integrações que o tornam ainda mais poderoso. Abaixo, destacamos algumas das principais:
- Compatibilidade com Ferramentas de BI: Ferramentas como Metabase, Apache Superset e Grafana podem ser integradas ao FerretDB via PostgreSQL, facilitando a criação de dashboards e relatórios.
- Ferramentas de Backup e Recuperação: Como o FerretDB usa PostgreSQL como backend, ele pode aproveitar ferramentas robustas de backup e recuperação, como pg_dump e pg_basebackup.
- Suporte a Linguagens de Programação: Desenvolvedores podem usar drivers MongoDB em várias linguagens como Python, Node.js, Java e Ruby, aproveitando a compatibilidade com a API MongoDB.
- Integração com Kubernetes: Com o FerretDB, é possível criar implementações escaláveis e resilientes usando Kubernetes, aproveitando o suporte nativo do PostgreSQL.
- Sistema de Logs e Monitoramento: Ferramentas como Prometheus e ELK Stack podem ser integradas para monitoramento de performance, coleta de logs e análise de métricas em tempo real.
Concorrentes
No mercado, existem outras alternativas ao MongoDB e algumas soluções com funcionalidades semelhantes ao FerretDB:
- MongoDB Atlas: Uma versão cloud do MongoDB, gerenciada pelo próprio MongoDB Inc. Oferece escalabilidade e integração, mas exige licenciamento SSPL e tem custos de assinatura.
- Amazon DocumentDB: Serviço de banco de dados gerenciado pela AWS que oferece compatibilidade com a API do MongoDB e é altamente escalável, mas restrito ao ecossistema AWS.
- Couchbase: Um banco de dados NoSQL que também oferece suporte a operações semelhantes ao MongoDB, com foco em alta disponibilidade e distribuição de dados, mas possui uma curva de aprendizado mais acentuada.
- ArangoDB: Um banco de dados multi-modelo que pode funcionar como banco de dados orientado a documentos, gráfico e chave-valor. Ele é versátil, mas não tem compatibilidade com a API MongoDB.
- Percona Server for MongoDB: Um fork do MongoDB que continua sendo compatível com a API MongoDB, mas com algumas melhorias de segurança e desempenho.
Pontos Positivos
- Gratuito e Open Source: Uma das maiores vantagens do FerretDB é ser uma alternativa gratuita ao MongoDB, sem as restrições de licenciamento da SSPL.
- Uso do PostgreSQL como Backend: Ao utilizar o PostgreSQL, o FerretDB aproveita a robustez, estabilidade e as funcionalidades já conhecidas de um dos bancos de dados mais confiáveis do mercado.
- Fácil Migração de MongoDB: Empresas que já utilizam MongoDB podem migrar para o FerretDB sem alterar a estrutura dos dados e o código das aplicações, mantendo a familiaridade com a API.
- Escalabilidade e Flexibilidade: Com o suporte ao PostgreSQL, o FerretDB consegue oferecer escalabilidade para empresas que pretendem crescer e integrar novos sistemas de dados.
- Segurança de Dados: A segurança do PostgreSQL é outro ponto positivo, especialmente para empresas que exigem um alto nível de proteção e controle sobre seus dados.
- Ampla Integração com Ferramentas de BI e Monitoramento: A compatibilidade com o ecossistema PostgreSQL permite integração com diversas ferramentas de análise e monitoramento de dados.
Pontos Negativos
- Funcionalidades Limitadas Comparadas ao MongoDB: O FerretDB, embora compatível com a API MongoDB, ainda não suporta todas as funcionalidades avançadas, o que pode ser uma limitação para aplicações mais complexas.
- Performance Dependente do PostgreSQL: Embora o PostgreSQL seja estável, algumas operações NoSQL podem não ter o mesmo desempenho que teriam em um banco de dados nativo NoSQL.
- Atualizações e Suporte: Sendo um sistema relativamente novo, o FerretDB pode ter um suporte comunitário mais limitado e menos opções de suporte comercial, o que pode ser um problema para algumas empresas.
- Curva de Aprendizado para PostgreSQL: Para equipes acostumadas exclusivamente com MongoDB, a adaptação ao PostgreSQL pode exigir um pouco mais de aprendizado.
- Funcionalidades de Sharding e Replicação Limitadas: O sharding e a replicação, embora suportados no PostgreSQL, ainda podem não atingir o nível de desempenho de sistemas NoSQL focados nisso.
O FerretDB se apresenta como uma solução inteligente e econômica para empresas que desejam manter compatibilidade com MongoDB, mas sem as restrições da licença SSPL e com a robustez do PostgreSQL. Ele oferece uma interface familiar e amigável para desenvolvedores acostumados ao MongoDB, além de ser fácil de integrar com a infraestrutura de dados já existente em muitas empresas.
É uma opção bastante atrativa para quem quer evitar custos elevados e manter um controle rígido sobre os dados, especialmente por ser open source e permitir o uso em servidores próprios. Com algumas limitações de funcionalidade e performance quando comparado a soluções puramente NoSQL, ele ainda assim consegue entregar eficiência e segurança em projetos de pequeno a médio porte.
Para empresas que buscam uma alternativa ao MongoDB com foco em custo-benefício e que não necessitam de todos os recursos avançados de um banco NoSQL, o FerretDB é uma excelente escolha.