Would you like to run the database server on the IaaS cloud? Or should it be converted to a PAAs selection? The choice of a database as a service may sound tempting, such as Cloudant's nosql but how to weigh it? Developers and application designers have a lot of options for deploying databases in the cloud, and it's hard to make the best decisions. Regardless of which cloud database you choose, you need to measure a variety of factors, including cost, availability, scalability, and performance support.
The current code can be very difficult to choose from a platform that is a service (PaaS) database, and even relational databases are not fully compatible, such as Microsoft SQL Server and Windows Azure SQL databases. SQL Server, for example, does not support custom text operations.
Therefore, if the current application is built on a three-tier architecture using MySQL, Oracle, SQL Server, PostgreSQL, or other commonly used relational database management systems, you can move the database server to the infrastructure, the service (IaaS) cloud. With this option, you can maintain configuration and management control, but continue to assume responsibility for backup, monitoring, and scaling (or shrinking) on demand.
Conversely, if you start a new development or redesign a current database tier, then a PAAs or database, or service (DBaaS), may be better adapted to the requirements. Be sure to use SQL or NoSQL schema as soon as possible.
Pros and cons of SQL and NoSQL
Both SQL and NoSQL have pros and cons, but some of the most important factors are your team's skill level in developing each type of database, and how each type of database fits your needs better. The advantage of being good at technology types is that your developers are not intimidated by the longer learning curve. Don't overemphasize unwanted functionality, even though marketing it has more support than other databases. For example, a distributed transaction two-phase commit is important for some applications, but do you really need it?
A relational database platform based on SQL can choose PAAs, such as Amazon Relational database service (RDS) and Windows Azure SQL database. Amazon RDS supports MySQL, Oracle, and Microsoft SQL Server databases. Disk I/O is the focus when optimizing database performance, so consider storage selection when docking PAAs or Dbaas database development.
Amazon Web Services (AWS) allows customers to provide an instance of RDS, either standard storage or preconfigured IOPS. The latter is a good choice for transaction processing applications. If you can tolerate I/O performance, standard storage can save AWS costs. Customers can have a monthly price of 10 cents/iops per 1000-30000 IOPS.
Google Cloud SQL is a cloud-based implementation based on MySQL, for small and medium applications. The integration of Google App Engine is very useful for developers who already use PAAs. Whether it's a package plan or a planned fee for each use case is feasible.
NoSQL choices may be more appropriate when costs and rapid expansion become the problem. The NoSQL database does not have all the performance we need to build a transactional-oriented system, but it is ideal for web and mobile applications that require rapid scaling. Both AWS and Microsoft have NoSQL database services.
Amazon Dynamodb is a managed NoSQL database. The customer allocates capacity for read and write, based on which the cost per hour is paid. AWS measures capacity based on "read capacity units" and "Write capacity units".
Amazon SimpleDB is another nosql option. Its primary advantage is low cost. SimpleDB is a good choice for small applications that can accept lower performance. For large amounts of data, partitions and automatic scaling are required to handle the load, and Dynamodb may be more appropriate.
Microsoft's NoSQL product called Table Storage, similar to Amazon Dynamodb, is a key value for data storage. These databases are good candidates for applications that support large amounts of data, simplifying the relationship between data types and benefiting from the need to fix predefined patterns. The price of Table storage is based on data volume and redundancy level.
In addition to IAAS vendors, such as Microsoft, Google, Amazon, you can also choose specific database services, such as Cloudant database services. Cloudant provides multi-tenant and dedicated MongoDB database services, starting at GB1 cents per month, plus additional HTTP request fees (such as GET, put, post, and delete).