about News

La jungle du licencing Oracle

  • Imprimer

EDIT 2017: Cet article est obsolète. Il ne prend pas en compte le licencing dans le Cloud, et pour le On-Premise le principe du calcul de licence reste bon mais les versions Standard et Standard One n'existent plus, elles sont remplacées la Standard Two avec de nouvelles règles (plus de détail ici : News about 12.1.0.2 : documentation et SE2)

[EDIT : MAJ 04/03/2013 : rajout de la virtualisation] 

[EDIT : MAJ 29/09/2013 : correction sur calcul licence SE/SEO]

 

Qui arrive à comprendre la jungle du licencing oracle ? Ce n’est pas évident… et je soupçonne que cela soit volontaire pour pouvoir appliquer plus facilement des tarifs à la tête du client. Si le client ne connait pas bien les règles alors le commercial peut facilement appliquer une tarification qu'il choisit à son avantage. Bon ne soyons pas non plus trop paranoïaque...

Pour calculer le coût d’une licence il faut prendre en compte la puissance CPU ou bien le nombre d’utilisateur, la version : Entreprise, Standard, Standard One, Express, les options, les plugins, le support... Sachant aussi que la puissance varie en fonction du fondeur du CPU. Mais aussi que la puissance du CPU ne se calcule pas de la même façon suivant la version d’Oracle, et que … je sens poindre le mal de tête.

Pour commencer il faut télécharger le document http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf (lien toujours mis à jour). Il affiche tous les prix publiques des produits Oracle en $. Ci dessous un extrait du tableau qui va nous servir de base pour calculer les prix (prix au 3 février 2013).

 

 

 

Named User Plus

Software Update License & Support

Processor License

Software Update License & Support

Database Products

 

 

 

 

Standard Edition One

180

39.60

5,800

1,276.00

Standard Edition

350

77.00

17,500

3,850.00

Enterprise Edition

950

209.00

47,500

10,450.00

Personal Edition

460

101.20

-

-

Mobile Server

-

-

23,000

5,060.00

Enterprise Edition Options:

 

 

 

 

 

Real Application Clusters

460

101.20

23,000

5,060.00

Real Application Clusters One Node

200

44.00

10,000

2,200.00

Active Data Guard

200

44.00

10,000

2,200.00

Partitioning

230

50.60

11,500

2,530.00

 

 Remarque : l'article a été écrit pour la version 11g. Pour l'instant il ne prend pas en compte d'éventuellement changement commercial de la 12c.

Les 2 modes de licences

De mémoire, mais sans certitude sur la version 7, le calcul de la licence Oracle était basé sur le nombre d’utilisateur. Puis a été introduit la possibilité du calcul du prix de la puissance (Processor License), puis rapidement c’est devenu la norme même si le prix à l’utilisateur nommé existe toujours. Ce changement est apparu avec internet et la fameuse 8i internet compliant.

 

Qu’est-ce qu’un utilisateur nommé ?

Licence Utilisateur nommé (Named user Plus) : on paie pour un nombre connu de personne (ou de machine-automate) unique qui se connecte sur la base. Attention ce n’est pas parce que vous avez une application qui utilise un pool de 10 sessions qui se connecte à la base que vous allez payer 10 licences. Parce que, déjà il y a un minimum de licence par user par CPU (fonction de la version :Entreprise, Standard…), et que surtout si dans ce pool de 10 sessions il y a un 600 utilisateurs potentiels qui peuvent utiliser ce pool de session, alors vous devez payer 600 licences. Et si on rajoute le DBA qui fait un backup toutes les nuits sur tape (dixit oracle) il faut compter une licence de plus ! soit 601 utilisateurs nommés.
Avec ce raisonnement, si les connexions proviennent du web, il faut alors payer 8 milliard  de licence utilisateur nommé Money MouthMoney MouthMoney Mouth!!!

Mais il y a des seuils minimum de licence obligatoires suivant les versions. En Entreprise Edition il faut payer au minimum 25 Named Users, et 5 pour les versions Standard et Standard One. Si nous résumons cela par une équation cela ferait :

$ = nb utilisateur * prix version

Avec nb utilisateur >= 25 pour l’EE et >=5 pour SE ou SEO

Avec cette règle cela fait un ticket d'entrée de :

(950$ * 25) 23.750$ pour l'EE
(350$ * 5) 1750$ pour la SE
(180$ * 5) 900 pour la SEO

