Cloud privé Partie 1/4

le 05/01/2010 par Marc Bojoly
Tags: Software Engineering

Le cloud computing et notamment les parties IaaS et PaaS promettent une souplesse et des économies (ou à défaut une optimisation) en terme d'infrastructure. Mais d'un point de vue pratique, certaines limites existent concernant ces offres. Le caractère privé d'un bon nombre de données d'un SI (portefeuille d'une entreprise, numéro de sécurité sociale...) pose problème car le cloud ne garantit rien quant à la localisation géographique du datacenter dans lequel s'exécute l'application. Or les données bancaires luxembourgeoises par exemple ne peuvent pas quitter le sol de ce pays. En plus de ces problèmes juridiques, certains fournisseurs utilisent également des outils très différents d'une base relationnelle. Cela rend donc beaucoup plus complexe la récupération en interne des données positionnées dans le cloud. Autant de limites qui font que les offres de cloud ne permettent pas, à priori, d'héberger de façon transparente toutes les applications utilisées en entreprise. Dès lors la notion de cloud privé apporte des solutions à ces inconvénients. Dans cette série d'articles nous allons étudier les solutions concrètes de cloud privé, leurs avantages et leurs limites.

Retour aux sources : comment caractériser le cloud? qu'est-ce que le cloud privé?

Il y a plutôt un consensus sur le fait que le cloud propose ces 5 caractéristiques

  • L'abstraction sur la localisation
  • L'utilisation de ressources partagées et d'architectures "multi-tenant"
  • L'élasticité qui est la capacité à pouvoir ajouter à la demande des ressources dans le système
  • Le paiement à la demande
  • Le self-service (accès via internet)

Les offres actuelles des grands acteurs (Amazon, Google, Microsoft) possèdent ces cinq propriétés (les 3 premières étant en fait amenées par la virtualisation). Elles diffèrent sur la nature des ressources IT fournies (machine, plateforme pour déployer des applications, voir logiciel). Je vous invite à consulter cette série d'articles (sur Amazon Web Services, Google App Engine, Microsoft Azure, et un comparatif des différents tarifs) pour comprendre les différences entre leurs services. Du point de vue du client les offres de cloud offrent au moins deux avantages :

  • une optimisation financière en payant à la demande sans avoir à gérer d'investissement initial ni de taux d'utilisation (capacity planning)
  • la suppression des coûts d'administration (uniquement) pour les composants intégralement délégués au fournisseur (ex. remplacement des disques durs défaillants en louant des instances Amazon, administration système en utilisant Google App Engine)

L'expression cloud privé est en fait un néologisme qui comme le décrit Wikipedia est "utilisé par différents vendeurs pour décrire des offres qui émulent les offres de cloud computing sur un réseau privé". Il s'agit donc de reprendre les caractéristiques du cloud décrites précédemment en interne ou au moins sous contrôle étroit de l'entreprise utilisatrice. Nous allons par la suite voir quelles offres concrètes placer sous ce terme.

Pourquoi a-t-on besoin d'un cloud privé ?

Économiquement parlant, une offre de cloud se base sur l'économie d'échelle pour pouvoir proposer une vente à la demande "pay as you use". Cela implique des choix de la part des fournisseurs qui peuvent être des limitations pour l'utilisateur :

Des architectures matérielles assez peu variées par rapport à la diversité de l'existant dans les SI

Il peut d'une part négocier l'achat des ressources (PC, disques) et également investir sur son infrastructure, ses outils, ses équipes pour ensuite les rentabiliser par des gains de productivité et par une optimisation de ses ressources. La contrepartie est que tous les acteurs doivent faire le choix d'une infrastructure homogène et de la virtualisation pour rendre possible cette optimisation. Les trois grands acteurs de cloud (Amazon, Google, Microsoft) restent très discrets sur leur infrastructure mais on notera par exemple qu'Amazon dit utiliser du "commodity hardware" donc probablement des architectures x86. En tout état de cause, cette offre repose sur des machines virtuelles Xen. Or de nombreux pans de nos SI traditionnels ne sont aujourd'hui pas adaptés à ce modèle : les bases Oracle tournent fréquemment sur d'autres architectures et Oracle est frileux à garantir des performances sur des plateformes virtualisées (However, it may be noted that Amazon EC2 is a virtualized environment and uses a virtualization engine that is not supported by Oracle.). Des besoins de contrôle fort sur les implémentations ou des principes de gouvernance stricts (par exemple isolation en trois DMZ Front/Middle/Back) sont difficilement conciliables avec la pluspart des offres de cloud. L'idée d'une offre levant ces contraintes tout en conservant les avantages du cloud aurait en ce sens un intérêt. Nous essaierons de voir dans quelle mesure cela est possible.

Ensuite, le problème de sécurité et de confidentialité, notamment de la donnée, est fréquemment évoqué comme un frein au déploiement d'un SI sur le cloud.

La nécessité de gérer différemment la sécurité

Les offres de cloud computing nécessitent de gérer différemment la sécurité. Aujourd'hui un datacenter traditionnel est un système clos avec des accès au monde extérieur contrôlés. A l'inverse les ressources sur le cloud sont de fait visibles et surtout administrables via internet. La sécurisation de la plateforme doit se faire de façon applicative.

L'absence de localisation pour les données sensibles

Ensuite les data centers du SI sont des lieux, le plus souvent dans le pays de la maison mère, et surtout sous la responsabilité juridique de l'entreprise utilisatrice. Si le fait d'utiliser des locaux d'un prestataire (hébergeur) est connu, une application déployée sur le cloud n'est pas localisée. Amazon conçoit une granularité de choix au niveau d'une région (Europe/US) afin de limiter le temps de latence. Il n'est pas possible, même en choisissant une availability zone de choisir dans quel datacenter l'application s'exécutera. Amazon étant très discret sur ce sujet, on saura simplement que les instances de la zone Europe seront hébergées dans l'un de ses datacenter européens. Les données dans le cloud ne sont pas localisables dans un état facilement.. Certaines contraintes réglementaires sur les données personnelles (numéro de sécurité sociale) ou bancaires (les données bancaires du Luxembourg ne doivent pas quitter ce territoire) peuvent donc être tout simplement rédhibitoires. Une réponse simple serait de disposer d'un marché français du cloud. Aujourd'hui malheureusement il reste embryonnaire avec l'annonce de certains services par Orange Business Service. L'hypothèse d'un développement de ce marché reste plausible (par exemple une offre faite par un hébergeur, ou un GIE de banques d'investissement souhaitant mutualiser et sous-louer les machines de leurs grilles de calcul) même si l'effet de taille sur ce marché (plus on a de clients et de machines, plus facilement on peut optimiser les ressources) la limitera sans doute à des offres de niche. A long terme, la solution la plus viable devra sans doute reposer sur un cadre légal, si possible à l'échelle européenne. En attendant, utiliser une offre de cloud nécessite de gérer attentivement les données éligibles. Là encore, lever ces contraintes aujourd'hui tout en conservant l'intérêt du cloud serait un avantage indéniable.

La non réversibilité de la migration constitue un risque pour les investissements

La migration sur une offre de cloud est en cela très similaire au déploiement d'un progiciel : rupture avec l'existant, désengagement délicat. Afin de sécuriser les investissements le déploiement devrait pouvoir être progressif afin de maîtriser la transition. Le déploiement doit être, au moins en partie, compatible avec l'existant pour protéger l'investissement fait sur les systèmes d'exploitation, middleware et plus généralement les technologies en place. Les solutions de migration vers le cloud auraient aussi un avantage à être réversibles afin qu'il reste possible d'arbitrer, entre différentes offres de cloud et surtout entre un déploiement sur le cloud ou en interne. Malheureusement, du point de vue des fournisseurs de cloud computing, ce verrouillage technologique constitue un avantage concurrentiel en permettant de verrouiller le marché. L'apparition d'offres compatibles, comme ce fut le cas pour les serveurs d'application J2EE, rendrait la décision de migration vers le cloud plus facile. Il faudra sans doute attendre une stabilisation du marché pour qu'une compatibilité effective soit largement disponible.

Pour l'heure, les propriétés du cloud computing évoquées plus haut apportent chacune à la fois des avantages et des inconvénients qui peuvent être résumés par le tableau suivant :

| | Avantages du cloud computing | | Inconvénients du cloud computing | | | | --- | --- | | --- | | | --- | --- | --- | | | Le paiement à la demande | L'optimisation de certains coûts de gestion | La nécessité de gérer différemment la sécurité | L'absence de localisation pour les données sensibles | Le risque sur les investissements | | L'abstraction sur la localisation | | La haute disponibilité est prise en charge par le fournisseur à travers ses différents datacenters | | Contraintes juridiques : certaines données (bancaires, personnelles) ne peuvent pas quitter le territoire national | | | Le paiement à la demande | Ne payer que les ressources consommées | | | | | | Le self-service (accès via internet) | | Le processus de provisionning des machines est simplifié | Gestion applicative de la sécurité | | | | L'utilisation de ressources partagées et d'architectures "multi-tenant" | | Certaines ressources sont administrées par le fournisseur | L'utilisation de ressources partagées nécessite de gérer applicativement la sécurité | | | | L'élasticité qui est la capacité à pouvoir ajouter à la demande des ressources dans le système et la scalabilité qui est la capacité à consommer autant de ressources pour la première requête et la 101ème | Permet le paiment à la demande | | | | La scalabilité est rendue possible par l'utilisation d'architectures innovantes (par exemple les bases de données non relationnelles) qui utilisent des formats n'ayant pas d'équivalent en interne |

Disposer cloud privé sur lequel on a plus de contrôle permet de s'affranchir de certaines de ces caractéristiques. Nous verrons dans chaque cas les inconvénients que cela permet de lever et les avantages auxquels il faut renoncer. Nous verrons dans l'article suivant quelles solutions existent.