BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Is Database-as-a-Service a Bad Idea?

Is Database-as-a-Service a Bad Idea?

This item in japanese

Cloud Computing represents a significant paradigm shift for our industry. David Chappell note that:

One of the most important parts of that shift is the advent of cloud platforms...this kind of platform lets developers write applications that run in the cloud, or use services provided from the cloud, or both.

Even though these platforms look familiar, Dave provides a word of caution:

While it’s useful to look at on-premises platforms and cloud platforms through the same lens, the two aren’t identical. When platform functions move into the cloud, they sometimes change in significant ways.

Dave divides an application architecture into three categories:

  • foundation
  • infrastructure services
  • application services

and argues that:

a cloud application can be built on a cloud foundation, just as an on-premises application is built on an on-premises foundation. Both kinds of applications can access infrastructure and application services provided on-premises and in the cloud. Just as on-premises platforms support today’s applications, cloud platforms provide services for the applications we’re likely to build tomorrow.

Out of all possible infrastructure services, "Data Services" are arguably the most important as information systems cannot be built without them. Data represents also a major strategic asset as the Cloud Platform that provides the most popular Data Services will likely command the largest market share.

Dave sees different types of Data Services:

remote storage in the cloud comes in different styles. For example, Amazon’s Simple Storage Service (S3) provides basic unstructured remote storage. The model it exposes to developers is straightforward: objects, which are just bunches of bytes, are stored in buckets ...

Another approach to cloud storage is to support more structured data. In Microsoft’s SQL Server Data Services (SSDS), for example, a container includes one or more entities, each of which holds some number of properties

Arnon Rotem-gal-Oz wonders though whether the "Database as a Service" is a good idea. This is a general trend in the industry with Microsoft, IBM, Amazon, LongJump or EnterpriseDB trying to provide essentially the same type of functionality. He explains:

So why is exposing the database through a web-service (RESTful or otherwise) is wrong? let me count the ways

  • It circumvents the whole idea about "Services" - there's no business logic It makes for CRUD resources/services
  • It is exposing internal database structure or data rather than a thought-out contract
  • It encourages bypassing real services and going straight to their data
  • It creates a blob service (the data source)
  • ItIt encourages minuscule [half]-services (the multiple "interfaces" of said blob) that disregard few of the fallacies of distributed computing
  • It is just client-server in sheep's clothing

Andrea James, reporter in Seattle, sees another pressing issue:

For a business, the electricity that flows from an outlet seems endless. And water will stream out of the tap without worry -- businesses pay only for what they use. But computing power hasn't been so seamless.

We are certainly barely scratching the surface of Cloud Platforms which will not emerge without some form of structured data management. It seems still too early to tell which Data Services and Cloud programming model will win. Would you trust your enterprise data to Data-as-a-Service? Would you prefer to access data through application services or simply CRUD your system of record?

Rate this Article

Adoption
Style

BT