To DBaaS or Not to DBaaS?
To DBaaS or Not to DBaaS?
Is DBaaS (Database as a Service) really able to completely replace the DBA? This article can help you shape your opinion.
Join the DZone community and get the full member experience.Join For Free
MariaDB TX, proven in production and driven by the community, is a complete database solution for any and every enterprise — a modern database for modern applications.
According to a new forecast from the International Data Corporation (IDC), total spending on IT infrastructure products (server, enterprise storage, and Ethernet switches) for deployment in cloud environments will increase 15.3% year-over-year in 2017 to $41.7 billion.
Gartner Inc., a leading research and advisory company, predicts that the public cloud services market will grow 18% in 2017 to $246.8B, while it was $209.2B in 2016. In the cloud world, Infrastructure as a Service (IaaS) is predicted to have highest growth rate from 36.8% in 2017, making a total of $34.6 billion. Cloud application services (Software as a Service, or SaaS) are predicted to grow 20.1% to reach $46.3 billion.
According to an IDC white paper sponsored by Salesforce, the app cloud delivers 520% ROI through the below advantages:
70% accelerated time to market.
80% more apps launched.
75-85% reduction in infrastructure costs.
In IT, cloud computing has now become a major influencer, with a 4.5x higher growth rate than IT spending since 2009. The expected increase in growth rate for cloud computing is six times the rate of IT spending from 2015 to 2020. IDC also states that worldwide spending on public cloud computing will increase from $67B to $162B for the period 2015 to 2020.
DBaaS (Database as a Service) and Cloud
DBaaS is a cloud-based database storage, utilization, administration, and management service that uses a cloud infrastructure for implementation. It is managed by a private or public cloud operator as a metered service. Like any other cloud services, DBaaS is also a provision of database instances in server containers and is provisioned by the user according to their needs and requirements. Accordingly, the user needs to pay for only what they use, including storage and other resources. DBaaS has many advantages compared to in-house database implementation, mainly in terms of deployment, availability, security, latency, reliability, and scalability.
Rapid and user controlled provisioning, automated and centralized management, elastic capacity, etc. are made possible through implementation of DBaaS using the concepts of database containerization and spawning of pluggable tenant databases like that of the Oracle Cloud.
The Rise of DBaaS
MarketsAndMarkets is forecasting Cloud/DBaaS market to grow from $1.07 billion in 2014 to $14.05 billion by 2019 at a compound annual growth rate (CAGR) of 67.30% during the forecast period of 2014-2019.
ResearchAndMarkets, in their report Global Database as a Service (DBaaS) Market 2016-2020, forecasts the global database as a service (DBaaS) market to grow at a CAGR of 65.49% during the period 2016-2020.
A conventional internal technology infrastructure needs to allocate hardware/software resources, budget, and time for deploying and managing the database system for each project. This is to be duplicated for the development/testing/production environments. The resulting overhead in terms of cost, space, effort, and resources are eliminated in DBaaS due to the service-oriented architecture that allows elasticity, resource pooling, and automation. DBaaS provides production and non-production database instances and their service is never affected by resource/budget limitations.
For the customer, the overhead of typical database administration tasks (DBA) needed with multiple independent database deployments are avoided in the case of DBaaS because of the cloud-based automation provided by the centralized database management application. Accordingly, the responsibilities of the user are limited to only a few functional areas like requirement definition, application implementation, connectivity to the database instances, grabbing the analytic reports for QoS measurements, etc. All other intense and dedicated tasks like configuration, optimization, provisioning, backup, security, monitoring, networking, automation, upgrades, maintenance, etc. are performed by the DBaaS service provider’s automated database management system.
To Use DBaaS...
The following are some of the factors are to be considered to make a decision about consuming a DBaaS service:
Are you finding it tedious to create and manage separate databases or database servers for each of your technical entities (development, testing, production, etc.) and for each of your projects?
Are database-related costs rising disproportionally to other costs, negatively affecting ROI and profit?
Are you finding it difficult to find suitable and compatible hardware/software resources for your database needs?
Is your HR department struggling to find the right DBA professionals?
Is your data growing, causing you to worry about performance and scalability?
Are you looking for enhanced security, backup, and maintenance solutions that don't raise your costs?
If you answered "yes" to the majority of these questions, a DBaaS solution may be the right choice!
Or Not to Use DBaaS?
You shouldn't use DBaaS in the following circumstances.
You don’t want separate databases for separate environments or projects, or you can manage the requirements with the in-house allocations.
You have exceptional DBA capabilities to manage your internal database ecosystem.
You don't expect growth (whether it's data or capabilities) that are unmanageable through your in-house provisions.
You have a well-established and linearly growing database system that you can afford.
Neither your business nor your data requirements are geo-wide enough to look for a distributed system.
It's notable that many developers and firms are either suspicious or are fearful about using DBaaS in production. Do you think the same way?
What About My DBA?
Database administrator(s) managethe entire administration and management of a company/firm’s database system, often with the help of software. Their responsibilities typically include, but not limited to, the following:
Prepare database installation environment in the server; install and configure database(s). Import/export of data, as well as user management.
Implement and enforce security at the server level and database level. Adjust or allocate computing and memory requirements as and when needed.
Create additional databases including users as needed. Upgrade database in tandem with new releases to accommodate bug fixes and performance enhancements with new releases.
Maintain server and database hardware/software compatibility. Enforce high availability and easy provisioning.
Continuously monitor database and server performance to identify issues and bottlenecks and take remedial actions promptly; monitor and review database/server logs regularly to identify any misconfiguration or discrepancies.
Set up/automate backup schemes. Perform recovery/restore proactively. Manage complex procedures like replication, virtualization etc. when data requirements rise.
Keep watch on changing technologies in database ecosystem to move along with market requirements.
DBaaS scheme provided by ClusterEngine.me
With DBaaS, you basically have a DBA. There is no such thing as being out of resources because you are always consuming only a portion of a vast pool. Whether there is a momentary spike in resource usage or a continuous requirement for more resources, it's simply a matter of deciding how much you need to have done.
There are no costly hardware/software purchases, compatibility checks, or chains of dependencies to be solved. There's no worrying about backup crons, hardware/OS failures, system upgrade downtimes, or firewall rules. All the headaches are safely handed over to the hands that are dedicated to deal with these tasks.
You are provided with a control panel for all kinds of optional tasks in addition to much-needed analytics and statistics. You can examine logs, performance, traffic, and resource usage to make decisions about scaling out or other business/technical decisions. You can select which parts of the DBA role that you want to handle yourself. You simply make decisions and your provider does the rest. And if you are keen to play a more active role in this setup other than the automated and centralized DBA tasks, you can analyze the slow query log provided by the provider and optimize your queries for further speed and optimization.
So what do you think? Is DBaaS really able to completely replace the DBA?
Opinions expressed by DZone contributors are their own.