Neha Patil (Editor)

Cloud database

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

A cloud database is a database that typically runs on a cloud computing platform, access to it is provided as a service.

Contents

Database services take care of scalability and high availability of the database. Database services make the underlying software-stack transparent to the user.

Deployment models

There are two primary methods to run a database in a cloud:

Virtual machine Image
Cloud platforms allow users to purchase virtual-machine instances for a limited time, and one can run a database on such virtual machines. Users can either upload their own machine image with a database installed on it, or use ready-made machine images that already include an optimized installation of a database. For example, Oracle provides a ready-made machine image with an installation of Oracle Database 11g Enterprise Edition on Amazon EC2 and on Microsoft Azure.
Database-as-a-service (DBaaS)
With a database as a service model, application owners do not have to install and maintain the database themselves. Instead, the database service provider takes responsibility for installing and maintaining the database, and application owners are charged according to their usage of the service. For example, Amazon Web Services provides three database as a service offerings as part of its cloud portfolio: SimpleDB, a NoSQL key-value store; Amazon RDS, a relational database service that includes support for MySQL, Oracle, and more; and DynamoDB. Microsoft offers its Azure SQL Database service on its Azure cloud service platform. Cloud computing platform Rackspace offers database as a service for MySQL and MongoDB. Database as a service providers are not limited to cloud computing platforms. For example, MongoDB as a service provider mLab allows their customers to host their databases on AWS, Azure, or Google Cloud Platform. Database vendors have also launched their own services under this model. Oracle provides its own database as a service, allowing users to access Oracle Database 11g and 12c as cloud services. MongoDB recently launched its own hosted MongoDB as a service, MongoDB Atlas.

Architecture and common characteristics

  • Most database services offer web-based consoles, which the end user can use to provision and configure database instances. For example, the Amazon Web Services web-console enables users to launch database instances, create snapshots (similar to backups) of databases, and monitor database statistics.
  • Database services consist of a database-manager component, which controls the underlying database instances using a service API. The service API is exposed to the end user, and permits users to perform maintenance and scaling operations on their database instances. For example, the Amazon Relational Database Service's service API enables creating a database instance, modifying the resources available to a database instance, deleting a database instance, creating a snapshot (similar to a backup) of a database, and restoring a database from a snapshot.
  • Underlying software-stack stack typically includes the operating system, the database and third-party software used to manage the database. The service provider (e.g. MongoLab or ObjectRocket) is responsible for installing, patching and updating the underlying software stack and ensuring the overall health and performance of the database.
  • Scalability features differ between vendors – some offer auto-scaling, others enable the user to scale up using an API, but do not scale automatically. There is typically a commitment for a certain level of high availability (e.g. 99.9% or 99.99%).
  • Data model

    The design and development of typical systems utilize data management and relational databases as their key building blocks. Advanced queries expressed in SQL work well with the strict relationships that are imposed on information by relational databases. However, relational database technology was not initially designed or developed for use over distributed systems. This issue has been addressed with the addition of clustering enhancements to the relational databases, although some basic tasks require complex and expensive protocols, such as with data synchronization.

    Modern relational databases have shown poor performance on data-intensive systems, therefore, the idea of NoSQL has been utilized within database management systems for cloud based systems. Within NoSQL implemented storage, there are no requirements for fixed table schemas, and the use of join operations is avoided. "The NoSQL databases have proven to provide efficient horizontal scalability, good performance, and ease of assembly into cloud applications."

    It is also important to differentiate between cloud databases which are relational as opposed to non-relational or NoSQL:

    SQL databases
    Such as PostgreSQL, EDB Postgres Advanced Server, NuoDB, Oracle Database, Microsoft SQL Server, MariaDB and MySQL, are one type of database which can run in the cloud, either in a virtual machine or as a service, depending on the vendor. While SQL databases are easily vertically scalable, horizontal scalability poses a challenge, that cloud database services based on SQL have started to address.
    NoSQL databases
    Such as Apache Cassandra, CouchDB and MongoDB, are another type of database which can run in the cloud. NoSQL databases are built to service heavy read/write loads and can scale up and down easily, and therefore they are more natively suited to running in the cloud.: However, most contemporary applications are built around an SQL data model, so working with NoSQL databases often requires a complete rewrite of application code. Some SQL databases have developed NoSQL capabilities including JSON, binary JSON (e.g. BSON or similar variants), and key-value store data types. These multi-model databases include PostgreSQL and EDB Postgres Advanced Server. A multi-model database with relational and non-relational capabilities provides a standard SQL interface to users and applications and thus facilitates the usage of such databases for contemporary applications built around an SQL data model.

    Vendors

    The following table lists notable database vendors with a cloud database offering, classified by their deployment model – machine image vs. database as a service – and data model, SQL vs. NoSQL.

    References

    Cloud database Wikipedia