This post is sponsored by VMware. Learn about VMware virtualization and cloud solutions for small & mid-size business visit info.vmware.com



This article is available in other languages:

Germany Virtualisation ou cloud: que choisir?France Virtualisation ou cloud: que choisir?China Virtualisation ou cloud: que choisir?Netherlands Virtualisation ou cloud: que choisir?England Virtualisation ou cloud: que choisir?Portugal Virtualisation ou cloud: que choisir?

Imaginez que vous êtes en charge de la technologie dans une start-up Internet qui monte. Vous avez franchi l’étape du produit minimum viable, avez connu un grand succès avec votre bêta privée, et vous devez maintenant créer l’environnement de production dans lequel votre application sera déployée pour satisfaire vos millions de clients potentiels.

Je présume que vous vous êtes immédiatement dit que vous alliez “déployer cette application sur le cloud.” L’hébergement cloud sur demande a reçu une vaste couverture médiatique ces dernières années, et vous êtes donc pardonné si vous pensiez qu’il s’agissait de nos jours de la seule solution envisageable.

Cependant, je voudrais également parler d’une autre possibilité, qui est de déployer votre application sur votre propre “cloud privé” en contruisant un environnement virtualisé, basé sur du hardware que vous achèterez ou louerez, et qui sera situé dans un data centre des plus classiques. En effet, cela pourrait bien être la meilleure option pour votre application.

Je ne voudrais pas donner l’impression de rejeter l’hébergement cloud sur demande dans son ensemble; la start-up pour laquelle je travaille actuellement, un réseau social pour cinéphiles, est hébergée sur le cloud public.

Avant de cofonder cette entreprise, j’étais chargé de la technologie pour un hébergeur de plateformes de vente en ligne. Notre produit le plus populaire était une place de marché pour modèles de sites Internet, mais lorsque j’ai quitté mes fonctions, nous hébergions neuf marchés en ligne différents, qui utilisaient tous la même base de code et le même environnement d’hébergement.

Avec cette start-up de marchés en ligne, nous sommes allés à contre-courant en retirant notre application du cloud au profit d’un environnement virtualisé (dans sa majorité), situé sur du matériel informatique sous notre contrôle. Je souhaiterais donc comparer ces deux possibilités, et si possible vous aider à identifier si votre application serait mieux servie par un déploiement sur votre propre cloud privé.

L’environnement virtualisé est un must

Que vous décidiez d’aller sur le cloud ou de construire votre propre environnement virtualisé, vous devriez dans les deux cas déployer votre application sur des serveurs virtuels. Il y a de mon point de vue deux avantages principaux à l’hébergement virtualisé dont je ne saurais me passer.

Le premier de ces avantages est qu’il fait de construire et reconstruire son serveur un simple problème logiciel. Dans les opérations Web, on considère souvent comme une bonne pratique de reconstruire les serveurs dans leur totalité, plutôt que de les réparer ou de les modifier. Si gérer un pool de serveurs est complexe, c’est en grande partie en raison de l’accumulation de petits changements successifs faits à la configuration des serveurs, surtout s’ils sont appliqués manuellement.

Par le passé, il fallait un budget considérable pour avoir des serveurs de rechange à sa disposition pour pouvoir construire sa nouvelle base de données, l’activer, désactiver l’ancienne et la reconstruire. Ce n’est plus le cas aujourd’hui, et vous pouvez maintenant créer un nouveau “serveur” en quelques minutes, appliquer votre configuration et être prêt en quelques clics ou avec quelques scripts shell.

Le deuxième avantage d’un environnement virtualisé est qu’il vous permet d’adopter un modèle de planification des capacités “juste à temps.” Tant que l’espace de stockage physique sous-jacent est disponible (un point à surveiller que vous optiez pour du cloud privé ou public), vous pouvez créer de nouveaux serveurs qui répondent à vos critères au fur et à mesure de vos besoins.

Partons du principe que vous admettez maintenant que les serveurs virtuels sont une bonne idée, et venons-en à la question suivante: déployer sur le cloud public ou créer votre propre environnement?

Les principales différences entre le cloud et les environnements virtualisés

L’hébergement dans le cloud public vous apporte des avantages immédiats en matière de flexibilité et de coûts initiaux, au risque d’une performance brute moindre, de taux d’échecs d’instance plus élevés, et de la perspective qu’un ou deux voisins douteux partagent peut-être le même environnement.

Faire tourner votre propre environnement virtualisé implique un coût de départ plus élevé, et la nécessité de gérer l’équipement informatique qui le supporte (ou de trouver quelqu’un qui s’en charge pour vous). En contrepartie, vous obtiendrez une performance plus prévisible, une disponibilité pour les instances individuelles plus élevée, et un contrôle total de votre environnement.

Comment votre entreprise croît-elle?

La première question que je me pose lorsque je prends cette décision est la suivante: “Comment cette entreprise va-t-elle croître?”