Mais attention pour les versions SE et SEO, le serveur de base de données ne doit pas avoir plus de 4 processeurs au maximum sinon ce mode de licencing est interdit et il faut passer à la licence basée sur la puissance du serveur.

 

Comment calcule-t-on une puissance ?

P = U * I,  apprend on au collège, que ce soit un frigo ou une ampoule la formule reste identique... mais pas chez Oracle... chez Oracle le calcul change suivant le version que l'on branche sur le serveur.

Pour une version Entreprise, il faut compter le nombre de cœurs (core) qu’il y a sur le(s) CPU (socket). 1 cœurs = 1 processeur.

Pour les versions Standard et Standard One il faut compte le nombre de CPU (socket). 1 socket = 1 processeur.

Mais:

la version Standard ne doit pas tourner sur un serveur de plus de 4 processeurs.

la version Standard One ne doit pas tourner sur un serveur de plus de 2 processeurs.

Bon jusque là tout va bien, il faut donc multiplier le nombre de processeur par le prix au processeur? non? et bien non.

Il faut prendre en considération une autre variable : le fondeur (le constructeur) du processeur et son rang de puissance dans la gamme du fondeur. Un processeur Core i3 d'INTEL n'a pas la même puissance qu'un Power7 d'IBM, chaque processeur à donc un coefficient de puissance choisit par Oracle. Ces coefficients changent au cours du temps. Le coefficient maximum est 1. En revanche le coefficient ne sont pas à prendre en compte pour les versions SE et SEO.

Mais ce n'est pas fini, il faut rajouter une autre règle, si la multiplication du nombre de processeur fois le coefficient ne donne pas un chiffre entier, alors il faut prendre l'arrondi... .... supérieur. Par exemple, si vous avez 3 processeurs (core) avec un coefficient de 0,75, cela donne 2,25 de processeur et il faut arrondir à 3!.

Nous pouvons alors écrire la règle de calcul suivante:

Pour une Entreprise Edition

EE$ = arrondi.sup(coef proc * nb core) * licence EE unitaire

Pour une Standard Edtion

SE$ =  nb socket * licence SE unitaire

avec nb socket <=4

Pour une Standard Edtion One

SEO$ =  nb socket * licence SEO unitaire

avec nb socket <=2

 

Pour illustrer, nous allons calculer le prix d’une licence EE et SE sur 2 serveurs différents, un avec 1 processeur UltraSPARC T1 de 4 cores et un autre avec un processeur IBM Power7 de 4 cores. D’après le tableau Oracle Processor Core Factor, l’UltraSPARC T1 a un coefficient de 0.25 et le Power7 un coefficient de 1.

 

Entreprise Edition

Standard Edition

UltraSPARC T1 (4 cores)

arrondi.sup(0.25 * 4) * 47.500
= 47.500$

1 *17.500
= 17.500$

Power7 (4 cores)

arrondi.sup(1 * 4) * 47.500
= 190.000$

 1 * 17.500
= 17.500$

Remarque : Avec la règle de l'arrondi supérieur cela peut donner un résultat de calcul de licence à la puissance un peu "idiot". La licence pour la Standard Edition dans l'exemple ci-dessus, coûte le même prix sur deux processeurs qui ont deux puissances réels de calcul complétement différent. L'exemple ci-dessus, met aussi en évidence, une différence de prix qui peut atteindre x10 entre une Entreprise et une Edition.

 

Durée de licence et support

Maintenant il faut prendre un autre paramètre en compte pour calculer la licence, la durée d’achat de la licence et le support choisit.

Durée de licence

La licence peut s’acheter pour 1, 2, 3, 4 ou 5 ans ou alors à vie (perpetual). Suivant la durée choisit il faut appliquer un coefficient dégressif. Plus la durée est courte, et bien entendu, plus le coefficient est petit.

Je n’ai pas réussi à trouver les coefficients officiels. Tout ce que je sais c’est que pour une licence perpétuelle le coefficient est de 1.

Les formules de calcul se transforment alors de la manière suivante:

Pour la licence à l'utilisateur nommé:

EE/SE/SEO $ = coef durée * nb utilisateur * prix version EE/SE/SEO

avec nb utilisateur >= 25 pour EE, et >= 5 pour SE et SEO

 

Pour les licences au processeur:

