Cours general sur la gouvernance et management de projet systeme d'information : le cloud computing
Cours général sur la gouvernance et management de projet système d'information : le cloud computing
Concepts et définitionsdu cloud computing
Objectif
Nous avons mentionné à plusieurs reprises les terminologies Cloud computing, Software as a Service, Platform as a Service, Infrastructure as a Service dans le chapitre précédent.
Il est temps de définir précisément ce que désignent ces concepts : c'est l'objectif de ce chapitre. Il met le modèle cloud en perspective par rapport au classique modèle software. Il présente aussi les bénéfices du cloud pour les éditeurs, et le concept de cloud privé.
2.1 ORIGINE DU TERME CLOUD COMPUTING
Le terme cloud computing est traduit littéralement par « informatique dans les nuages », ces nuages faisant référence à Internet et au web.
Pour bien comprendre cette terminologie, il faut rappeler qu'Internet est un réseau très complexe et difficile à appréhender car constitué de millions de connexions utilisant des technologies très disparates (fibre optique, câble, ADSL, etc.). Le réseau repose sur un maillage mondial sophistiqué, avec de nombreuses redondances qui permettent à une requête de changer de chemin si une partie du réseau est inopérante ou congestionnée. Enfin, Internet est géré par des milliers d'organisations publiques et privées différentes.
Ainsi, lorsqu'on accède à une application web comme Amazon, on n'a pas la moindre idée de son emplacement physique (peut-être en Californie, mais où précisément, difficile à dire...). On n'a pas non plus la moindre idée du chemin qu'emprunte une requête pour parvenir jusqu'à l'application (la demande a pu passer par des câbles transatlantiques ou par la Russie et le Japon...) Ainsi, le monde de l'Internet est complètement abstrait pour la plupart des utilisateurs : il n'a pas de réalité géographique tangible. L'application de cloud computing que nous utilisons peut se trouver à San Francisco, dans un satellite ou même sur la Lune : cela fait finalement peu de différence pour nous. Les nuages du cloud computing font référence à cette abstraction. Ils font aussi référence au fait que l'on représente souvent Internet sous la forme d'un nuage dans les schémas informatiques.
Le cloud computing signifie donc que les ressources en ligne sont utilisées comme si elles étaient situées dans l'éther, dans un espace sans réalité physique. Certains acteurs du monde du cloud computing jouent d'ailleurs sur cette immatérialité : ainsi Google entretient un certain mystère autour de l'emplacement de ses centres de données ou Datacenters.
Utilisateurs
Figure 2.1 — Illustration du cloud computing.
Pour certains, la définition du cloud computing est : « Computing at Internet &ale ». On peut le traduire en français par « usage d'une plateforme informatique à l'échelle de l'Internet L'idée derrière cette expression est que, avec le cloud computing, on passe d'une salle machine à l'échelle de l'entreprise, à un réseau de milliers de serveurs distribués sur le globe. Par exemple, en utilisant la plateforme Google, on dispose de millions de machines réparties sur les cinq continents. Une plateforme de cette dimension n'a pas les mêmes propriétés, ni le même mode de fonctionnement qu'une plateforme d'entreprise : nous reviendrons sur ce point dans la partie 5.
2.2 UNE DÉFINITION PLUS PRAGMATIQUE
Sur un plan plus technique, on peut considérer que le cloud computing est une évolution des technologies de virtualisation. La virtualisation permet de donner plus d'agilité aux centres de données, grâce aux trois propriétés suivantes :
- mutualisation des ressources : la virtualisation permet d'affecter les ressources d'une même machine à plusieurs applications ;
- abstraction sur la localisation : l'application est « quelque part » sur l'une des machines constitutives de la plateforme de virtualisation. Si cette plateforme utilise des mécanismes de réplication sur des Datacenters distants, les risques de désastre (incendies, inondations) sont couverts par la distribution multisites ;
- élasticité : il est possible d'allouer des ressources supplémentaires à une application proche de la saturation, dans les limites physiques de la plateforme. Cette propriété est particulièrement importante : en effet, si la plateforme dispose de grandes ressources de puissance inutilisées, on peut affecter en quelques instants des capacités supplémentaires à une application. Elle permet aussi d'optimiser l'usage des ressources, en évitant le syndrome de la machine utilisée à 20 % de ses capacités (un cas classique avec une machine hébergeant un serveur HTTP).
Le cloud computing reprend ces propriétés, mais à une plus grande échelle :
- dans le cadre des plateformes de cloud computing publiques (Google, Amazon, etc.), la mutualisation de ressources se fait à l'échelle de plusieurs milliers d'entreprises. On dispose donc de bénéfices liés au facteur d'échelle ;
- l'abstraction sur la localisation est à l'échelle de plusieurs continents dans le cadre des clouds publics : la garantie sur l'intégrité des données est donc supérieure à celle d'un centre de données utilisant deux sites distants de quelques kilomètres. On retrouve ici le caractère ubiquitaire des ressources évoquées dans le paragraphe précédent ;
- avec des plateformes de plusieurs dizaines milliers de serveurs, les clouds publics proposent une réserve de puissance et donc une élasticité exceptionnelle.
Le cloud computing ajoute d'autres propriétés à celles de la virtualisation :
- le Pay As You go : les utilisateurs paient les ressources qu'ils utilisent en fonction de leur consommation réelle et précise. Peu de DSI savent aujourd'hui mesurer précisément la consommation informatique de telle ou telle application. Les acteurs du cloud savent le faire ;
- le Self Service : l'équipe de développement peut demander l'allocation de ressources via un portail web. Ces ressources seront mises à sa disposition de manière automatique quelques minutes plus tard ;
- les API ouvertes (cf. chapitre 1 sur le web 2.0) : les plateformes cloud proposent des interfaces techniques accessibles à distance qui permettent de les intégrer avec le système d'information ou bien de piloter les services à distance.
LIChapitre 2. Concepts et définitions du cloud computing
Nous proposons donc la définition suivante' :
Cloud computing = virtualisation + Pay As You Go + Self Service + API ouvertes Cette définition s'applique aux clouds publics (Google, Amazon, etc.) comme aux clouds privés (gérés en interne). Cet ouvrage s'intéresse avant tout aux clouds publics ; nous reviendrons néanmoins sur les cloîuds privés au chapitre 3.
Sur la base de cette définition, le cloud offre deux grandes familles de services :
- des services de fourniture d'application en location, appelés SaaS. Ces services sont généralement facturés au nombre d'utilisateurs actifs ;
- des services techniques de plateforme d'exécution en location, appelés PaaS et IaaS. Ces services sont facturés selon les ressources techniques consommées.
Le concept de cloud computing englobe les concepts de Software as a Service (SaaS), de Platform as a Service (PaaS), et d'Infrastructure as a Service (IaaS) que nous allons présenter dans la suite.
Le terme as a Service évoque bien un service, dans le sens où le fournisseur vend une fonction opérationnelle, et non des composants techniques nécessitant une compétence informatique. Pour utiliser une métaphore, il est évident pour tout le monde que le service attendu d'un restaurant est un repas et non la mise à disposition de légumes et de viande crus...
Par ailleurs, le terme service évoque les architectures orientées services (SOA). Nous reviendrons dans le chapitre 18 sur les liens entre cloud et SOA.
2.3 QUE SIGNIFIE SAAS ?
SaaS signifie Software as a Service, c'est-à-dire un logiciel fourni sous la forme de service. Il s'agit donc de location d'application opérationnelle, clef en main, et non d'achat de logiciel informatique, à installer soi-même sur une machine. Les SaaS s'adressent donc aux utilisateurs finaux.
La différence entre SaaS et logiciel est essentielle. En effet, les SaaS proposent des logiciels opérationnels, prêts à l'emploi, sans passer par une étape d'installation, et sans aucune tâche de maintenance.
Les SaaS sont exécutés sur des plateformes conçues pour une utilisation simultanée par un grand nombre de collaborateurs qui travaillent dans de nombreuses entreprises différentes. Ces plateformes sont mises à disposition par des acteurs (comme Google ou Salesforce) que nous appellerons opérateurs SaaS, car leur métier est plus proche de ceux des opérateurs télécoms que de celui des éditeurs de logiciel. C'est la raison pour laquelle dans le modèle cloud, on ne parle plus d'éditeur, mais d'opérateur de service.
Figure 2.3 — Vision générale des SaaS.
Le canal d'accès aux applications SaaS étant le réseau Internet, on les appelle aussi « applications en ligne ». Dans cet ouvrage, nous utilisons indifféremment les terminologies SaaS et applications en ligne. Nous les considérons comme des synonymes.
LIChapitre 2. Concepts et définitions du Cloud computing
Comme on l'a vu dans les chapitres précédents, les SaaS sont les successeurs des ASP. Ils se distinguent de ces dernières par :
- l'usage d'interfaces HTML5 (cf . chapitre 1) : leurs interfaces sont exécutées dans un navigateur web ; elles n'ont aucune adhérence avec le poste de travail ; la problématique de déploiement de client natif est donc contournée ;
- le Pay As You Go : en général, les SaaS sont facturés à l'entreprise selon le nombre d'utilisateurs sur une base mensuelle ;
- le Self Service : la souscription en ligne est possible par des profils non-informaticiens, et l'activation des services est quasi immédiate. La fourniture d'API ouvertes : les SaaS ont fortement intégré le principe du web 2.0 ; ils fournissent des API permettant de faire appel à leurs fonctionnalités ; l'intégration entre Salesforce et Google Apps en est un exemple remarquable ; l'utilisateur retrouve ses documents au sein des écrans de CRM de Salesforce ; on verra dans le chapitre 17 que cette intégration entre SaaS peut aller jusqu'à reproduire un système d'exploitation muni de ses applications ;
- la mise en avant de fonctions collaboratives : les SaaS mettent l'accent sur les pratiques collaboratives héritées du web 2.0 ; comme on le verra dans la suite, on retrouve ces pratiques entre utilisateurs, mais aussi entre développeurs de SaaS ;
- des architectures spécifiques dites « multi-tenants » (cf. chapitre 18) dédiées et optimisées pour un usage en ligne : les applications SaaS sont liées à l'environnement de l'opérateur et ne peuvent pas être « déménagées » simplement sur un serveur Windows ou Linux en entreprise.
Les SaaS reprennent donc le modèle ASP dans les grandes lignes, mais ils le rendent plus viable : ils font disparaître les freins techniques qui avaient limité la portée du modèle précédent.
…
2.4 QUE SIGNIFIE PAAS ?
PaaS signifie Platform as a Service ou plateforme sous forme de service. Il s'agit de location de plateforme technique, permettant l'exécution de code développé en spécifique. Les PaaS s'adressent donc aux développeurs.
2.4.1 Définition
PaaS désigne une plateforme d'exécution hébergée par un opérateur et accédée depuis Internet. Cette plateforme peut être utilisée pour exécuter des sites web, des SaaS, ou tout développement spécifique issu de l'entreprise. Ces développements spécifiques doivent respecter le langage de développement et l'architecture de la plateforme PaaS. Ces contraintes sont à rapprocher de celles des plateformes LAMP en Self Services évoquées au chapitre 1.
Dans l'approche PaaS, l'opérateur ne fournit pas seulement un environnement d'exécution déporté, mais aussi un ensemble de services d'infrastructures. La plate-forme PaaS propose ainsi :
- un portail de Self Service : pour souscrire au service, administrer et surveiller son application ;
- un service d'exécution d'applications : qui permet d'exécuter des applications écrites dans les langages autorisés par la plateforme, et un service de persistance de données qui permet de stocker des données structurées ou des fichiers ;
- le Pay As You go en général, les PaaS sont facturées à l'entreprise selon la consommation de CPU, réseau (bande passante, volume, etc.) et espace disque ;
- des API ouvertes : elles permettent l'intégration de l'application hébergée sur la PaaS avec le SI, ainsi que sa surveillance ;
- des architectures « multi-tenants » (cf. chapitre 17), dédiées à un usage en ligne : comme les SaaS, les PaaS sont liées à l'environnement de l'opérateur et ne peuvent pas être « déménagées » simplement sur un serveur Windows ou Linux en entreprise.
Nous reviendrons dans le chapitre 19 sur une description précise de l'ensemble de ces services. Dans cette partie introductive, il est important de retenir que les PaaS permettent à un développeur de mettre rapidement en ligne un développement, et ce, de manière totalement autonome, sans le support d'une équipe d'exploitation. En effet, la plateforme PaaS lui fournit une extension de son environnement de développement qui lui permet d'effectuer une mise en ligne par simple clic sur un bouton.
2.4.2 PaaS versus IaaS
Le PaaS est l'option qui permet la mise en ligne la plus rapide pour une petite start-up qui souhaite mettre une application web sur le marché. Le développeur se focalise sur le code et ne mobilise pas de temps pour installer matériel et logiciel.
Figure 2.5 — Les plateformes PaaS.
Par ailleurs, le PaaS est facturé à la consommation processeur réelle, contrairement à l'IaaS, où l'on paie à l'« uptime », c'est-à-dire tant que le service est disponible. Prenons, par exemple, une application qui ne connaît aucun utilisateur la nuit, et qu'on laisse fonctionner au cas où : elle ne coûtera rien en PaaS, mais coûtera en IaaS.
La plateforme PaaS offre une grande souplesse : chaque service est proposé de manière unitaire, et chacun d'entre eux est accessible via une API, selon les principes évoqués plus haut.
2.5 QUE SIGNIFIE IAAS ?
IaaS signifie Infrastructure as a Service ou infrastructure sous forme de service. Il s'agit de location de plateforme technique, permettant l'exécution d'architectures applicatives complètes, comprenant base de donnés, serveur d'application, etc. Les IaaS s'adressent donc aux équipes d'exploitation.
2.5 Que signifie laa5 ?
2.5.1 Définition
IaaS désigne une plateforme d'hébergement exploitée par un opérateur et accessible depuis Internet.
Cette plateforme peut être utilisée pour exécuter des SaaS.
Elle peut aussi être mise à la disposition des entreprises qui souhaitent faire héberger toute application : progiciel acheté auprès d'un éditeur ou développement spécifique.
En effet, on a toute latitude sur l'architecture à déployer sur une plateforme IaaS : base de données, serveur d'application, annuaire de sécurité, etc. Cette liberté a une contrepartie : le déploiement sur IaaS nécessite des compétences sur l'administration de systèmes d'exploitation et de serveurs.
L'IaaS s'adresse donc à des administrateurs et non à des développeurs.
2.5.2 IaaS versus PaaS
L'IaaS ne permet pas un aussi bon Time to market que le PaaS pour déployer une nouvelle application. En revanche, il autorise des architectures atypiques pas forcément disponibles sur les plateformes PaaS du marché. Une application qui évolue et se complexifie peut donc être amenée à migrer de PaaS vers IaaS.
La plateforme IaaS fournit les services suivants :
- un portail de Self Service en RIA : pour souscrire au service, administrer et surveiller son application ;
- un hyperviseur : pour exécuter des machines virtuelles à l'image des solutions de virtualisation comme VMware ou HyperV. Elle fournit aussi une solution de stockage et de « Snapshot » permettant de sauvegarder l'état des machines virtuelles en cas de redémarrage ;
- le Pay As You Go : en général, les IaaS sont facturées à l'entreprise selon la consommation de CPU, réseau et espace disque ;
- des API ouvertes : elles permettent l'administration distante et la surveillance des
Figure 2.6 — Les infrastructures laaS.
Amazon a été précurseur dans ce domaine avec Amazon Web Services (AWS). Le commerçant en ligne loue depuis quelques années une partie de ses capacités à des entreprises intéressées. AWS est ainsi devenu la première plateforme IaaS, permettant de déporter des applications dans les nuagesl. Nous présenterons cette plateforme en détail dans le chapitre 20.
…
Figure 2.7 — Synthèse sur usagers des XaaS.
2.6 CLOUD COMPUTING VERSUS PLATEFORMES D'ENTREPRISE
Les entreprises exploitent depuis toujours deux types d'applications sur leur plateforme d'exploitation :
- des progiciels pour des services assez standardisés, parfois appelés services de commodité, par exemple les progiciels intégrés (SAP), la messagerie (IBM Lotus, Microsoft Exchange), etc.
- des développements adressant des besoins spécifiques, le plus souvent des applications métiers. Les environnements les plus utilisés dans ce contexte sont aujourd'hui JEE (Java Enterprise Edition) et Microsoft .NET1.
On peut faire un parallèle entre ces plateformes d'entreprise et le cloud computing. En effet, les SaaS sont des progiciels assez standardisés, hébergés « sur le cloud ». Parmi les exemples les plus aboutis de SaaS à ce jour, on peut citer Salesforce, pour les progiciels intégrés, et Google Apps, pour la collaboration.
Les IaaS/PaaS sont des plateformes d'exécution hébergées « sur le cloud ». Nous présenterons dans cet ouvrage celles d'Amazon, Salesforce, Google et Microsoft.
…
Figure 2.8 — Informatique interne versus cloud computing.
2.7 LE CLOUD, UNE ÉVOLUTION LOGIQUE DE L'INFORMATIQUE
2.7.1 Vers l'externalisation des ressources
Le cloud s'inscrit dans une tendance générale de « virtualisation des ressources ». En effet, les entreprises possèdent de moins en moins de biens matériels (locaux, flottes de véhicules, matériels informatiques, etc.) et capitalisent plutôt sur leurs données et leurs connaissances métiers.
Si l'on porte la métaphore au-delà du monde des entreprises, dans la sphère personnelle, on constate qu'il est souvent plus intéressant aujourd'hui de :
- louer une voiture à l'heure ou à la semaine, plutôt que de la posséder (cf. Uber, Drivy, BlaBlaCar) ;
- emprunter des livres en bibliothèque, plutôt que de les posséder (cf. Amazon Kindle Prernium) ;
- louer des films sur des plateformes de vidéos à la demande, plutôt que de les posséder (cf. iTunes, Netflix, Arte VOD) ;
- etc.
Le recours au cloud s'inscrit donc dans une tendance générale de mutation des modes de consommation : de la possession vers le droit d'usage.
2.7.2 Vers l'ouverture des entreprises sur le web
Le cloud s'inscrit dans la continuité de l'évolution des technologies du web :
- il capitalise sur les technologies du web (HTTP/HTML), en particulier les nouvelles technologies d'interface HTML5 ;
- il capitalise sur les pratiques de paiement et de sécurité issues du commerce électronique (Pay As You Go) ;
- il capitalise sur l'autonomisation des utilisateurs qui font eux-mêmes leurs opérations sur les sites, comme ceux de banque en ligne (Self Service) ;
- il capitalise sur les pratiques ouvertes issues du web 2.0. Le cloud est donc l'aboutissement de l'évolution du web depuis 15 ans.
Le modèle s'inscrit dans la continuité de l'adoption du web par les entreprises. En effet, les entreprises ont commencé par utiliser Internet à des fins de communication. Puis le réseau a intégré leur processus métiers et leur a permis d'échanger avec leurs clients et partenaires, en ouvrant de nouveaux canaux de vente et en réduisant leurs coûts. Enfin, Internet va leur permettre de déporter leur informatique, en ouvrant à nouveau des perspectives de réduction de coûts et en gagnant en performance et en robustesse.
…
Business online
Les entreprises échangent avec leurs clients/partenaires sur Internet
Figure 2.9 — Le cloud s'inscrit dans l'évolution du web.
LIChapitre 2. Concepts et définitions du Cloud computing
En résumé
Le cloud computing désigne une informatique externalisée vers l'Internet. Il offre des possibilités de location d'applications et de plateformes techniques.
Il repose sur la virtualisation, le Pay As You Go, le Self Service, et les API ouvertes.
Il englobe les concepts de SaaS, PaaS et IaaS.
Il constitue une évolution logique de l'ouverture des entreprises vers l'Internet.
3Le Cloudun nouveau modèlede consommation de services
Objectif
Ce chapitre présente l'historique des modèles pour la gestion des applications d'entreprises : « grand système », « software », « Open Source », « hébergeur », « outsourcing , « web
Il considère les logiciels visibles des utilisateurs, comme les logiciels techniques déployés sur des serveurs.
Il introduit le modèle Cloud, en le comparant aux modèles précédents et il présente les bénéfices du Pay As You Go et du Self Service pour les entreprises.
3.1 L'ÉVOLUTION DES MODÈLES DE GESTION DE PARC APPLICATIF
3.1.1 Le modèle « grand système » des années 1970
Aux débuts de l'informatique, lorsqu'IBM était le seul acteur de la commercialisation de serveurs, les logiciels n'avaient pas beaucoup de valeur. En effet, IBM vendait ses machines et considérait la partie logicielle comme de la cosmétique, un peu comme une couche de peinture. Le matériel était alors le principal sujet de l'informatique : il était très encombrant, coûteux, et son accès était réservé à quelques spécialistes.
Le logiciel étant déconsidéré, il n'avait pas de modèle économique. C'est seulement au début des années 1980 à l'époque de MS-DOS qu'a commencé à se développer le principe de vente des licences logicielles.
3.1.2 Le modèle traditionnel « software interne »
Le modèle logiciel dominant que nous connaissons aujourd'hui est apparu dans les années 1980 avec Microsoft MS-DOS, Office, puis Windows. Nous l'intitulerons modèle « software » dans cet ouvrage. Nous ajoutons « interne » dans l'intitulé, car nous considérons dans ce paragraphe que le logiciel est exploité en interne.
Ce modèle est basé sur la commercialisation par un éditeur de licences, dites perpétuelles, que l'utilisateur achète à un prix fixe et qui lui permet d'utiliser son logiciel sans limite dans le temps.
Le modèle « software » comprend souvent une option de support qui, en échange d'un abonnement mensuel ou annuel, donne accès aux équipes de l'éditeur afin de résoudre des problèmes d'installation et de maintenance du logiciel, et de mieux comprendre son fonctionnement. Il propose aussi souvent une souscription annuelle qui permet de bénéficier des mises à jour du logiciel.
Le cas de Microsoft
Microsoft propose depuis quelques années le paiement d'une licence perpétuelle accompagné d'une « software assurance », une assurance logicielle qui couvre ses clients contre les problématiques d'obsolescence en leur garantissant de disposer de la dernière version du logiciel. Pour bénéficier de la nouvelle version, il faudra migrer le logiciel, ce qui est une tâche assez fastidieuse.
Dans le modèle « software », les prestations de type installation, paramétrage, maintenance ne sont pas assurées par l'éditeur. L'entreprise utilisatrice doit gérer ces tâches elle-même ou les déléguer à un prestataire de service. L'hébergement du logiciel est généralement assuré dans les locaux de l'entreprise utilisatrice.
Enfin, le déploiement du logiciel auprès des utilisateurs cibles passe par des workflows de validation et des manipulations manuelles : son délai de mise à disposition est généralement de l'ordre de quelques semaines.
On constate, dans la pratique, que l'exploitation d'un logiciel « software » multiplie environ son prix par quatre. Ainsi le coût total de possession du logiciel (TC01 en anglais) est très supérieur à son coût d'acquisition.
Les principales problématiques auxquelles doit faire face l'entreprise utilisatrice sont :
- déployer le logiciel sur ses infrastructures ;
- garantir la disponibilité' du logiciel vis-à-vis des utilisateurs (on parle de disponibilité 24 heures sur 24, 7 jours sur 7, etc.) en déployant et en exploitant une architecture adaptée ;
- assurer la sécurité du logiciel (sa capacité à protéger les données vis-à-vis d'un accès illicite, ou d'une altération accidentelle ou malveillante) en déployant et en exploitant une architecture adaptée ;
- gérer les montées de version du logiciel (le passage de la version 1.0 à la version 1.2, par exemple) en assurant la migration des données, la continuité du service, et la formation des utilisateurs.
Ces problématiques sont extrêmement coûteuses en termes de ressources humaines et nécessitent de bons niveaux d'expertise sur le logiciel utilisé.
Tableau 3.1 — Le modèle « software » en synthèse.
3.1.3 Le modèle « Open Source interne /3
Le modèle Open Source s'est développé à la fin des années 1990. Open Source signifie que le code du logiciel est ouvert, que sa relecture par des tiers est possible ; il ne signifie pas nécessairement que le logiciel est gratuit. Nous ajoutons « interne » dans l'intitulé, car nous considérons dans ce paragraphe que le logiciel est exploité en interne.
Les logiciels Open Source les plus utilisés sont ceux qui constituent les socles applicatifs, comme les systèmes de gestion de base de données (MySQL, PostGreSQL), les serveurs HTTP (Apache), les serveurs d'application (Tomcat, Jboss, Jon AS, Glassfish, etc.), les systèmes d'exploitation (Linux). L'Open Source aborde peu à peu la partie applicative, visible de l'utilisateur final, avec des logiciels de gestion de site web (exemple : eZpublish), gestion documentaire (exemple : Alfresco), de portail (exemple : Liferay), de CRM (exemple : SugarCRM), etc.
Il existe des sous-modèles dans l'Open Source : le logiciel peut être gratuit ou non, accompagné d'un support payant ou non. Les licences d'utilisation (GPL2, BSD3, etc.) sont plus ou moins contraignantes pour l'entreprise utilisatrice. Néanmoins, les modèles dominants sont :
- un logiciel gratuit, dont les mises à jour sont gratuites, dont le support peut être assuré par les équipes de l'entreprise utilisatrice ou acheté à des tiers comme les SSLL1 : c'est le modèle d'Apache, OW2, Eclipse, etc.
- un logiciel gratuit, dont les mises à jour sont gratuites, avec un support payant : c'est le modèle de RedHat, Alfresco, etc. Ces sociétés garantissent la stabilité de versions destinées aux entreprises.
Le cas de Red Hat
Red Hat commercialise notamment des distributions de Linux, un système d'exploitation par ailleurs totalement gratuit. Red Hat vend un support annuel qui permet aux entreprises habituées au modèle « software » de pouvoir se retourner vers un fournisseur en cas de problème. Red Hat est une des plus belles réussites financières du monde Open Source.
Un des avantages du modèle Open Source est que l'on peut tester le logiciel pour se faire une idée précise de ses fonctionnalités et de sa performance technique, sans frais de licence2. Une expérimentation ou un test réel donnent toujours beaucoup plus d'information que la lecture d'une documentation éditeur, laquelle n'est pas toujours objective. Cette possibilité est particulièrement intéressante pour les PME qui disposent de compétences techniques, mais n'ont pas la possibilité de se faire prêter les logiciels de type « software » par leurs éditeurs.
Dans le modèle Open Source, les prestations de service de type installation, paramétrage, maintenance ne sont assurées par aucun éditeur. L'entreprise utilisatrice doit s'en charger elle-même ou déléguer ces tâches à un prestataire de service. L'hébergement du logiciel est généralement assuré dans les locaux de l'entreprise utilisatrice.
Le déploiement du logiciel auprès des utilisateurs cibles passe par des workflows de validation et des manipulations manuelles : son délai de mise à disposition est généralement de l'ordre de quelques semaines.
Le coût des logiciels Open Source est essentiellement lié à leur exploitation. Leur TCO se calcule donc par rapport au prix des machines et au coût salarial des équipes d'exploitation. Le TCO n'est pas nécessairement plus bas que celui du modèle « software » pour les grandes entreprises qui ont des équipes performantes dans le modèle « software », et devront changer leurs habitudes.
- Sociétés de services en logiciels libres.
- C'est aussi le cas avec certains éditeurs de « software interne ».
Tableau 3.2 — Le modèle « Open Source interne » en synthèse.
En revanche, les start-ups high-tech s'orientent souvent vers l'Open Source, car elles ont la possibilité de s'organiser pour optimiser leur TCO en embauchant des administrateurs spécialisés dans l'Open Source. Ainsi, avec la baisse du coût des machines, les logiciels Open Source permettent à ces entreprises de se lancer sans investissement initial conséquent. Elles gagnent ainsi en indépendance vis-à-vis des capital-risqueurs.
3.1.4 Le modèle « hébergeur »
Une première approche vers l'externalisation peut être d'exploiter ses applications chez un hébergeur, tout en en gérant l'exploitation.
Cette approche comporte deux bénéfices :
- * l'entreprise déporte sur un tiers les problématiques matérielles (achat, installation, branchement, etc.) et se focalise sur les aspects logiciels. Ainsi le périmètre de compétences dont il faut disposer en interne se réduit ;
- * l'hébergeur achète le matériel en gros et obtient des économies d'échelle sur les prix, dont il peut faire profiter ses clients.
Néanmoins, l'entreprise utilisatrice doit continuer à gérer le parc applicatif avec les coûts afférents. Et le délai de mise à disposition des applications auprès des utilisateurs reste de l'ordre de quelques semaines.
Tableau 3.3 — Le modèle « Hébergeur » en synthèse.
3.1.5 Le modèle « outsourcing »
Le modèle « outsourcing », ou « externalisation » en français, consiste à confier à un prestataire de service les tâches d'exploitation des applications. IBM Global Services ou HP Enterprise Services sont des prestataires classiques d'« outsourcing ».
Dans ce modèle :
- le logiciel est de type « software », Open Source, ou développement spécifique ;
- l'hébergement du logiciel est assuré dans les locaux du prestataire de service.
L'avantage du modèle « outsourcing » par rapport au modèle interne est que les tâches d'exploitation et donc la compétence sont externalisées. Elles sont fortement rationalisées par le prestataire. En effet, le prestataire de service exploite de nombreux logiciels pour ses différents clients : il va donc naturellement mettre en place des procédures et des outils pour faciliter et accélérer ces tâches, ce qui lui permettra de réduire ses coûts. Ces coûts seront d'autant plus réduits que l'on fera appel à une main-d'oeuvre en offshore où les salaires sont plus bas.
Du fait des chaînes d'intermédiaires, le délai de mise à disposition des applications auprès des utilisateurs reste de l'ordre de quelques semaines.
Le cas d'IBM
IBM dispose dans son offre de matériel, de logiciel et de services. La société a donc une très bonne maîtrise de tous les métiers de l'informatique. Elle est capable de concevoir, déployer et exploiter des applications très performantes basées sur son portefeuille de produits. Le métier de fournisseur de service d'IBM est le plus rentable aujourd'hui : il intègre l'« outsourcing ».
On retrouvera ce principe avec le modèle cloud : la concentration facilite la réduction des coûts.
Tableau 3.4 — Le modèle « outsourcing » en synthèse.
3.1.6 Le modèle « web »
Le modèle web est principalement destiné au grand public. Il est présenté ici en introduction au modèle cloud.
Le modèle web propose un service disponible uniquement sur les serveurs de son éditeur, spécialisé sur une fonction donnée (exemple : la recherche, la vente de livres). Dans ce modèle, le service évolue progressivement sans consultation, ni avertissement à ses utilisateurs : on reparlera plus loin du principe de la bêta perpétuelle. Par ailleurs, les utilisateurs souscrivent au service de manière autonome, selon le principe du Self Service.