By Franck Pachot

.
This post is not about technical limitations: Oracle Database is supported in most hypervisors (certified or not) so anybody can provide a DBaaS through a virtual machine as long as it run a supported OS, has enough CPU, memory, and storage, and open the required ports to access to the database (ssh and listener). But you cannot do what you want when you install a software, and you must agree with its licence terms. Who pays the Oracle Database licence then? And how to avoid to licence for all your servers in your Cloud datacenter?

Currently here are the possible solutions to host an Oracle Database in a Cloud:

  • OPC = Oracle Public Cloud
  • OCM = Oracle Cloud Machine
  • ACE = Authorized Cloud Environment

I’ll not use those acronyms anymore. I don’t like them. They have a different meaning for me.

The easiest solution for a customer that need a database service and can put his data into one of the Oracle data centers, is the Oracle Public Cloud. It’s provided by Oracle, so there are no doubts about the licensing terms. They don’t audit themselves I guess. And anyway, consolidation is done with Oracle VM, which is a virtualization technology that is accepted by Oracle LMS to licence on vCPU metrics.

However, for legal reasons for example, the customers may need to keep their data in their Country. Oracle will not have one datacenter in each country. And by one datacenter, I mean two of them as a disaster recovery site is a must when you care about your data. For this reason, Oracle comes with the possibility to move a part of their public cloud to the customer premises: the Oracle Cloud Machine. But that’s still for big customers as they have to host the infrastructure (rack, network, electricity) and it’s high availability.

There are a lot of hosting companies in each country which can provide Cloud services as in a virtual data center. Let’s say you are one of them and one of your customer wants tu run an Oracle database on the VM you provides. Or even better: you want to provide an Oracle Database as a Service. In licencing terms, it’s a bit more complex.

Let’s explain the two ways to licence your database usage here.

SaaS, PaaS, IaaS

An application requires the application software (example: the PeopleSoft ERP) which stores its data into a database (example: Oracle Database 12c), which run on a system with compute resources (CPU, memory), storage, network.

If you sell a compute service on the Cloud and your customer installs and manage the database and application software himself, you provide a IaaS service (infrastructure).
If you sell a database service on the Cloud where you manage the database software and the host, you provide a PaaS service (platform) and your customer installs and maintains the application himself.
If they don’t want to care about the platform, you provide an application service and this is SaaS (software).

Back to licencing, now.
In IaaS the customer probably wants a Bring Your Own Licenses (BYOL) approach. They come with the licences that they have purchased themselves, and want to use them for the database that they have installed on the IaaS service.
In PaaS they may prefer the Pay As You Go (PAYG). They create a DBaaS for a short term and pay for the hours of usage (usage means that the service is up – not necessarily that they are actively using it).
In SaaS they probably want the database usage to be embedded with the software usage and use same metric

CaptureLicencingDBaaS

In a Private Cloud – where hosting and usage are both within the same company – Oracle licences follow the standard agreements. The Edition and Options are chosen. The metric (processor or user) is chosen. And the company IT department can charge the service internally as they want: from usage (you monitor it) or fixed.

This is possible within a company: the users of the database service are the company users (employees, customers, etc.)

But if you want to become a Cloud provider for other companies, things are different. You are then doing Hosting. If you provide a Pay As You Go DBaaS, you – the hosting company – own the licences but you don’t use them. Your customer users are using the database.

Hosting

There are different rules for companies that are hosting a database for another company. The rules are documented by Oracle in: Oracle Technology Hosting

Here is where it says that the standard licence agreements – those that cover the licences you buy for the database that you use – do not apply in the case of hosting:
The standard Oracle license agreement allows the licensed customer to use the Oracle programs solely for its internal business operations. The customer is not allowed to use the licensed programs for the internal business operations of any other entity.

When you open the service to users that are not your users, you can’t use the ‘standard’ model and must get a ‘hosting’ model. The rules may be identical or different. You have to negociate them with Oracle sales. An example of a different rule came with Standard Edition 2. If you had Standard Edition, you can convert them to Standard Edition 2 for free (and you should do it to go to 12.1.0.2 or higher). However, this rule is for standard agreement only. For hosting licences, you may not be able to convert them 1:1

