As concepções errôneas sobre o NoSQL existem há tanto tempo quanto o próprio NoSQL. É sempre bom conhecer perspectivas diferentes e, por isso, esta série do blog continua. Discutirei os conceitos errôneos sobre NoSQL, especificamente quando se trata de duas das principais empresas de banco de dados de documentos do mundo: Couchbase e MongoDB.
Nesta postagem, examinarei novamente alguns dos concepções errôneas que o Mongo fez sobre o Couchbase e o NoSQLE um dos equívocos e mal-entendidos mais comuns que ouvi no comunidade de desenvolvedores sobre o NoSQL em geral.
Não deixe de conferir as postagens anteriores desta série:
O NoSQL é seguro?
Alguns dos primeiros (e até relativamente recentes) dias do NoSQL tiveram alguns problemas de segurança evidentes e de alto nível. Aqui estão apenas alguns deles:
-
- Ataques de resgate ao MongoDB disparam, o número de vítimas chega a 27.000 em poucas horas
- O ransomware FairWare infecta servidores por meio de instâncias Redis expostas
- Os ataques de ransomware do Elasticsearch agora chegam a milhares
- Instalações inseguras do Hadoop são as próximas na mira da escória da rede
Qualquer pessoa que esteja lendo casualmente notícias sobre NoSQL pode ter a impressão de que o NoSQL é o oeste selvagem quando se trata de segurança. Por um tempo, foi assim. "Fácil de começar" geralmente significava "Inseguro por padrão".
Mas NoSQL não precisa ser sinônimo de "sem segurança". O Couchbase Capella e os provedores de serviços em nuvem, como a AWS e a Microsoft, trabalharam muito para tornar a segurança uma prioridade.
-
- Segurança e proteção de dados do Couchbase CapellaEste white paper aborda a segurança e a proteção de dados desde os níveis mais altos até os detalhes de implementação.
- A Capella também recebeu Conformidade com SOC2 certificação.
- Capela usa automaticamente a criptografia subjacente do provedor de nuvem.
- O gerenciamento de acesso refinado, a rede privada, a autenticação multifatorial, o monitoramento e os alertas são apenas alguns dos recursos de segurança incluídos.
E se você quiser executar e gerenciar o Couchbase Server em vez do Capella, ainda terá acesso a toda a gama de recursos de segurança.
O NoSQL perderá meus dados?
Você pode ter visto manchetes como esta: Jepsen contesta as alegações de consistência de dados do MongoDB.
Muitos sistemas NoSQL fazem diferentes compensações com as operações de dados, a fim de reduzir a latência e aumentar o desempenho (um dos principais motivos pelos quais as pessoas mudam para o NoSQL em primeiro lugar). É difícil acertar e, no passado, isso levou a problemas extremos que podem resultar em perda de dados. A "consistência eventual" também é motivo de reticência para muitos.
Essas compensações foram feitas para obter números melhores que ficassem bem nos benchmarks de marketing. Mas, na realidade, o que o NoSQL moderno e maduro (como o Couchbase) oferece a você é: controle.
-
- O Couchbase é altamente consistente.
- O Couchbase é totalmente testado com o Jepsen.
- Jangada é usado para consenso de metadados.
- Se quiser reduzir o risco contra casos extremos extremamente raros, você tem o controle para fazer isso.
A história mais longa:
-
- O armazenamento de dados em um cluster do Couchbase é altamente consistente. Se você salvar os dados, eles serão salvos na memória, depois no disco e, em seguida, em outros nós (de forma automática e assíncrona).
- Se estiver preocupado com casos extremos devido ao assíncrono, você pode especificar um Requisitos de durabilidade. Você pode fazer isso por operação se você quiser.
- Os índices de consulta no Couchbase são atualizados de forma assíncrona (eventualmente), para evitar lentidão, tendo que esperar nos índices ao criar/atualizar dados.
- MAS, ao fazer a consulta, você pode especificar nível de consistêncianovamente, em um por consulta base. Quando você precisa ler os resultados da consulta em milissegundos, pode compensar a latência para fazer isso.
Armazenamento de dados quando você tem dois ou mais clusters sincronização entre data centers é eventualmente consistente. Isso significa que se você fizer uma alteração em um documento, por exemplo, no Leste dos EUA, o documento correspondente no Oeste dos EUA será atualizado alguns microssegundos depois. (E conflitos pode ser gerenciado automaticamente). Esse somente aplica-se se você estiver usando vários data centers.
Sempre há casos extremos com qualquer banco de dados, não apenas NoSQL. No entanto, o Couchbase NoSQL moderno tem padrões sensatos incorporados, com uma variedade de opções quando você precisar delas.
NoSQL significa "sem ACID"?
Novamente, para fornecer inicialmente leituras e gravações de baixa latência e alto desempenho, Transações ACID não faziam parte dos primeiros dias do NoSQL. Para um usuário de banco de dados relacional, isso geralmente era visto como uma bandeira vermelha.
No entanto, como eu observadas no passadoO ACID não se refere apenas a transações, e muitos bancos de dados NoSQL podem oferecer garantias de ACID.
Dito isso, transações ACID com vários documentos estão disponíveis no Couchbase Server desde a versão 6.5.
No Mongo's página de comparaçãoNa seção "Transações ACID", as transações ACID do Couchbase são caracterizadas como "extremamente limitadas". Não há mais detalhes do que isso, então só posso especular que essa é uma referência desatualizada às transações inicialmente disponíveis como uma prévia para desenvolvedores Java (e Scala/Kotlin por extensão). Mas, nesse meio tempo, as transações ACID foram adicionadas aos SDKs de .NET, Node, PHP, Go, Python e C, e outras ainda estão por vir. E não é só isso, as transações ACID estão disponíveis para Qualquer pessoa que esteja usando o novo Recurso BEGIN/COMMIT/ROLLBACK no SQL++.
1 2 3 4 5 6 7 |
INICIAR TRANSAÇÃO; SELECIONAR CONTAGEM(*) DE aeroporto ONDE cidade="Stanted; ATUALIZAÇÃO aeroporto CONJUNTO cidade="Londres ONDE faa="STN; SAVEPOINT s1; DELETE DE aeroporto ONDE cidade="Londres E faa != "STN; ROLLBACK TRANSAÇÃO PARA SAVEPOINT s1; COMPROMISSO TRANSAÇÃO; |
E cenários complexos de fragmentação nem sequer entram na equação, ao contrário do Mongo.
Resumo
-
- O NoSQL moderno é seguro.
- O NoSQL moderno não perderá seus dados.
- O NoSQL moderno oferece suporte a transações ACID.
Não há problema em outros Os bancos de dados NoSQL não oferecem suporte a esses recursos: há muito espaço para especialização de nicho. Mas para o Couchbase, esses são recursos maduros usados por grandes organizações em casos de uso críticos.
Portanto, se você não conhece o NoSQL há anos, talvez seja hora de Inscreva-se para uma avaliação gratuita do Couchbase Capella. Não é necessário cartão de crédito.
O que vem a seguir?
Na próxima postagem, abordarei mais conceitos errôneos: o NoSQL é realmente tão bom em termos de escalabilidade? Qual NoSQL é o mais popular e por que isso é importante?
Quer discutir mais? Você é bem-vindo a participar do Discórdia do Couchbase para mais conversas, perguntas e respostas com a equipe e a comunidade do Couchbase.