Avant toute autre considération technique, vous devez garder à l’esprit que votre configuration de production est un système permettant de transformer de l’argent en trafic Web. Vous cherchez donc le meilleur rapport qualité-prix sur le court et sur le long terme, en prenant en compte non seulement ce que vous allez dépenser pour votre matériel informatique, mais aussi le coût d’opportunité vu sous l’angle du temps d’ingéniérie consacré à travailler à ce stockage.

Pour notre réseau social pour amateurs de cinéma, nous n’étions pas certains du moment où notre croissance commencerait à prendre de la vitesse. Louer des serveurs immédiatement aurait représenté une dépense prématurée. De notre point de vue, la flexibilité a pris le dessus sur toutes nos autres préoccupations. En contrepartie, nous avons renoncé à une part de notre performance et de notre disponibilité potentielles. A ce stade de notre entreprise, cela ne nous pose pas de problème.

Pour la start-up de places de marché que j’ai précédemment évoquée, la situation était entièrement différente. Notre produit avait atteint une phase de stabilité, mais une grande part de notre croissance était encore à venir. L’augmentation de nos revenus dépendait de façon prévisible d’une croissance de notre trafic, et après quelques années d’opération, nous avions appris à comprendre ses évolutions saisonnières.

Avec un environnement virtuel dédié, nous sommes parvenus à conserver la flexibilité que nous avions sur le cloud public, tout en ayant un “plan directeur” nous apportant des avantages considérables en termes de coûts.

Que représentent la performance et la disponibilité pour votre entreprise?

Si vous posez la question à votre PDG, il vous dira probablement qu’il veut “99.999% de disponibilité et le site le plus rapide de ce segment de marché.” Dites-lui combien il lui en coûtera, et vous recevrez alors sûrement une réponse plus nuancée.

Comme je l’ai expliqué plus haut, la flexibilité l’a emporté sur tous les autres critères pour notre réseau social. Nous observons une performance et un temps de disponibilité tout à fait acceptables en comparaison avec nos compétiteurs directs, et nous en sommes satisfaits.

Pour la start-up de places de marché, la situation était bien plus complexe. Les marchés en ligne permettent aux créateurs de contenus digitaux de vendre leur produits à n’importe quel client intéressé. Cela voulait dire que nous avions toutes les nécessités habituelles d’une application de commerce en ligne, mais que nous avions également besoin de performances I/O élevées (à cause de tous les biens digitaux volumineux que nous traitions – thèmes Web, vidéos, photos, modèles de design, etc.).

Dans le domaine du commerce en ligne, la performance pour l’utilisateur finale est très importante. Plus la compétition dans votre marché s’accroît, et plus votre performance front-end prend de l’importance. La disponibilité est aussi particulièrement importante – chaque minute pendant laquelle votre site est indisponible représente un manque à gagner.

Comme des instances et parfois des zones de disponibilité entières peuvent échouer, vous devez construire une architecture qui contourne ces problèmes dans le cloud. Netflix excelle dans cette tâche, et les articles que l’entreprise publie sur l’architecture pour le cloud sont une référence absolue en la matière.

Le problème de notre entreprise de marchés en ligne est que nos ressources d’ingéniérie étaient sévèrement limitées. Plutôt que de changer la nature de notre application pour l’adapter au cloud, nous sommes parvenus à changer la nature du cloud pour l’adapter à notre application.

En ayant le contrôle complet de ce qui se passait sur nos réseaux, notre performance était bien plus prévisible. Nous avions la capacité de personnaliser notre système physique de stockage de fichiers pour obtenir la meilleure performance I/O possible pour notre charge de travail du moment. Quand nos bases de données nécessitaient une meilleure performance que nos serveurs virtuels ne pouvaient le permettre, nous les déplacions sur des serveurs Bare Metal, que nous placions juste à côté de notre environnement virtuel pour réduire la latence. Comme nous avions le contrôle total des machines sur lesquelles nous nous reposions, nous savions que le risque d’échec d’instance était faible, et il devenait plus simple de maintenir notre disponibilité.

Pour profiter de tous ces avantages, tout ce que nous avons eu à faire et de dépenser un peu plus au départ (ce qui a été compensé sur le long terme), et de nous assurer d’ajouter du matériel physique à notre pool suffisamment rapidement pour pouvoir disposer de nouveaux serveurs virtuels quand nous le souhaitions.

Conclusion

D’une façon ou d’une autre, la virtualisation devrait faire partie de votre prochain projet de production, que vous soyez en train de construire une nouvelle application ou de migrer une application existante.

Si votre trafic futur est incertain, et qu’il peut augmenter et diminuer drastiquement, prévoyez certainement d’opter pour l’hébergement sur demande dans le cloud.

Si vous avez un profil de charge plus spécifique, que vous avez des nécessités précises de performance et de disponibilité, ou que vous êtes un peu maniaque du contrôle, envisagez sérieusement de configurer votre propre cloud virtuel.