DBaaS, or a database cloud, is becoming a very popular concept with organizations of all sizes across the spectrum of industry. Placing database infrastructure concerns with the DBaaS provider frees an organization’s IT and technology departments to focus at an organization level rather than at an application or department level. With the focus at an organizational level, the IT and technology teams are more closely aligned with the organizational and business needs. The fundamental requirements of an organization have never really changed—they have always aimed for lowered operational expenses (OPEX) and total cost of ownership (TCO). What has changed is the emergence of new platform architecture and software technologies that, working together, deliver on those needs. The opportunity to reduce OPEX and TCO is precisely what is driving the improved acceptance and adoption rate of DBaaS.
Let’s look at some of the intrinsic benefits of deploying DBaaS, which include the basic benefits associated with any cloud solution:
- Time-to-market: The nimbleness with which a company reacts and adapts to changing market conditions, competition, and consumer needs and expectations is critical. A core component of any cloud solution is self-service and automation. With a well-planned cloud solution, there is no need to deploy hardware for new projects, and with self-service and automation, the business units become more self-reliant.
- Scalability: The combination of inherent concepts of elasticity, consolidation, and resource pooling at a wider organizational level drives scalability in a cloud computing environment. For custom built solutions, the value and benefit of this automatic scaling is even more potent and impressive.
- Empowerment: Cloud computing solutions typically have a web-based interface for users. They can be accessed by employees, customers, and partners no matter where they are. With a cloud database, everyone gets to work with the same set of information, and spreadsheet chaos is a thing of the past.
- Availability: Combining the benefits of standardization (hardware, software, procedural best practices) and empowerment (self-service, on demand scalability) automatically delivers improved availability.
Let’s go a step further and look at why databases are worthy of their own class in the cloud solution world. We do not see phrases such as “application servers as a cloud” or “web servers as a service” or “exchange servers as a service.” Logically and technically, these concepts can exist, but they do not. Why is that?
Databases are used to store data. As we are all aware, the amount of data being generated, used, and stored is growing exponentially. This ever-growing volume of data needs to mined and analyzed to generate intelligent, actionable information. Now, more than ever, data means everything—it drives financial, operational, and tactical decisions and strategies in every business. But along with all this data come the headaches of tasks such as managing performance, scaling capacity, and backup and recovery strategies.
Databases are often considered the single point of serialization of application processing and logic, usually because application design is not focused on how databases work or the best way to use them. What this means is that designing, managing, and performance tuning databases represents a unique set of skills and talents.
From a computing perspective, resource consumption characteristics and performance needs of a database are unique in nature. Databases, especially untuned databases, can be resource hogs when it comes to storage, CPU, and network resources.
Scaling of databases also presents unique challenges. Scaling can directly impact expenditure on multiple components of the platform and infrastructure, including on the storage subsystem (due to storage volume or performance) and on throughput (in IOPS or MBps).
Database are a complex component of the application stack. Consequently, the underlying database technology can potentially have a severe impact, positive or negative, on the overall scalability, availability, business continuity, and performance aspects of any given application. When the applications in question are business critical and/or revenue generating, the potential for impact makes the databases a very visible, highly scrutinized component.
From an economics perspective, databases can prove to be one of the costliest, if not the costliest, component of any given application deployment. The database’s application stack, for example, can drive the overall solution cost in the following ways:
- Database licensing costs and annual support costs.
- Database-specific infrastructure costs, especially those driven by performance initiatives, such as high-performance compute servers, high-performance storage, and in some cases even high-performance networking.
- Staffing and resourcing costs for maintaining the database (design, administration, performance tuning, etc.).
- Cost of high-performance backup management, storage systems, and infrastructure based on the uptime, recovery point objectives (RPOs), and RTO expectations. (In today’s age of data explosion, databases tend be quite large, and database backup and recovery becomes key.)
Cloud computing, as a concept and a solution, is aimed at resolving these economic concerns. When you add the uniqueness of databases to the mix, you can see the value of deploying a database cloud, or in other words, deploying a DBaaS solution.
Great First Step for Transitioning into the Cloud
Moving an organization’s IT infrastructure from the old server-based model to a cloud-based model can be a daunting task, regardless of whether the destination is a private cloud or a public cloud. Implement a cloud solution on a very focused, self-contained technology stack, such as database technology, can be a very useful first step into cloud computing.
The toolkit available for database technologies is wide, extensive, mature, and multivendor in nature. The same is true for the infrastructure components, such as the server, storage, and backup infrastructures. Dedicated, fully contained, engineered appliances have been a part of the database technology stack for a while now.
Another key aspect to consider is the significant amount of automation that exists in the database arena. This is primarily due to the unique and complex nature of databases plus the sizes of the databases that are common nowadays.
Security is an important aspect of any cloud solution and is yet another consideration that has long been a part of any overall database solution. Databases have their own dedicated security model that is very mature and can fairly easily integrate into the larger organization model (single sign-on [SSO]- and Lightweight Directory Access Protocol [LDAP]-based authentication and integration, etc.). Database security models have matured to include data encryption for data backups, data at rest, as well as data in flight.
Finally, the amount of data existing within organizations is huge, and its rate of growth is exponential. Almost every application deployed will need a data repository or data store of some type. This growth in data must be supported by corresponding growth in infrastructure.
The combination of the mature toolkit, the engineering inherent to database solutions, the preexisting automation especially in the administration aspects of databases, and the existence of a mature security model provide a solid foundation upon which organizations can build and deploy their first cloud solution.
The existing domain knowledge and the highly experienced skill set available provide the technical basis for learning and fine tuning the various aspects of cloud computing.
According to some reports and surveys, database technology–related expenditure for midsize to large-size companies can be up to 40 percent or more of the annual IT budget. Having a defined organization-wide strategy for databases will help organizations manage the growth of data and at the same time keep database costs down. Considering that databases can drive up to 40 percent of the IT budget makes the database a very attractive focus area to use to kick off cloud computing as a long-term IT strategy.
Main findings about DBaaS implementations
Cloud computing is a generic architectural concept that encompasses the entire gamut of technology as it relates to infrastructure. Cloud computing is more than just another fancy term for “virtualization.” All of the new “as-a-service” models are implementations of cloud computing. Infrastructure, platform, database, software, network, and storage as a service all are implementations focusing on specific concepts of the technology stack within infrastructure. These terms are sometimes used interchangeably, but in reality, cloud computing is a concept, whereas the as-a-service models are implementations.
The very definition of “cloud computing” has introduced a fundamental change in thinking when it comes to ownership, roles, responsibilities, and expectations. This is not to say that ownership, roles, responsibilities, and expectations were missing or lacking before the advent of cloud computing. They have always existed, but cloud computing has change the lens through which they are seen.
Introducing the core concept of “service” into the overall architecture brings about these changes. We saw that in order to deliver a service that is meaningful, cloud computing had to introduce “elasticity, flexibility, and rapid and easy deployment” into its core concept and architecture.
DBaaS implementations are not much different from other cloud implementations. Database clouds have some unique challenges when it comes to cloud implementations, driven by their complex and temperamental nature. We need to understand these core concepts specifically as they apply to databases in order to deploy a successful and meaningful DBaaS.
This chapter is the beginning of understanding the cloud computing framework, specifically when it comes to database clouds or DBaaS.