It is difficult to arrive at a single definition of cloud computing, although for simplicity it can be reduced to on-demand services of provisioning computer network resources; which includes, but not limited to servers, data storages, computing power, software, networking and virtualisation over the cyberspace. In other words, the cloud is the revolutionised server farms (data centres), which are hosted by giant infrastructure organisations such as Google, Amazon, Azure, IBM, Alibaba, or VMware. Before we proceed with the topic, let us try to demystify database management and how it was handled Before Cloud (BC).
WHAT IS DATABASE MANAGEMENT
The transition from analog to digital data was so rapid that it has become a rigorous task to manage the new-era data. Analog data can be referred to as information that is measured, whereas digital data is a fact that can be counted and recorded digitally. The collection of these digitally recorded facts creates a database that must be managed and maintained. Database management is a system or software that is responsible to manage and maintain that database. The primary responsibilities include storing and protecting user data, which means that it can be inferred that security is the primary concern.This means that the deployment of the servers needs to be carefully studied and planned. There are two environments on which a database system can be implemented: on-premise and cloud. We would be discussing the first one in the following lines.
One would agree that cloud has revolutionised business success, but before we get to the cloud point of view, let’s look at the capital expenditure (CapEx) and operating expense (OpEx) that a company must make to implement the systems on-premise. By evaluating the two expense categories: CapEx and OpEx, one could forecast the total cost of ownership (TCO) for hosting database systems on-premise.
CapEx - This is a one-time, non-recurring expense which is made to purchase a tangible asset, in this case, equipment or non-consumable parts for the product or system.
OpEx - The following categories needs to be considered to predict the TCO of on-premise database management systems:
1. Server Costs
This covers hardware and software costs that can be classified into CapEx and OpEx. The hardware maintenance cost should also be included and calculated under this line. One drawback to consider is time-consuming hardware acquisition initially establish the foundation or upgrade the existing configuration.
2. Storage Costs
The cost of storage depends on the type of storage - SAN, NAS, DAS or Object along with the amount of storage capacity required. Another additional factor that can alter the cost is the disk type between SSD or HDD. Again, upgrading the storage capacity cannot be done on the fly.
3. Network Costs
This category isa fixed percentage, which is directly proportional to the hardware and software costs along with the bandwidth required. The bandwidth rates depend on the service providers.
4. Energy Costs
The power supply required to run the servers and cooling equipment. This becomes redundant if the user decides to co-locate the racking space for servers. As the colocation centres usually group the energy and network costs in their prices.
5. Placement Costs
This is optional and completely depends on the user whether to rent a “U” known as a rack unit. The rental of the appropriate number of rack units depends on the hardware specification. Most of the time, the colocation also includes bandwidth, IP addresses, and energy costs.
6. IT Labour Costs
Again, this is an expense that can be classified as OpEx, as it can vary from company to company. This can include a database designer, database administrator, network/ server/ virtualisation administrator.
For illustration, we will calculate the on-premise cost for a company that would like to host a database system. There are many permutation and combination that can be applied between on-premises or colocation versus physical servers or virtual machines. Amazon has made our lives easy by providing a TCO Calculator (Total Cost of Ownership) which has been used for the estimates below. The following breakdown of TCO is calculated excluding the overhead cost which may include facilities and operating costs. The scale of the company referenced is medium.
Cloud Deployment (Benefits)
Cloud is one of the most trending environments where companies like Uber, Flipkart, among others, are making the most use of it. These companies only provide a cloud platform for consumers and sellers, and they are making a fortune, just by playing with the data online. Let’s understand hosting or migrating database management systems to the cloud is beneficial. To do this, we need to understand the characteristic of the cloud, which is favourable for database systems. There are plenty of database systems, but we would talk about the most relevant ones: Elasticity, No Capital Investment, Pay-as-you-go-model and High Availability. Apart from the characteristics, there are other advantages such as enhanced security, reduced load on the DBAs and lastly, access from anywhere.
Characteristics of the cloud
Elasticity is one of the main advantages of hosting your database in the cloud. It can be understood as one of the cloud mechanisms that adopts the load on the servers by up-scaling or down-scaling of the resources. This feature is directly coupled with pay-as-you-model where you only pay for the resources you use and discard it if the load reduces. All the resources are available on the fly which usually takes months to set up new hardware in non-cloud-based habitat. However, cloud providers can scale hundreds of servers within minutes.
Zero Capital Investment:
Another important benefit of hosting your database on the cloud, where you, as a user, do not need to purchase hardware before running your database software. So, low hardware cost required with zero on-premise/ in-house servers. This means it directly reduces the capital expenditure (CapEx) and thus has a positive impacting on the total cost of ownership (TCO). A detailed explanation of TCO is in the latter part.
Compared to on-premise hosting, a very low cost is required in setting up and configuring the database. Additionally, all the licenses required to host your application could either be purchased as a long-term investment or purchased as a short-term investment as a subscription-based license.
This is one of the coolest features cloud could ever provide. As the name suggests, you only pay for the resources that you use, be it hardware, storage, bandwidth or networking.
It charges the users based on their requirements and usage. This means that your server’s resources would never be over or under-provisioned. Whereas on-premises, you would need man power to architect the data storage to handle maximum load which can result in wastage of resources.
This is another benefit of DBaaS which technically falls under the umbrella of PaaS, where the user does not have the administrative control of the infrastructure. This benefit remains debatable as some of them find it unsafe to not have the physical control and access of the hardware and are unsure if their data is completely protected. Whereas for the other half, it is one less topic to stress about as it becomes the cloud service provider’s responsibility to take care of the basic security of the underlying infrastructure. Other enhanced security features due to which users prefer DBaaS are database encryption, authentication, digital signatures, contractual agreements, etc.
When we talk about high availability on the cloud, there doesn’t exist a magic wand which would provide HA on the fly. It is a characteristic of a cloud-server for an application to be available for the maximum amount of time which depends on different cloud service providers. Please refer to the table below which showcases the impact of nines on downtime in a year:
Reduced load on the DBAs:
This is great news for all the database administrators, which is usually confused by the concept that once we choose database as a service, the need for DBAs gets eliminated. In an ideal scenario, most of the administrative work like installation, upgrades, patching, allocation, instance-level configurations, memory management, availability (uptime), or infrastructure design that involves setting up the storage and database server instance, is now handled by cloud database providers. Whereas the fashionable DBAs are now responsible for automation, data migration, optimising and tuning queries, monitoring resources, enhancing security and lastly, budget management.
Access from anywhere:
When hosting your database on the cloud, you can access the server from anywhere via native applications for PC, MAC, Android, iOS or any web browser. However, the only disadvantage is that the user might not have the full ownership and control over the systems where their database is host.
On the other hand, if the database is hosted on-premise, then the user needs to be physically present in the office premise to enter the private network to access the database as most of the companies don’t want to enable a public door for the database for security purposes. If not, then it can also be accessed remotely but would require third party support and additional manpower to increase the security.
· The user does not have full ownership and control of the physical machine on which the database is being hosted
· The user does not have full ownership and control of the physical machine on which the database is being hosted
· DBaaS falls under PaaS, which is not as flexible as IaaS where you lose the administrative rights to create or delete the virtual machines on the fly
· As the database can be accessed from anywhere, security becomes one of the major concerns
· The security of the infrastructure is handled by the cloud service providers, whereas the user still has to secure their application and/or database on the cloud
· The word ‘customisation’ gets removed from the dictionary when it comes to hosting a database in the cloud
· There is a size limitation, up to which you can up-scale your DBaaS instances. The cloud service providers mostly do not offer unlimited storage scalability
We have already discussed the expenses a company has to incur to host the database systems on-premise or by collocation. Now, let’s compare this with the cost that it would require if we change the environment variable to ‘Cloud’. There are two ways to host a database system on the cloud, we’ll be calculating the cost for only one of the ways, which is by renting out the infrastructure and hosting your require application on it which is database management systems in this case. The cost below was calculated for AWS EC2 instance r5. 2xlarge where the cost of energy, racking and cooling has been replaced by AWS support. The scale of the company is medium.
An organisation could save approximately 45% by moving your infrastructure to the cloud. For calculation purpose, IT labour cost is debatable as it varies from country to country. Thereby, keeping it constant for all three environments would make it a redundant variable. Although, it is believed that the IT labour cost could be reduced even further in the cloud environment as the load on DBAs is reduced. Finally, if we opt for the second way of hosting database systems in the cloud, which is by renting the database platform as a service rather than as an infrastructure. Then the cost can be further reduced depending on the size of the platform and its other cost that affect the variables.
PaaS OR DBaaS
When it comes to the cloud, there is always a bit of confusion between IaaS and PaaS. IaaS is more popular as compared to the other, yet, the below bar chart shows the exponential growth/ popularity of PaaS since the year 2016.
When it comes to hosting the database on the cloud, you can do anyway, either infrastructure as a service or Platform as a service. Preferably, the latter one is more favourable and trending when it comes to hosting your database in the cloud, as it is cheaper, reliable and does not need special resources to design the architecture of your IaaS cloud model. In DBaaS, it combines the basic VMs as infrastructure from IaaS with a preconfigured software from PaaS to create a platform to run your database.
A typical example of PaaS would be a bunch of preconfigured VMs with a multi-tiered application stack which includes frontend web servers, application servers and lastly, database servers. Whereas, on the other hand, DBaaS is a cloud database which is hosted by numerous cloud service providers over public could network and can be rented at a price. The user opting for this service has a monetary benefit over capital investment, procuring hardware/ software, installation, and maintenance of the system.
Above is the comparison of different cloud service models, although a bit irrelevant to the topic, which shows the many blocks that need to be managed by customers and cloud service providers. Back to the topic, as we know that database in the cloud can be hosted by IaaS or PaaS/ DBaaS. You can see that are several things to consider when it comes to IaaS viz. OS, Databases, Security and Applications. To make it less complicated and cost-effective, it is always preferable to choose PaaS/ DBaaS where the only thing that you as a customer must manage is application.
It is an undeniable fact that the companies irrespective of their size and revenue are migrating to cloud and adopting it, there is no doubt that DBaaS is here to stay. There is almost a monetary growth of more than 200% for PaaS in the last five years. An annual growth of more than 67% in DBaaS shows that more and more companies are moving towards database as a Server or database management in the cloud.
Here at The Migration Company, we have an extensive team with hands-on expertise in designing and managing cloud-based infrastructure to deliver the required performance, security and availability requirements for different cloud. If you would like to migrate your existing database or even host a new one in the cloud, feel free to reach out for a seamless experience.
Author: Maheem Bhatia
1. Abadi, Daniel. (2009). Data Management in the Cloud: Limitations and Opportunities. IEEE Data Eng. Bull.. 32. 3-12.
2. ValueProposition of Cloud Computing, <https://sacherpartners.wordpress.com/2011/11/23/value-proposition-of-cloud-computing/>
3. 2013 Cloud Computing Explained by John Rhoton
4. Oracle, Database as a Service Reference Architecture – An Overview, October 2011, WhitePaper
5. ApplicationSecurity INC, Database Security in the Cloud, 2012, White Paper
6. Imal Sakhi. (2012). Database security in the cloud