Back to the (SQL) Future
Back to the (SQL) Future
Sure, we can have smart databases — but can we have smart databases that can scale on the cloud? The answer is yes. And here's why.
Join the DZone community and get the full member experience.Join For Free
Compliant Database DevOps and the role of DevSecOps DevOps is becoming the new normal in application development, and DevSecOps is now entering the picture. By balancing the desire to release code faster with the need for the same code to be secure, it addresses increasing demands for data privacy. But what about the database? How can databases be included in both DevOps and DevSecOps? What additional measures should be considered to achieve truly compliant database DevOps? This whitepaper provides a valuable insight. Get the whitepaper
In the first post in this series, I discussed the emergence of NoSQL to address the need to make databases compatible with cloud needs. And in my last blog post, I talked about the dichotomy between smart databases and smart applications. I asked whether we can have smart databases that can scale on the cloud. So now let's talk about why I think the answer is yes.
The big data revolution was substantially powered by Hadoop, initially a combination of a distributed store and the newfangled MapReduce query model. But in recent years, Hadoop has evolved from being the MapReduce alternative to SQL data warehouse technologies into a stack that strongly embraces SQL. In the big data analytics world, there has been a substantial return to SQL.
Operational database technologies are following a similar pattern, although the technical challenges are greater in the operational database world of high-frequency concurrent updates. It is much harder to retrofit SQL to a NoSQL operational store than it is to add a SQL querying capability to a Hadoop cluster or data lake, but we are seeing the trend nonetheless.
NoSQL vendors are seeking to add both SQL and ACID transactions to their offerings. They are aiming to deliver Elastic SQL systems: the elasticity of NoSQL but with the power of SQL.
Additionally, SQL vendors and service providers are adding NoSQL features and cloud operational models to their offerings. These systems increasingly offer the traditional benefits of NoSQL products. They can easily handle unstructured data, have flexible or dynamic schemas, have excellent redundancy to support HA/DR, and provide an excellent developer experience.
And we are seeing major cloud vendors investing in SQL-on-cloud operational database services with varying degrees of cloud-native behavior. These fall into the categories of:
- Lift-and-shift deployments of standard RDBMS systems with cloud APIs for provisioning and management (i.e. Amazon RDS and Microsoft SQL Server Managed Instances).
- Standard RDBMS systems with limited elastic features (i.e. Amazon Aurora and Microsoft Azure SQL Database).
- Cloud-native or cloud-focused SQL engines (i.e. Google Spanner, Cockroach Labs, and NuoDB).
Of course, there are many applications for which NoSQL data stores are the right solution, and that will always be the case. Nonetheless, what we are seeing in the market is a convergence toward database systems that offer the benefits of SQL and ACID transactions as well as the cloud-style characteristics of elasticity, automation, and always-on operation.
Return to Smart Databases
The starting point for this discussion was about how the CIO should think about their database strategy. The following is where things have been and are going:
- We have been through some decades in which it has been a straightforward choice of which RDBMS platform to standardize on (Oracle, Microsoft, IBM).
- In recent years there has been an application-specific choice between smart databases and smart applications (ie between SQL and NoSQL).
- Technology solutions are now in the market that offer elastic scalability whilst delivering all the benefits of simple applications with smart databases.
The most economically attractive model for application development is to simplify applications by deploying database systems with significant server-side processing capability, and with strong guarantees about your data. The industry standard way of doing that is to use SQL with ACID transactions.
In a cloud era, with a higher premium on elastic scale-out, these server-side capabilities were seemingly incompatible with many modern applications. But technology has caught up with the new data center paradigms, and the simple-applications/smart-databases model has become a reality on elastic infrastructure.
We should expect the simpler applications/smarter databases trend to continue, which is good news for the budget conscious CIO. And additional good news is the ability to leverage application development skills, DBA skills, toolchains, and data governance processes.
Published at DZone with permission of Barry Morris , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.