- Cloud Computing: Definition and Classical View
- DBaaS-A Special Case of Cloud Computing
- Services Applicable to DBaaS
- Architecture of an Oracle-Based DBaaS Implementation
- Business and Technology Benefits of Having DBaaS Enabled
- Great First Step for Transitioning into the Cloud
- Summary
Architecture of an Oracle-Based DBaaS Implementation
DBaaS started primarily as a consolidation exercise for reducing capital expenditures (CAPEX), but as it evolved, organizations started looking into other key drivers, such as self-service, showback, and chargeback. Before we look at the details of how to implement DBaaS, we need to have some understanding of the underlying consolidation models and deployment issues that are common to all DBaaS flavors and some of the terminology that we use when defining DBaaS.
Consolidation Models
The various consolidation models that can be used to provide DBaaS are shown in Figure 1.1. The simplest and most prevalent form of consolidation exists around server virtualization. Server virtualization offers a simple way of running multiple operating system instances on the same hardware. A better model, platform consolidation, consolidates multiple databases on the same operating system, or a cluster. However, in both cases, database sprawl is still an issue that invariably leads to larger administrative overheads and compliance challenges. An even better consolidation model is the capability to host multiple schemas from different tenants within the same database, using Oracle Database 12c’s multitenant architecture.
Figure 1.1 Consolidation models
Before we describe such methodologies, however, it is important to have a common understanding of the components that make up the underlying architecture.
Architecture and Components
In Oracle terminology, hosts containing monitored and managed targets are grouped into logical pools. These pools are collections of one or more Oracle database homes (used for database requests) or databases (used for schema requests). A pool contains database homes or databases of the same version and platform—for example, a pool may contain a group of Oracle Database 12.1.0.1 container databases on Linux x86_64.
Pools can in turn be grouped into zones. In the DBaaS world, a zone typically comprises a host, an operating system, and an Oracle database. In a similar vein, when defining middleware as a service (MWaaS) zones, a zone consists of a host, an operating system, and an Oracle WebLogic application server. Collectively, these MWaaS and DBaaS zones are called platform as a service (PaaS) zones. Users can perform a few administrative tasks at the zone level, including starting and stopping, backup and recovery, and running chargeback reports for the different components making up a PaaS zone.
In the DBaaS view of a PaaS zone, self-service users may request new databases, or else new schemas in an existing database can be created. The databases can be either single instance or a Real Application Cluster (RAC) environment, depending on the zones and service catalog templates that a user can access.
Diagrammatically, these components and their relationships are shown in Figure 1.2.
Figure 1.2 Components of a PaaS zone
Deployment Issues
Now that we understand the architecture and components that are used in the different consolidation models, let’s examine some standard deployment issues that need to be addressed. These include security, operational, resource, and fault isolation issues, as well as scalability and high availability. It is very important to understand that delivery services and the SLAs around those services will drive the actual architecture, design, and implementation. Therefore, architecture, design, and implementation also play directly into the chargeback and metering aspect of the services.
Security Isolation
Security isolation is often the first point that management worries about in any cloud model. Is my data safe? What options do I have for securing my consolidated infrastructure? How can I prevent the cloud database administrator from accessing and viewing my data? How can I ensure that my network traffic is secure? Can I ensure I meet compliance regulations?
With all of these questions, security isolation has become an essential component of any cloud deployment. Security breaches can arise not only externally but also internally, so all aspects of your cloud infrastructure must be secure.
Operational Isolation
Operational isolation in a DBaaS cloud requires that any maintenance being performed on a database or on the environment the database operates in affects the smallest number of other databases in the same pool. Meeting this requirement clearly becomes more problematic for operating system or grid infrastructure maintenance, though the impact can be minimized by rolling upgrades where allowed. Isolation for patching an Oracle database kernel can be provided by minimizing the number of databases per Oracle home, but adding Oracle homes also increases management overheads. Database startup and shutdown would normally be considered database-dependent operations, but administrative errors such as setting the wrong ORACLE_SID can lead to unforeseen impacts on other databases. Again, isolation can be provided at the ORACLE_HOME level and by having different user IDs and group IDs at the kernel level, but this also leads to more management overhead, and, it must be said, more likelihood of human error.
Resource Isolation
In a DBaaS cloud, resource isolation deals with the allocation and segregation of resources such as CPU, memory, network (public and private), and storage (I/O per second and overall capacity). Management concerns include questions such as How does the CPU usage of my database affect other databases in the DBaaS cloud? How much memory should I allocate to a specific database? Can I restrict the network utilization, both at the public network and interconnect levels, to not impact other databases? Likewise, how can I guarantee storage capacity and IOPS for my databases?
Fault Isolation
Fault isolation in a DBaaS cloud is normally provided at the database level, since that is the unit of granularity in the multitenant architecture. Each database and its associated instance (or instances, in RAC environments) need to be isolated from other databases. Even when all databases are run from a single ORACLE_HOME, database faults are normally isolated to a failing instance, so fault isolation is maintained by fencing off the offending instance. However, other failures may require handling at different levels. For example, concerns include how to deal with a server, network, or storage failure. Such failures are normally handled by some form of redundancy such as multinode setups, active/passive switches, bonded networks, or redundant storage such as Automatic Storage Management (ASM) redundancy.
DBaaS Scalability
Scalability is a fundamental characteristic of DBaaS architectures by virtue of their support for self-service, elasticity, and multitenancy. Oracle’s database technologies provide a number of ways to support scalability when delivering database services, including resource management and quality of service, addition of extra storage through functionality such as multiple Exadata Database Machine frames, horizontal scaling via RACs when service demands increase beyond the capabilities of a single machine, and scalable management resources where Oracle Enterprise Manager can add management nodes as the number of targets under management grows.
DBaaS High Availability
Not all consumers require the same level of availability in a cloud environment. Oracle’s DBaaS self-service catalog allows the capability to include different levels of availability using a metals model, as shown in Table 1.1.
Table 1.1 Availability Levels
Service Level |
Description |
Bronze standard |
Single instance databases/RAC One Node databases |
Silver standard |
Single instance with standby |
Gold standard (HA) |
RAC databases |
Platinum standard |
RAC with standby |
For example, the bronze standard provides a single-instance database service (possibly via RAC One Node), whereas the other extreme, platinum, would normally include a RAC database with multiple standbys. These standbys might include a near standby in the same data center as your RAC database and a far standby in a completely separate remote data center. These measures help to improve the high-availability and disaster recovery goals you have for that database. In Oracle Enterprise Manager 12.1.0.4, with the added support for Data Guard, you now have the ability with just a few clicks to provision the primary and multiple standbys across different data centers. The standbys can be either single instance or a RAC configuration.