Pour Entreprise Edition

EE $ = coef durée * arrondi.sup(coef proc * nb core) * licence EE unitaire

Pour Standard et Standard One

SE/SEO $ = coef durée * nb socket * licence SE/SEO unitaire

avec nb socket <=4 pour SE et avec nb socket <=2 pour SEO.

 

Support

Le support ne semble pas obligatoire contractuellement (à vérifier) mais il inclut les mises à jour. Sans le droit aux mises à jour, cela signifie par exemple pour la 11gR2, de rester sur la première version soit la 11.2.0.1 sans le droit d’upgrader par patchset (11.2.0.x) ni même de pouvoir installé un patch correctif. Autant dire que le support est obligatoire.

Il y a plusieurs niveaux de support, mais le support dit standard (le « par défaut ») s’appelle Premier Support. C’est celui qui est affiché en début d’article dans l’extrait du tableau de pricing.  Il donne accès aux mises à jour et au support 24h/24 7j/7.

Il est disponible pendant 5 ans après la sortie de la version. Par exemple pour la 11.2 il s’étend de septembre 2009 à janvier 2015.

La première année, le support coute 22% de la licence globale calculé sur une licence à durée de vie illimité même si la licence achetée est à durée de vie limité. Ensuite chaque année il augmente pour atteindre 35% la dernière année.

Arrivé au bout des 5 ans, le produit passe dans la phase support Extended Support. Cette phase dure 3 ans, pour la 11gR2 par exemple elle se finit en janvier 2018. Le prix du support est évidement augmenté, mais je n’ai pas les chiffres.

Puis vient la phase terminale le substaining support, les prix sont négociés au cas par cas avec Oracle. Cette phase peut durer en théorie ad vitam… en pratique jusqu’à ce que vous soyez ruiné Wink

Rajoutons cela dans nos équations.

Pour la licence à l'utilisateur nommé pour la premier année avec le support:

EE/SE/SEO $= coef durée * nb utilisateur * prix version EE/SE/SEO + 0.22 * nb utilisateur * prix version EE/SE/SEO

factorisons, pour simplifier:

EE/SE/SEO $ = (coef durée + 0.22) * nb utilisateur * prix version EE/SE/SEO

Puis chaque année pendant 5 ans, il faut payer:

EE/SE/SEO $ =  x * nb utilisateur * prix version EE/SE/SEO

avec x compris entre 0.22 et 0.35

 

Pour la licence EE au processeur pour la premier année avec le support:

EE $ = (coef durée + 0.22) * arrondi.sup(coef proc * nb core) * licence EE unitaire

Puis chaque année pendant 5 ans, il faut payer:

EE $ = x * arrondi.sup(coef proc * nb core) * licence EE unitaire

avec x compris entre 0.22 et 0.35

 

Pour la licence SE ou SEO au processeur pour la premier année avec le support:

SE/SEO $ = (coef durée + 0.22) * nb socket * licence SE/SEO unitaire

Puis chaque année pendant 5 ans, il faut payer:

SE/SEO $ = x *  nb socket  * licence SE/SEO unitaire

avec x compris entre 0.22 et 0.35 et nb socket =4 au maximum pour SE et 2 maximum pour SEO.

Rappel : le prix du support est un pourcentage sur une licence à durée de vie illimité même si vous avez pris un licence sur une durée de vie limité

 

Si nous reprenons le même exemple de processeur que précédemment un UltraSPARC T1 versus un Power7, et que nous calculons la prix d’acquisition de la licence perpétuelle avec le support pour la première année, nous obtenons :

 

Entreprise Edition

Standard Edition

UltraSPARC T1 (4 cores)

1,22 *arr.sup(0.25 * 4) * 47.500
= 57.950$

1,22 * 1 *17.500
= 21.350$

Power7 (4 cores)

1,22 * arr.sup(1 * 4) * 47.500
= 231.800$

1,22 * 1 * 17.500
= 21.350$

 

Les Options

Toutes les options sont disponibles uniquement sur Entreprise Edition. Il faut bien sûr  payer une licence et un support pour toute option prise et le mode de calcul est identique aux licences Database.

Les formules deviennent alors pour l'Entreprise Edition:

Pour la licence à l'utilisateur nommé pour la premier année avec le support:

EE $ = (coef durée + 0.22) * nb utilisateur * (prix version EE + somme prix options)

 

