User experience is critical to providing a successful online service. A slow, unresponsive or offline application will doom your business, but a fast site that processes data and responds to customers’ needs instantly is a thing of beauty that will keep users coming back again and again.
Operating a successful application presents its own challenges. Once you’ve developed a user-friendly service, you must consider how that application will handle scaling from hundreds of transactions to potentially millions without so much as a shudder. This is where your choice of database platform plays a critical role.
Selecting the right database from the start will ensure that you don’t scale yourself out of business and can ensure a great experience for your customers. In this article, I will explain why NoSQL databases are ideally suited for the new world of online applications that must scale to incredible levels and remain available at all times.
The Database Challenge
The traditional approach to building applications is based on the relational databases that gained popularity 30 years ago. Products from companies like Oracle continue to power many of today’s most critical back-end applications such as internal Enterprise Resource Planning (ERP) systems.
However, relational databases are largely incapable of powering customer-facing online applications. Scaling them requires expensive hardware purchases, and their parent-child architecture means if an important machine goes down, the entire system can go down.
Throughput also presents a significant challenge when handling large-scale online applications; today’s web services must remain available at all times with sub-microsecond speed. One customer told me that the blink of an eye is now a thousand times too long for him to process data. Traditional RDBMS systems today can achieve around 50,000 transactions per second before they hit the performance ceiling – far too slow for many online applications.
To address the need for faster, more agile and cost-effective platforms for online applications, a new category of database systems has emerged under the term “NoSQL”.
The Rise Of NoSQL
NoSQL databases are used by the biggest online applications and services. Rather than storing data in a highly specific way using traditional architectures, NoSQL databases cover a range of options, from graph databases to key-value stores, to process and control information.
Although many different NoSQL databases exist, these products share a critical trait – they are purpose-built for large volumes of data. NoSQL systems are built for throughput, the legacy of managing the challenges faced by Google, Facebook and Amazon a few years ago.
Organisations like Netflix, eBay and Hailo use Apache Cassandra to support the unprecedented velocities of data they have to deal with every day. Applications running on the right NoSQL database can scale to hundreds of thousands to millions of transactions per second, while remaining available at all times.
Ensuring Zero Downtime
The challenge of scaling online services affects a wide range of companies, from start-ups to traditional enterprises. Financial services, telecoms, media companies and other organisations commonly face the challenge of maintaining availability for applications, particularly by deploying across multiple data centres.
NoSQL databases take a different approach to traditional database platforms when providing bulletproof availability. Rather than operating a parent-child architecture that replicates data across to secondary systems, NoSQL databases such as Cassandra spread the data across multiple nodes that are all “active.”
With this approach, nodes can spread out across different data centres or geographies without impacting the application’s performance. If one node goes down, and even if an entire data centre is unavailable, then the remaining nodes keep the application operational with no downtime and no impact on the end user.
NoSQL In The Enterprise
NoSQL represents a revolution in the database market, and due to the technology’s recent emergence, companies are competing desperately to hire talented developers and administrators. To gain the skills needed to build some of today’s most innovative applications, industry veterans and new talent are participating in free training courses and engaging with the open-source communities that underpin many NoSQL technologies.
Although NoSQL is already a fixture in large-scale enterprises, many NoSQL projects are developed with application engineers in mind rather than enterprise applications. To help ease the operational overhead and increase simplicity in enterprise environments, NoSQL platforms are starting to offer features like automatic management and monitoring services. There is also more emphasis on security as NoSQL databases add the management and auditing features found in traditional RDBMS solutions.
By considering these requirements, more companies can choose NoSQL rather than relational databases and create an architecture that allows them to scale huge amounts of data while remaining available at all times. In addition, evaluating the scalability and performance capabilities within the NoSQL category will help application architects select the right database for their service.