Database as a Service Concepts-360 Degrees
Oracle technologists explain the cloud computing implementation as it relates to database as a service (DBaaS). Cloud computing encompasses the IT infrastructure resources, which include networks, storage, servers, applications, and services. DBaaS is a subset of the overall cloud concept, specifically focused on the last two resources, applications and services.
To understand the basic principles and concepts of database as a service (DBaaS), we must understand the meanings of both database and service and how the two interact. We also must understand the relationship between cloud computing and DBaaS. Cloud computing encompasses the IT infrastructure resources, which include networks, storage, servers, applications, and services. DBaaS is a subset of the overall cloud concept, specifically focused on the last two resources, applications and services.
The goal of this chapter is to explain the cloud computing implementation as it relates to DBaaS. Although the concept of DBaaS is generic, this book focuses on using Oracle technologies to implement DBaaS.
Cloud Computing: Definition and Classical View
The National Institute of Standards and Terminology (NIST) defines cloud computing1 as follows:
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. [emphasis added]
This definition articulates the service goals that a cloud computing environment is expected to deliver:
Ubiquitous: The resources are available and ready for consumption.
Convenient: The consumer has easy access to the resources.
On demand: Resource requests need not involve resource approval and acquisition tasks.
Shared pool: The resources are shared, not dedicated, which provides mobility and flexibility in terms of assigning resources.
Rapid: The time window between a resource request and its fulfillment is shortened or eliminated.
These service goals drive the physical implementation of any cloud computing model. Specifically, they provide the basis for the following core aspects of any cloud computing model, which are also interdependent on each other:
Roles applicable within cloud computing—Who is sharing the resource pool?
Cloud type from an infrastructure persepctive—What is the shared resource pool, and how is it deployed?
The security framework within a cloud computing model—What are the basic rules that govern how the resource pool is shared?
Let us first look at roles within a cloud computing model. There are primarily two roles: end user and provider. The end user is the entity that uses the hardware resources and associated services that exist in a cloud environment. The provider is the entity that owns the physical hardware and infrastructure resources and is responsible for the services associated with delivering these resources to the end user.
Next, we look at the three types of cloud computing models prevalent: private, public, and hybrid.
Private cloud: A cloud infrastructure provisioned for exclusive use by a single organization or entity, maintained by the entity and within the entity’s network. The roles of provider and end user are represented by different groups within the entity.
Public cloud: A cloud infrastructure provisioned in the public space such that multiple entities can use the infrastructure simultaneously. The provider is a third-party service provider that supports multiple clients or entities in the end user role.
Hybrid cloud: A combination of the private and public cloud models.
The security model in a cloud environment must include the capability to define roles, responsibilities, and separation of duties for both the provider and end users. As a part of the overall cloud deployment model, the provider must develop, implement, and support a security system with proper access and privileges grants and administration in place.
The security requirements on all cloud environments follow the same basic model, with the difference that in a public cloud, the security controls have to be much wider and more stringent than in a private cloud. The security framework in both the public and private cloud models must also address data security and privacy protection between the provider and end users.
For public clouds, however, security usually requires a much stronger encryption algorithm than used in a private cloud as well as sufficient networking bandwidth to meet public needs. Furthermore, the administrator role at a provider is focused on managing the underpinning infrastructure of the private cloud itself.
To be able to define and create such a security framework, it is important to understand the roles associated with who is using the cloud. Once we understand who is using the cloud, we can translate that knowledge into requirements around access levels, roles, responsibilities, and separation of duties. Following are examples of these requirements:
The role of a provider’s cloud administrator is to manage the underpinning infrastructure of the cloud offering itself.
The subscriber administrator role is filled individually by each subscriber entity on a cloud. The subscriber administrator manages resources and privileges for his or her own organization.
The end user role applies to a specific user within a subscriber entity that requests and uses a subset of the resources.
To understand the impact and implementations of the security framework in a cloud environment, we also need to understand the models in which cloud services may be deployed. There are three main models:
Software as a service (SaaS): SaaS allows the consumer to use the provider’s applications running on cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure—not the network, servers, operating systems, storage, or even individual application capabilities—with the possible exception of limited user-specific application configuration settings.
Platform as a service (PaaS): PaaS allows the consumer to deploy any software or application onto servers deployed on cloud infrastructure. These applications may be consumer-created applications or consumer-acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
Infrastructure as a service (IaaS): The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications and possibly has limited control of select networking components (e.g., host firewalls).