The next step comes when we recognize that the true value and productivity of the Cloud is in the Platform as a Service (PaaS), and we face new challenges in the form of software transformation and reconstruction in the search for the optimal cost/benefit ratio.​And one of the initial decisions that have more impact is to adopt the storage of our information in Databases as a Service by selecting which one to use in our software; being the NoSQL solutions, an affordable first step, of remarkable simplicity, powerful and of contained cost.

Why transform towards simplicity?

The first thing to be clear is that the adoption of this type of service is not a ”silver bullet ” that is valid for all use cases. Moreover, the relational databases of all life have inherent advantages and disadvantages, studied and recognized this type of storage services. However, for applications that require an especially economical way to store data that adapt to the characteristics of these WCS services and that allow changing the persistence logic – the data storage layer – in a simple way to migrate to the APIs of connection can be a solution with an excellent efficiency ratio. The key lies in the complexity of the data structure and the relational operations that we have to perform on the set of tables. The three that we are going to analyze in this article are of the type Wide Column Store (WCS), heirs of this paper of BigTable, which defines a storage in two-dimensional tables where the first columns are the indexes (between one and three columns) that unequivocally identify the horizontal rows that store the records. Next, an indeterminate number of columns is defined in which the field structure of the records is constructed, in a totally flexible way, based on a key/value format. This dynamic approach to the data structure allows us to evolve and transform the persistence of information without being constrained by the rigid conventions of relational systems. They are also platforms with a particularly good performance, both in reading and writing operations, having a very simple database engine, oriented to do only what is needed (List, Insert, Update and Delete), without heavy languages of exploitation as it is SQL, and avoiding having to support complex commands such as JOIN, GROUP, ORDER, etc. ​In summary, they are light, simple and fast. And, being a Cloud service that allows us to forget about managing scaling, high availability and data sharing; the platform itself being responsible for ensuring service agreements (SLA) of more than 99.99%.

The simplest, not the least powerful

​In the following table you can see the direct comparison of the three services:

The three magnificent

Using the own pages to calculate the prices of the three Cloud platforms, we have found that the costs are different for similar configurations: November 2017, 1Tb. of storage, in the CPD of Ireland, with the geographic replication by default. But these prices must be taken with care because there is a sustained war that allows for a constant (downward) variation of them; that each calculator requests different data to perform the cost forecast; and that the sections up to the first Gigabyte, are free in the three Clouds. Certainly, they are not going to be objective causes based on metrics of performance or of various volumetrics that should make us opt for one of these three magnificent platforms. They are really fast in both writing and reading operations, have a storage capacity that only has our budget limit, and availability, stability, and resilience are ensured by the Terms of Service. The documentation in all cases is excellent and very abundant in all the Cloud going a step ahead of Microsoft – which is making a Herculean effort to solve what was its weak point a few years ago. ​Google, in its favor, has that the Bigtable service is used internally in such demanding platforms as Analytics, Maps, Gmail, etc. confirming that it meets the expected characteristics.

Conclusion

In short, to choose between Tables, SimpleDB or Bigtable, what you have to do is look around: what is it that we know how to do, what we have to integrate with and what Cloud platform we want to work on best.Any of the three is excellent.