Pour la licence EE au processeur pour la premier année avec le support:

EE $ = (coef durée + 0.22) * arrondi.sup(coef proc * nb core) * (licence EE unitaire + somme prix options)

 

Cas particuliers

RAC

Le RAC est une option qui a la particularité d’être la seule option qui peut être autorisé en Standard Edition et en plus d’être gratuite dans la Standard Edition !!! alors qu’elle payante en Entreprise Edition…

Evidemment, elle est limitée en Standard Edition : maximum 2 serveurs pour un total maximum de 4 processeurs. On parle "normalement" en socket(=processeur) car c'est une Standard Edition, ce qui est très avantageux dans le calcul du coût de licence (voir tableau ci-dessous). J'ai écrit "normalement", car il me semblait que dans le cas du RAC Standard Edition, il fallait calculer par coeur et pas socket, mais les documents Oracle disent le contraire. [je suis toujours en train d'enquêter sur le sujet]

Toujours le même exercice que précédemment (licence perpétuelle + 1 ans de support) mais en rajoutant l’option RAC:

 

Entreprise Edition

Standard Edition

UltraSPARC T1 (4 cores)

1,22 *arr.sup(0.25 * 4)
* (47.500 + 23.000)
= 86.010$

1,22 * 1
* (17.500 + 0)
= 21.350$

Power7 (4 cores)

1,22 * arr.sup(1 * 4)
* 47.500 + 23.000)
= 344.040$

1,22 * 1
* (17.500 + 0)
= 21.350$

Le fossé entre la version Entreprise et Standard est encore plus grand. Pour relativiser, les prix calculés sont publiques, personne ne paie le prix publique, il y a forcement une remise, et plus la licence coûte cher et plus la remise sera importante. D'expérience, j'ai connu des sociétés qui avaient des remises à 50% sur le prix de la licence perpétuelle mais un peu moins sur le support, au environ de 20-30%.

 

Failover

Un serveur servant de serveur de failover (de secours) à la droit de faire tourner une base de données sans licence pendant un maximum de 10 jours par année civile.

Essai

Pour les besoins de tests des copies physiques des fichiers de sauvegarde, votre licence pour la Base de Données Oracle donne droit d’exécuter la base de données sur un serveur sans licence. Ce droit est limité à quatre tests (avec un maximum de deux jours par test) par année civile.

 

Virtualisation

Tous les calculs précédent sont valables pour des serveurs physiques… mais dans le cas d'un serveur virtuel, il y a une petite subtilité à prendre en compte... qui peut coûter cher Money Mouth.

Pour calculer le nombre de processeur à prendre en compte pour la licence, il faut compter : soit le nombre de processeurs affectés aux serveurs virtuels si le partitionnement est de type HardSmile, soit la totalité des processeurs du serveur physique si le partitionnement est de type SoftCry.

Le partitionnement Soft découpe le système d’exploitation invité (virtuel) à l’aide d’un gestionnaire de ressource. C’est le système d’exploitation hôte qui limite le nombre de processeurs à l’OS invité, en créant des zones où les ressources CPU sont allouées à des applications (des OS virtuel) dans le même OS (même hôte). Ce qui ne plait pas au licencing Oracle c’est que les ressources peuvent être changées assez facilement et surtout difficilement contrôlable sur le vrai nombre de CPU utilisé. Exemple de produit partitionnement soft non supporté par Oracle au niveau licencing : VMware, Oracle VM, AIX Workload Manager…

Le partitionnement qui est donc supporté par Oracle, est le partitionnement Hard. Dans ce type partitionnement, un serveur physique est partitionné en plus petit serveur. Chaque serveur séparé agit indépendamment, ils sont autonomes avec,  entre autre, leurs propres CPU. La liste, non exhaustive, des technologies approuvés par Oracle est : LPAR, vPAR, nPAR, Micro-Partitions (sous condition), Solaris Zones (sous condition)… et Oracle VM pour x86 et SPARC (mais sous condition).

 

 

Source de l'article:

http://www.oracle.com/us/corporate/pricing/databaselicensing-070584.pdf

http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf

http://www.oracle.com/us/corporate/pricing/olsadef-be-f-v101003-070561.pdf

http://www.oracle.com/us/corporate/pricing/sig-070616.pdf

http://www.oracle.com/us/corporate/pricing/partitioning-070609.pdf