The use of NoSQL databases has grown rapidly over the last 3 years. NoSQL’s advantages over relational technologies in scalability, performance and data model flexibility have been a big reason. Internet and mobile applications developed by Intern companies, defined as company’s whose entire business revolves around the Internet, were the first to adopt NoSQL. Initially it was companies like Google, Facebook, and Amazon that pioneered NoSQL and developed their own technologies internally. Later it was companies like LinkedIn, Zynga, AOL, and Orbitz that adopted open source technologies like Couchbase, MongoDB, and Cassandra.
Recently, there has been growing debate about the current and future penetration of NoSQL in the enterprise, broadly defined as ‘brick and mortar’ companies of all types. Some see the enterprise as the stronghold of incumbent leaders like Oracle, IBM, and Microsoft. Others see the enterprise following the same path as Web 2.0 companies. We sat down with Bob Wiederhold, CEO of Couchbase, to get his perspective.
Bob Wiederhold, President and CEO at Couchbase, has been in the technology space for more than 25 years and has been able to watch the growth of the application and software industry firsthand. Bob sees the need for a NoSQL solution that can play in the modern web world – allowing mission critical applications to scale without the headache of holding to a fixed data schema. Below Bob answers specific questions about the readiness of NoSQL in the enterprise:
Why is NoSQL so important for new enterprise applications today?
There are big changes taking place in many enterprises and many of those changes are opening big opportunities for NoSQL databases. First, enterprises are internally developing more and more web-based applications to interact with their customers, suppliers, or other stakeholders. They could be revenue-producing applications that will become an increasingly important part of their business or non-revenue producing applications that make their supplier and customer interaction more efficient. In either case, these applications are likely to be SaaS-type applications that use a three-tier interactive software architecture and require the type of performance and scalability that NoSQL provides. They are complex applications that store session information, user generated data, user likes/dislikes, comments, audio, video, sensor data, telematic data, etc. and increasingly require the agility and capabilities of NoSQL. Media companies are just one of many examples where this is happening. Here companies like McGraw Hill, Thomson Reuters, and Sky are building innovative new applications based on NoSQL that are responding to the rapidly changing dynamics of the media industry.
Second, enterprises are buying applications for their internal use that will increasingly use NoSQL as their underlying database. In this case, “buying applications” means either using vendor SaaS offerings or buying the software and running the software as a SaaS offering on their private clouds. ISVs (Independent Software Vendors) are moving away from packaged software and the two-tier client server architectures that utilized Oracle/IBM/Microsoft databases and dominated enterprise software for much of the last 20 years. Most of the newest, highest grow software vendors have already moved to SaaS models that employ modern three-tier interactive software architectures that are well suited for NoSQL. As the use of SaaS offerings continues to grow in the enterprise, so will the use of NoSQL. Salesforce, Concur, and Cisco are three examples but there are dozens more at various stages of incorporating NoSQL into their ECM, ERP, HRMS, SCM, CRM, EPM, etc. offerings for enterprise customers.
[ECM – Enterprise Content Management, ERP – Enterprise Resource Planning; HRMS – Human Resource Management System; SCM – Supply Chain Management; CRM – Customer Relationship Management; EPM – Enterprise Performance Management]
Third, enterprises are increasingly using NoSQL as a part of their websites and website related services. Websites are an increasingly important part of the marketing, sales, support, and customer engagement strategies of enterprises. To be competitive enterprises are improving their websites to offer more and richer services, add social networking, include gamification, improve performance, collect customer data, and much more. NoSQL is being used as the database underpinning for these rapidly evolving websites and related services.
How ready is NoSQL database technology for mission-critical enterprise deployment?
Enterprises will adopt NoSQL in much the same way as they do any other new technology. They will tend to explore and experiment with NoSQL first on non-mission critical applications and expand its use as they build expertise internally, fully characterize its strengths and weaknesses, and get comfortable with its reliability. How ready a particular NoSQL product is for a specific mission-critical application is highly dependent on the requirements of the application, the current feature-set of the NoSQL product, and the reliability of a product under heavy load. NoSQL has been proven to be very reliable at very large scale while also maintaining high performance so we’re increasingly being used for mission-critical deployments.
What are the applications/industry sectors that are best served by NoSQL technologies and why?
The first companies to leverage NoSQL were internet companies that included social gaming, advertising networks, online retail, online business services, social networking, video services, online media, etc. Enterprises that are moving quickly to adopt NoSQL include online business services, advertising, media, communications, retail, and financial services, just to name a few.
What are the issues that NoSQL addresses best?
When compared to relational databases, NoSQL provides three high-level benefits; more productive application development, higher performance, and easy scalability. To meet competitive pressures, applications have to evolve rapidly so developer productivity is crucial. NoSQL’s more productive application development comes in large part from the schema-less data model that a document-oriented NoSQL database provides. This data model matches better with how application developers write code and allows them to change the data they store much more quickly than is possible with relational databases.
Higher performance is needed because applications are storing and retrieving more and more data and application users demand “snappy” performance from their apps at all times. NoSQL databases provide higher performance by distributing load across a horizontally scalable database and by employing a document data model that eliminates performance-sapping operations like complex queries, joins, and record locks that are typical in relational databases.
Finally, applications are storing more and more data and supporting a rapidly growing number of users. This puts a huge load on a database that must be addressed with horizontal scalability on commodity servers. NoSQL databases have been built from the ground up as distributed databases that scale horizontally on commodity servers. Relational databases are fundamentally centralized, share-everything technologies that only scale up and therefore don’t scale well.
What areas are not well served by NoSQL database technologies?
When most people discuss areas that NoSQL doesn’t handle well, they usually talk about transactions. A transaction refers to an atomic operation that requires updates to multiple data items and needs to either be completed in its entirety or rolled back to its original state. The classic example where transactions are needed is in debit/credit operations where a debit needs to happen to one account and a credit to another. For obvious reasons this type of transaction needs to fully complete or be rolled back to its original state. Generally speaking, when these types of operations are required, relational databases are better suited to the task.
It is important to keep in mind however, that while it is true that NoSQL databases don’t currently support transactions in the same broad way that relational databases do, saying that NoSQL doesn’t support transactions is overly simplistic. Document-oriented NoSQL databases aggregate data in a single document that would normally be found in many tables of a relational database. Since an individual document can be atomically updated, many “transactions” in a relational database can easily be handled in a document-oriented NoSQL database. So, just because your application required transaction when it used a relational database doesn’t mean it will require them with a document-based NoSQL solution.
What about security and compliance concerns? Can they be dealt with?
Generally speaking, the NoSQL industry so far hasn’t implemented a broad set of security and compliance features in its products. As NoSQL makes its way more and more deeply into the enterprise however, security and compliance features will be increasingly important and will be an increasingly high priority on near term product roadmaps.
What is next in your view on the horizon for NoSQL? Where is it headed?
NoSQL as a category is still in the early stages of product development. While relational databases have had 40 years to evolve and mature, NoSQL has been around for just a few years. I expect there will continue to be huge feature improvements both to the core database (such as security/compliance, better transaction support, and improved support for larger and larger clusters) as well as to auxiliary tools (such as backup/restore, monitoring/alerting, and reporting). The NoSQL ecosystem will also expand significantly. Connectors to and integrations with data warehouses, business intelligence and reporting tools, Hadoop analytics tools, Iaas/PaaS offerings, etc. will all make it significantly easier to deploy NoSQL. Finally, NoSQL will continue to mature from a reliability perspective as companies deploy NoSQL on an increasing number of mission critical projects and products are put to the test under extreme operating loads.
Bob Wiederhold has more than 25 years of high technology experience. Until an acquisition by IBM in 2008, Bob served as chairman, CEO, and president of Transitive Corporation, the worldwide leader in cross-platform virtualization with over 20 million users. Previously, he was president and CEO of Tality Corporation, the worldwide leader in electronic design services, a company with 1,500 employees worldwide and revenues of almost $200 million. Bob held several executive general management positions at Cadence Design Systems, Inc., an electronic design automation company, which he joined in 1985 as an early stage startup and helped to grow to more than $1.5 billion during his 13 years at the company. Bob also headed High Level Design Systems, a successful electronic design automation startup that was acquired by Cadence in 1996.