Back to the Cloud. If you provide your application as a cloud service, one solution is to provide an ESL (Embedded Software Licence) with your software. In this case, the customer owns the licence, which cover their internal business operations. But your customer can interact with the database only through your application. You must provide everything: administration, monitoring, backups, etc. This is perfect for SaaS.

When you want to provide Database as a Service (DBaaS), through PaaS, you need to negotiate a special agreement and price with Oracle.

Cloud

Besides the Oracle Cloud Services, some other big Cloud providers have negociated an agreement (Authorized Cloud Environment) with Oracle in order to be able to provide DBaaS for Oracle Databases. Those are listed in the following document: Licensing Oracle Software in the Cloud Computing Environment

  • Amazon Web Services: Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (S3)
  • Microsoft Windows Azure Platform

Another Authorized Cloud Environment has been signed with Verizon. It is currently not listed in the above document, but is explained on the oracle website: http://www.oracle.com/us/corporate/features/oracle-verizon/index.html

If you are not one of Amazon, Azure, Verizon or Oracle Cloud Services, you have to negotiate a hosting agreement with Oracle.

There are two ways to licence the Oracle DBaaS in those Clouds.

Bring Your Own License (BYOL)

If you provide IaaS, your customers have their own licences (ESL, ASFU, FU, ULA,…) and they can use them to install and run Oracle Database on their compute service that you have provided to them. However, you probably didn’t dedicate network, storage and servers to them, just to match their licences. And they don’t want to licence for all the processors you have in your data center. Only few hypervisors are accepted for counting only the virtual CPU allocated to a machine that is running Oracle Database. If your virtualization technology is not listed in the (in)famous Oracle Partitioning Policy you will need a special agreement there.

It’s easier with user licences (NUP) than with processor licences, but you have still to take care of the minimums: 25 NUP per processor in Enterprise Edition, 10 NUP per server for Standard Edition 2. The customer pays the licences and may be impacted by the fact that you add some servers in your data center. Besides the number of servers, be careful not to have more than 2 socket servers or you will not be able to host any Standard Edition 2.

Only a proper agreement with Oracle will allow you to lower the risk for your customers in case they have LMS audit. If you don’t the changes you don on your data center may impact the conformity of your customer licences.

Pay As You Go (PAYG)

Cloud Services are for higher agility and lower upfront costs. The BYOL model is probably not what is expected by your DBaaS customers.
When your customers wants to subscribe to a database service, as with a pre-paid card, you need to provide Pay As You Go operational-only costs. They can be subscribed for a short-term. They can be charged on vCPU. This is a good choice for short projects.

In this case, you, the cloud provider, own the licences and bills his customers according to metered usage. If you want to go there, you will probably dedicate servers to Oracle Database. Be sure to isolate them at maximum so that Oracle LMS will not be able to consider that the software is installed everywhere. Even better: use a different hypervisor and why not Oracle VM. Oracle appliance may be a good idea for that with Capacity on Demand. You activate more CPU when you have new customers.

However, as Microsoft and Amazon did, you can find an agreement with Oracle so that only vCPU are counted and you can transparently charge your customers on the same basis.

As an example, here is how the vCPU equivalent to processor metrics.

For Enterprise Edition in a Authorized Cloud Environment each vCPU is counted as a core. And the core factor applies depending on the processor model.

For Standard Edition 2 where the processor metric is a socket, here is the equivalence:

  • 1 socket for 1-4 vCPU
  • 2 socket for 5-8 vCPU
  • 3 socket for 9-12 vCPU
  • 4 socket for 13-16 vCPU

If you have several SE2 instances that need less than 4 vCPU then you should try to consolidate into 4 vCPU instances.
If you have instances that requires more than 16 cores, then Standard Edition is not the right edition. Anyway, SE2 instances cages CPU usage to 16 threads.

Conclusion

Once you’ve got the agreement with Oracle, you can provide DBaaS. You host the database and you administrate it. Obviously, as a long term IaaS provider, you are specialist in the administration of the infrastructure, the virtualization and the operating systems. But with PaaS you need many more skills. With DBaaS you will administrate the database 24/7. So don’t forget that we can help with our ISO2000 FlexService SLA.