Azure : Oracle Licensing changes in 2017

Introduction

A question that I often receive is what about Oracle in the cloud? Because their license politics is far from virtualization friendly. The good news is that the policy is very clear in terms of cloud ;

Microsoft Azure – count one Azure CPU Core as equivalent to one Oracle Processor license.

The ugly thing is that since the end of January, the following statement was added ;

When counting Oracle Processor license requirements in Authorized Cloud Environments, the Oracle Processor Core Factor Table is not applicable.

Today’s post is to take a look at the licensing and how the current model (of 2017) impacts Azure customers.

Continue reading “Azure : Oracle Licensing changes in 2017”

Azure & Oracle : Match in heaven or a disaster waiting to happen?

There is a partnership!
Let’s start this post with the statement that Oracle & Microsoft have formed a partnership to run Oracle software (Java, Database, Weblogic, …) on Azure. (Source : Here & Here)

Licensing
Let’s be honest… Oracle licensing is one of the most dreadful in the business. So your first question will probably be ; “How do they license cloud platforms when virtualization is currently seen as a disease from an Oracle point-of-view?”

The following statement provides more insight ;

This policy applies to cloud computing environments from the following vendors: Amazon Web Services – Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (S3), Microsoft Windows Azure Platform (collectively, the ‘Authorized Cloud Environments’) .

For the purposes of licensing Oracle programs in an Authorized Cloud Environment, customers are required to count each virtual core as equivalent to a physical core. This policy applies to all Oracle programs available on a processor metric.

When licensing Oracle programs with Standard Edition One or Standard Edition in the product name, the pricing is based on the size of the instance. Authorized Cloud Environment instances with 4 or fewer virtual cores are counted as 1 socket, which is considered equivalent to a processor license. For Authorized Cloud Environment instances with more than 4 virtual cores,
every 4 virtual cores used (rounded up to the closest multiple of 4) equate to a licensing requirement of 1 socket.

Bring-your-own-license or Pay-as-you-go?
So how can you license Oracle? You have the “bring your own license”-model or the “pay-as-you-go”-model. An important sidenote to consider, is that with the “pay-as-you-go”-models… The 3th party vendors (Oracle in this case) will be directly charged and will not be “fed” from your Azure credits. Why is this important… If you are running a trial account (or similar), than this may be an additional expense as the Oracle (or any other 3th party vendor for the matter) license will be charged directly to you.

Can I use my 30-day free trial credits to purchase Oracle software?
No, you can’t. If you want to use Oracle software during your trial, you need to turn off the default €0 spending limit feature and pay standard ‘Pay as you go’ rates. Otherwise you’ll hit your spending limit and your subscription will be immediately disabled.

Source : Virtual Machine Pricing Addendums

Oracle Virtual Machines in the Marketplace
A lot of virtual machine setups have already been prepared for you… Check the following article for more information : List of Oracle Virtual Machine Images

GOTCHA!
What are the considerations you should keep track off?

  • Clustering (RAC) is not supported : Azure does not currently support Oracle Database clustering. Only standalone Oracle Database instances are possible. This is because Azure currently does not support virtual disk-sharing in a read/write manner among multiple VM instances. UDP multicast is also not supported.
  • High Availability and Disaster Recovery Considerations : high availability and disaster recovery for Oracle Database Enterprise Edition (without RAC) on Azure can be achieved using Data Guard, Active Data Guard, or Oracle Golden Gate, with two databases in two separate Virtual Machines (VMs). Both Virtual Machines should be in the same cloud service and the same virtual network to ensure they can access each other over the private persistent IP address. Additionally, it is recommended to place the VMs in the same availability set to allow Azure to place them into separate fault domains and upgrade domains.
  • JDK 6 and 7 latest updates : While it is recommended to use the latest public supported version of Java (currently Java 8), Azure also makes JDK 6 and 7 images available. This is intended for legacy applications that are not yet ready to be upgraded to JDK 8. While updates to previous JDKs may no longer be available to the general public, given Microsoft’s partnership with Oracle, the JDK 6 and 7 images provided by Azure are intended to contain a more recent non-public update that is normally offered by Oracle to only a select group of Oracle’s supported customers. New versions of the JDK images will be made available over time with updated releases of JDK 6 and 7.
  • Weblogic T3 & Endpoints : WebLogic Server expects public and private ports to be the same for T3 access (for example, when using Enterprise JavaBeans). Consider a multi-tier scenario where a service layer (EJB) application is running on a WebLogic Server cluster consisting of two or more managed servers, in a cloud service named SLWLS. The client tier is in a different cloud service, running a simple Java program trying to call EJB in the service layer.
  • UDP multicast is not supported : Azure supports UDP unicasting, but neither multicasting nor broadcasting is supported. WebLogic Server is able to rely on Azure’s UDP unicast capabilities. For best results relying on UDP unicast, it is recommended that the WebLogic cluster size be kept static, or with no more than 10 managed servers included in the cluster.

Source : Miscellaneous Considerations for Oracle Virtual Machine Images

What about ASM? (or anything storage performance / management related)
As you probably already know, storage performance in Azure is dictated by the amount of disks your attach to your system…

Attached disks rely on the Azure Blob Storage service. Each disk is capable of a theoretical maximum of approximately 500 input/output operations per second (IOPS). The performance of attached disks may not be optimal initially, and IOPS performance may improve considerably after a “burn-in” period of approximately 60-90 minutes of continuous operation. If a disk subsequently remains idle, IOPS performance may diminish until another burn-in period of continuous operation. In short, the more active a disk, the more likely it is to approach optimal IOPS performance.

Although the simplest approach is to attach a single disk to the VM and put database files on that disk, this approach is also the most limiting in terms of performance. Instead, you can often improve the effective IOPS performance if you use multiple attached disks, spread database data across them, and then use Oracle Automatic Storage Management (ASM). See Oracle Automatic Storage Overview for more information. Although it is possible to use OS-level striping of multiple disks, that approach is discouraged because it is not known to improve IOPS performance.

So now you have the option to either use ASM, SS (Storage Spaces) or a combination of both… The previously mentioned article says the following ;

Consider two different approaches for attaching multiple disks based on whether you want to prioritize the performance of read operations or write operations for your database:

  • Oracle ASM on its own is likely to result in better write operation performance, but worse IOPS for read operations as compared to the approach using Windows Server 2012 storage pools. The following illustration logically depicts this arrangement.
    Azure-Oracle-ASM-direct
  • Oracle ASM with Windows Server 2012 storage pools is likely to result in better read operation IOPS performance if your database primarily performs read operations, or if you value the performance of read operations over write operations. An image based on the Windows Server 2012 operating system is required. See Deploy Storage Spaces on a Stand-Alone Server for more information about storage pools. In this arrangement, two equal subsets of attached disks are first “striped” together as physical disks in two storage pool volumes, and then the volumes are added to an ASM disk group. The following illustration logically depicts this arrangement.
    Azure-Oracle-ASM-storage-spaces

Where I can identify certain factors that could justify the above statements… I currently cannot explain the above statements in detail. Though, let’s currently accept these as best practices when designing our Oracle deployemnts. “Evaluate the tradeoff between write performance and read performance on a case-by-case basis. Your actual results when using these approaches may vary.”

Source : Miscellaneous Considerations for Oracle Virtual Machine Images