NoSQL isn’t all equal
Couchbase has been recognized as a Leader in NoSQL by Forrester Research in their recent report ‘The Forrester Wave™: Big Data NoSQL, Q1 2019.’ Forrester identified the 15 most significant companies in the category, then evaluated and compared them against 26 criteria. Several vendors, including Couchbase, set themselves apart from the pack in terms of both database capabilities and strategy, highlighting significant differences between NoSQL vendor offerings.
This is certainly consistent with DB-Engines rankings, where Couchbase is currently the #3 document store behind MongoDB and somewhat surprisingly Amazon DynamoDB since they are primarily a key-value store (DocumentDB is their document store). However, unlike Forrester, which goes through a rigorous process to evaluate 26 currently relevant buying criteria, vendor involvement with DB-Engines is largely inconsistent and only provides a measure of popularity (i.e. search and trends). But what can’t go unnoticed from the DB-Engines methodology and their insights gathered on the database market is the rapid rise of Microsoft Azure CosmosDB popularity, and to a lesser extent, DynamoDB compared to NoSQL stalwarts like Couchbase or MongoDB. What is clearly happening is a growing interest and adoption of cloud.
Cloud migration, without vendor lock-in
Today, most enterprises are looking at a hybrid or a multi-cloud strategy to run workloads in the best execution environment or to meet security, governance and compliance requirements across the globe. The cloud provider database-as-a-service offerings like DynamoDB and CosmosDB are limited to a single cloud and do not satisfy these customer requirements while forcing them into a lock-in with their cloud providers.
Couchbase’s cloud strategy, on the other hand, is about the flexibility of deployment and choice while giving customers complete control and ownership of their data. Couchbase was built using a cloud-native architecture as a scale-out distributed database that can be deployed anywhere across physical, virtual or containerized infrastructure. Couchbase’s cloud offerings leverage these architectural advantages to focus on enabling customers to address their hybrid and multi-cloud requirements with a consistent data platform that can be deployed across on-premises, edge and cloud deployments.
Customers can choose to deploy Couchbase in three different ways – as a ‘DIY’ offering both on-premise or in the cloud, as a self-managed service as part of their Kubernetes infrastructure in the private clouds or in the cloud leveraging the Couchbase Autonomous Operator, or as a fully managed service on cloud platforms. Couchbase’s cloud offerings are always deployed within a customer’s cloud account ensuring that a customer has complete control over the security and ownership of data.
The critical trade-off: Vendor lock-in vs. best of breed database functionality
Cloud provider DBaaS offerings are certainly a convenient option to get rapid data management for public cloud-based apps, but keep in mind all the limitations you will eventually face as you scale your deployments. Meanwhile, costs will quickly skyrocket as you add capacity. Rick Houlihan does, however, provide a counter perspective regarding costs in his LinkedIn article. He downplays the many functional differences between NoSQL offerings (in contrast to Forrester’s rigorous evaluation of real technical buying criteria), and his thesis asserts that it simply comes down to cost. Couchbase and MongoDB customer bases would suggest that is not necessarily the case, with differentiated, and in Couchbase’s case – best of breed, enterprise-class capabilities, driving widespread adoption of NoSQL today.
Selecting the database that will grow with your application is critical, especially given that peak application performance will be limited by the underlying performance of the database. Customers are no longer accepting that they need to simply buy more hardware to address issues around application performance and operational efficiency. As a result, many customers have already re-architected their applications to leverage NoSQL — but avoiding relational system characteristics such as normalized schema and ACID is not an option.
As application scope and requirements change and evolve over time, a platform that supports agile development is critical. In fact, to assume that NoSQL is best suited for just simple queries that facilitate CPU conservation so that performance is driven by proper denormalized data modeling, is perhaps only a perspective taken by those who are limited by their NoSQL database that doesn’t support rich, complex queries and analytics. A foundation on open standards, SQL for JSON, allows customers to quickly and easily migrate from relational to NoSQL, understanding that forcing database denormalization to fit NoSQL is counter-intuitive. Instead, Couchbase allows for an optimized NoSQL schema by encouraging customers to re-design the data model to reflect the access pattern of their application, and uses Join where it is still imperative to avoid data redundancy and maintain data integrity.
Couchbase N1QL support for ANSI joins is a truly elegant solution within a best of breed NoSQL platform that has been architected for performance at scale, helping customers to take up less servers on data center floors (e.g. Rakuten Viber migrated from MongoDB to Couchbase and halved the number of AWS servers). Even though some NoSQL products offer features that sound similar, their implementation and inherent limitations become obvious once you try to actually use them. For example, MongoDB’s aggregation framework requires documents to reside on the same shard in order to support joins with lookups across documents, severely affecting database flexibility and performance.
While public cloud DBaaS offerings may seem very simple and easy to use, none adequately provide the breadth of capability out of the box. For instance, it’s up to the customer to provision DynamoDB Accelerator (DAX) clusters or use ElastiCache to reduce latency, link DynamoDB to RedShift for analytics, or to link it to Lambda to manage peak throughput, all without a consolidated view/API.
Realistically, one solution, especially document or key-value, does not fit all. There is room in the NoSQL space for multiple solutions and platforms that support choice, like Couchbase. Performance, reliability, and scalability are the founding principles behind NoSQL and where Couchbase excels, all the while also making JSON document and KV data access fast and simple. Most importantly, tech leaders, architects and application developers alike want familiar tools, like SQL, so that they don’t need to staff or learn entirely new paradigms or proprietary APIs for data access.
Ultimately you want performance with greater developer flexibility and ease of use, all without vendor lock-in. Unfortunately, AWS only delivers on some of those requirements, and customers will continue to choose multiple solutions for their applications. Couchbase is routinely used for caching layers, sources of truth, and systems of record across high-scale and high-flexibility use cases, including offline-first mobile applications. It has been selected to power enterprises’ most business-critical applications and successfully deployed across physical, virtualized, container and public cloud environments (roughly 30% of deployments in public clouds such as AWS). By design, Couchbase is accessed and managed through a consistent set of APIs, and scaled, upgraded, and diagnosed as a single unit, making Couchbase a complete database platform that not only addresses the multi-cloud needs of today, but offers the flexibility to adapt to the needs of tomorrow.
Fantastic and very informative! Will certainly be using it for competitive discussions on DynamoDB, CosmosDB and such.