Aller au contenu

Infrastructure cloud infogérée

Infrastructure cloud pour une application SaaS : VM, PaaS ou Kubernetes ?

Les fondateurs et responsables techniques d'un SaaS trouvent ici des critères, des facteurs de coût et sept questions pour choisir entre VM, PaaS infogéré et Kubernetes.

Par Stack Harbor Engineering · Publié le · 13 min de lecture

La meilleure infrastructure cloud pour une application de logiciel-service (SaaS) est celle que son équipe peut exploiter, nuits et fins de semaine comprises. Pour une entreprise SaaS sans ingénieur d’infrastructure attitré, il s’agit habituellement d’une plateforme en tant que service (PaaS) infogérée ou de machines virtuelles (VM) qu’un fournisseur exploite. Kubernetes mérite sa place quand des ingénieurs sont affectés à son exploitation, ou quand le produit dépend de son écosystème. La question décisive est de savoir qui appliquera les correctifs du système d’exploitation, exploitera la base de données et répondra aux alertes.

Quelles sont les options d’infrastructure pour une application SaaS ?

Une équipe SaaS choisit entre quatre modèles d’infrastructure : les machines virtuelles, un PaaS infogéré, Kubernetes et les services natifs d’un hyperscaler. Chacun transfère à un fournisseur une part différente du travail d’exploitation.

Machines virtuelles. Une machine virtuelle est un serveur défini par logiciel, doté de son propre système d’exploitation. Le fournisseur exploite le matériel et la couche de virtualisation. Le client exploite tout le reste à partir du système d’exploitation : les correctifs, les environnements d’exécution, le serveur web, la base de données, les sauvegardes et la surveillance. Un fournisseur d’hébergement infogéré peut prendre ce travail à sa charge.

PaaS infogéré. Une plateforme en tant que service exécute l’application à partir de son code ou d’une image de conteneur. La plateforme provisionne les environnements d’exécution, les bases de données, les répartiteurs de charge et la mise à l’échelle, et l’équipe ne gère pas le système d’exploitation. Des produits en libre-service comme Heroku et Render suivent ce modèle. Les plateformes applicatives qu’exploitent des fournisseurs de cloud infogéré le suivent aussi.

Kubernetes. Kubernetes est un système à code source ouvert qui répartit des conteneurs sur une grappe de machines, appelée cluster, et qui les redémarre quand ils tombent en panne. Les services Kubernetes infogérés des grands clouds publics exploitent le plan de contrôle, soit la partie qui prend les décisions d’ordonnancement. Dans la plupart des configurations, le client reste responsable des nœuds de travail, des mises à niveau de version, du routage du trafic, des secrets, de la surveillance et des définitions de déploiement.

Services natifs d’un hyperscaler. Les grands clouds publics, souvent appelés hyperscalers, vendent des fonctions sans serveur, des services de conteneurs infogérés et des bases de données infogérées. L’équipe exploite peu de serveurs. En contrepartie, le code applicatif est écrit pour les interfaces d’un seul fournisseur.

Comment se comparent les VM, un PaaS infogéré et Kubernetes pour un SaaS ?

Le tableau compare les quatre modèles selon les critères qui comptent le plus pour une petite équipe SaaS.

CritèreMachines virtuellesPaaS infogéréKubernetesServices natifs d’un hyperscaler
Ce que votre équipe exploiteLe système d’exploitation et tout ce qui se trouve au-dessus, sauf si un fournisseur en a le mandatL’application et sa configurationLa configuration du cluster, les mises à niveau, le routage, la surveillance et l’applicationL’application et le compte cloud
Compétences requises à l’interneAdministration de systèmes, sécurité, sauvegardesDéveloppement applicatifIngénierie de plateforme, en plus du développement applicatifArchitecture cloud, contrôle des accès, contrôle des coûts
Mise à l’échelleRedimensionner le serveur ou en ajouter, à la main sauf si l’équipe bâtit l’automatisationDes règles ajoutent ou redimensionnent des nœuds, quand le niveau applicatif est sans étatAutomatisée, une fois que l’équipe l’a bâtie et régléeAutomatisée, facturée à l’usage
PortabilitéÉlevée, un serveur Linux standard se reconstruit chez la plupart des fournisseursDépend du degré de standardisation des environnements d’exécution et des imagesÉlevée d’un cluster à l’autre, moindre dès que des modules propres à un cloud sont utilisésFaible, le code appelle les interfaces d’un seul fournisseur
Risque principalPersonne n’applique les correctifs ni ne surveille les serveursDes besoins qui dépassent les régions ou les fonctions de la plateformeLa plateforme absorbe le temps d’ingénierie destiné au produitUne facture et un compte qui grossissent sans responsable

Quand les machines virtuelles sont-elles le bon choix pour un SaaS ?

Les machines virtuelles sont le bon choix quand l’équipe a besoin de maîtriser le serveur et que quelqu’un s’en occupe. Quatre conditions orientent vers les VM.

  1. Quelqu’un est responsable du système d’exploitation. Un ingénieur de l’équipe applique les correctifs, durcit et surveille les serveurs, ou un fournisseur le fait par contrat.
  2. La charge de travail exige un contrôle au niveau du système d’exploitation. Un logiciel sous licence, un panneau de contrôle d’hébergement ou un réseau sur mesure conviennent mieux à un serveur qu’à une plateforme.
  3. La charge est stable et prévisible. Un serveur plus gros, ou un serveur de plus ajouté dans le cadre de travaux planifiés, absorbe la croissance.
  4. L’application conserve un état sur le serveur. Un monolithe qui écrit ses sessions et ses fichiers téléversés sur le disque local ne peut pas encore tourner en plusieurs copies identiques.

Les machines virtuelles sont le mauvais choix quand personne n’applique les correctifs du système d’exploitation, ou quand les déploiements se font encore à la main dans une session à distance. Elles conviennent mal aussi quand les pics de trafic exigent de la capacité en quelques minutes et que personne n’a bâti de mise à l’échelle automatisée. Un autre article aide à décider s’il faut embaucher un ingénieur DevOps ou impartir les opérations.

Quand un PaaS infogéré est-il le bon choix, et quand ne l’est-il pas ?

Un PaaS infogéré est le bon choix pour une petite équipe SaaS qui exploite une application classique et qui veut que ses ingénieurs se consacrent au produit. Trois conditions orientent vers un PaaS.

  • L’application tourne sur un environnement d’exécution courant, comme PHP, Node.js, Java, Python, Go, Ruby ou .NET, ou elle est livrée sous forme d’image de conteneur.
  • Le niveau applicatif est sans état, ou peut le devenir, de sorte que la plateforme peut en exécuter plusieurs copies identiques. Les sessions, les fichiers téléversés et les caches passent à des services partagés.
  • L’équipe veut des environnements de staging, des déploiements reproductibles et un retour arrière sans bâtir l’outillage.

Sur un PaaS, la mise à l’échelle exige tout de même une décision, et la base de connaissances explique quand ajouter des nœuds et quand les redimensionner. Un SaaS qui isole chaque client doit faire un deuxième choix, traité dans le guide sur un environnement par client ou un environnement partagé.

Un PaaS infogéré est le mauvais choix dans quatre situations.

  • Le produit dépend de l’écosystème Kubernetes. Un logiciel empaqueté pour Kubernetes, ou qui s’appuie sur des opérateurs Kubernetes, a besoin d’un cluster.
  • La charge de travail exige du matériel spécialisé. Demandez si la plateforme offre des processeurs graphiques (GPU) ou du matériel semblable avant de le tenir pour acquis.
  • L’application est bâtie sur les services natifs d’un hyperscaler. Les fonctions sans serveur et les services de données propriétaires n’existent pas sur une plateforme applicative générique.
  • L’entreprise a besoin de régions que la plateforme n’a pas. Une plateforme dont les sites se trouvent dans un seul pays ne peut pas servir localement des utilisateurs d’un autre continent.

Une petite équipe SaaS a-t-elle besoin de Kubernetes ?

Une petite équipe SaaS n’a habituellement pas besoin de Kubernetes. Kubernetes règle le problème que pose l’exploitation de nombreux services sur de nombreuses machines au moyen d’une seule interface cohérente. Une équipe qui a une application, quelques processus de traitement en arrière-plan (workers) et une base de données n’a pas encore ce problème.

Kubernetes est le bon choix à quatre conditions.

  1. Des ingénieurs sont affectés à la plateforme. L’exploitation du cluster figure dans la description de poste de quelqu’un, et une deuxième personne peut prendre la relève.
  2. Le produit compte de nombreux services aux cycles de release distincts. Plusieurs équipes déploient de façon indépendante et ont besoin de règles communes pour le routage, la mise à l’échelle et les accès.
  3. Les clients installent le produit dans leurs propres clusters. Un SaaS qui livre aussi une édition autohébergée standardise souvent les deux sur Kubernetes.
  4. La pile repose sur des logiciels natifs de Kubernetes. Certains outils de données, d’apprentissage automatique et de réseau supposent un cluster.

Kubernetes est le mauvais choix quand l’équipe l’adopte par effet de mode, pour attirer des candidats ou dans l’espoir qu’il règle les problèmes de disponibilité. Un cluster ajoute du travail récurrent : les mises à niveau de version au rythme des releases du projet, le routage du trafic et les certificats, les secrets, les politiques réseau, la surveillance et la répartition des coûts. L’article de la base de connaissances sur la migration d’une application cPanel vers Kubernetes montre à quel point il importe de régler d’abord la base de données, les secrets et le stockage.

Faut-il réécrire un monolithe patrimonial ou le déplacer vers une plateforme infogérée ?

Déplacez un monolithe patrimonial, c’est-à-dire une application ancienne d’un seul bloc, vers une plateforme infogérée quand l’application fonctionne et que les problèmes sont opérationnels. Les pannes, les déploiements sans retour arrière possible et les périodes de lenteur pendant les traitements par lots sont des problèmes de plateforme.

Un mandat publié illustre le compromis. Une entreprise canadienne de SaaS interentreprises (B2B) d’environ douze personnes exploitait un monolithe Laravel de dix ans sur un seul serveur dédié. Les fondateurs avaient prévu six mois pour une réécriture. Le scénario type sur la modernisation d’un monolithe Laravel rapporte que, dans ce seul mandat, Stack Harbor a déconseillé la réécriture. La même application est passée au Cloud PaaS infogéré de Stack Harbor au terme d’une migration de huit semaines, sans réécriture. Le coût d’infrastructure a augmenté de 11 %. Le scénario type estime aussi à soixante heures par mois le temps d’ingénierie des fondateurs rendu au produit. C’est le résultat d’un seul mandat pour une seule charge de travail, et non un résultat typique.

Le même scénario type précise qu’une réécriture peut être la bonne décision quand l’architecture empêche l’équipe de livrer sa prochaine ligne de produit.

Quels facteurs déterminent le coût de chaque option ?

Pour une petite équipe SaaS, le poste d’infrastructure explique rarement le plus grand écart de coût entre des VM, un PaaS infogéré et Kubernetes. La main-d’œuvre l’explique habituellement.

Poste de coûtMachines virtuellesPaaS infogéréKubernetes
Ressources d’infrastructureTaille des serveurs, stockage, bande passanteRessources utilisées, souvent avec des frais de plateforme en plusNœuds de travail, répartiteurs de charge et, sur certains services infogérés, des frais pour le plan de contrôle
Main-d’œuvre d’exploitationÉlevée, sauf si un fournisseur en a le mandatFaible pour l’équipe, comprise dans la plateforme ou dans le périmètre infogéréÉlevée, et spécialisée
OutillageSurveillance, sauvegardes et outils de déploiement achetés ou bâtisCompris en grande partie, confirmez ce qui fait partie du périmètreOutils de surveillance, de routage, de secrets et de livraison assemblés par l’équipe
MigrationFaible pour une application qui tourne déjà sur un serveurModérée, plus élevée quand le niveau applicatif doit d’abord devenir sans étatÉlevée, l’application est conteneurisée et son déploiement redéfini

Trois facteurs font varier un devis, quelle que soit l’option. Les environnements de staging et de prévisualisation multiplient les ressources. Une base de données répliquée coûte plus cher qu’une instance unique. Une réponse aux incidents jour et nuit coûte plus cher qu’une couverture pendant les heures ouvrables.

Pour chiffrer la main-d’œuvre, consignez pendant un mois les heures d’ingénierie consacrées aux correctifs, aux déploiements, aux incidents et aux questions de coût. Multipliez ce total par un coût horaire complet, avantages sociaux compris, et ajoutez le résultat à chaque option. L’article qui explique comment est tarifé l’hébergement cloud infogéré détaille les facteurs qui expliquent le devis d’un fournisseur.

À quelles questions une équipe SaaS devrait-elle répondre avant de choisir une plateforme ?

Sept questions règlent l’essentiel du choix entre des machines virtuelles, un PaaS infogéré et Kubernetes pour une application SaaS.

  1. Qui est de garde pour la plateforme ce soir ? Nommez la personne. S’il n’y a pas de nom, achetez l’exploitation avec la plateforme.
  2. Combien de services déployés séparément existent aujourd’hui ? Comptez ce qui existe, et non ce qu’imagine la feuille de route.
  3. Le niveau applicatif peut-il tourner en plusieurs copies identiques ? Sinon, dressez la liste de ce qui le lie à un seul serveur.
  4. Quels services appelés par le code n’existent que chez un seul fournisseur ? Une longue liste signifie que le choix de la plateforme est déjà fait.
  5. Où les données de production et les sauvegardes doivent-elles se trouver, et où sont les utilisateurs ? Les régions retiennent ou éliminent vite des options.
  6. Des clients ou des partenaires exigent-ils une plateforme précise ? Une édition autohébergée ou une règle d’approvisionnement peut trancher la question.
  7. Combien coûte l’installation actuelle chaque mois, main-d’œuvre comprise ? Sans ce chiffre, aucune option ne peut être comparée équitablement.

Un nom manquant à la question 1 et un petit nombre à la question 2 orientent vers un PaaS infogéré ou vers des machines virtuelles qu’un fournisseur exploite. Une longue liste à la question 4 indique qu’il vaut mieux rester sur ce cloud. Un autre article compare l’exploitation d’Amazon Web Services (AWS) par vos propres moyens et un cloud infogéré. Des ingénieurs de plateforme dans l’équipe, de nombreux services ou un oui à la question 6 orientent vers Kubernetes.

Où se situe Stack Harbor

Stack Harbor est un fournisseur d’exploitation infonuagique gérée (MSP) pour les environnements de production, de propriété canadienne, dont le siège est à Montréal. Elle travaille avec des entreprises SaaS, des agences et des éditeurs. Ses clients sont des petites et moyennes entreprises (PME) et des agences d’environ 5 à 200 personnes qui exploitent des systèmes de production sans avoir leur propre équipe d’exploitation 24/7. Sa propre infrastructure canadienne tourne dans deux centres de données à Montréal.

Stack Harbor offre deux des quatre modèles sur sa propre infrastructure. Cloud PaaS est une plateforme applicative infogérée dotée d’environnements d’exécution (runtimes) infogérés pour PHP, Node.js, Java, Python, Go, Ruby et .NET. Elle comprend des bases de données infogérées, des déploiements blue/green et rolling, et le clonage de la production vers le staging en un clic. La mise à l’échelle horizontale se déclenche sur le CPU, la mémoire ou des métriques personnalisées. Cloud PaaS repose sur la plateforme applicative Virtuozzo, et la base de connaissances explique pourquoi Stack Harbor utilise Virtuozzo.

Cloud Compute fournit des machines virtuelles, du bare metal et un réseau privé, avec un périmètre infogéré qui va de l’exploitation par le client à l’infogérance complète. Le redimensionnement vertical se fait en direct, l’ajout horizontal de serveurs est une opération planifiée, et la bascule régionale est une opération infogérée, pas automatique.

Stack Harbor ne vend pas Kubernetes comme service infogéré. Sa page de services décrit Cloud PaaS comme la couche plateforme pour les équipes qui ne veulent pas exploiter Kubernetes. Sa page sur les clusters à haute disponibilité (HA) qualifie Kubernetes d’utile pour certaines charges et d’exagéré pour la plupart des PME en croissance. Un SaaS qui a besoin de l’écosystème Kubernetes, ou de régions autres que les centres de données de Stack Harbor, devrait chercher ailleurs. Pour un SaaS dont la place est sur AWS, les opérations AWS infogérées couvrent le propre compte du client, et l’hébergement chez Stack Harbor n’est pas requis.

La solution d’auto-scaling fixe les règles de mise à l’échelle et un plafond dur pour le nombre de nœuds avant la mise en ligne. Dans la majorité des architectures de PME, la base de données ne se met pas à l’échelle automatiquement. La solution de pipeline de déploiement ajoute les builds, les tests, une porte d’approbation et le retour arrière.

Stack Harbor ne publie pas de prix. Le prix de Cloud PaaS combine des frais de plateforme par environnement et les ressources utilisées. Un devis fixe suit un appel de cadrage, comme l’explique la page qui décrit comment Stack Harbor cadre et chiffre un mandat.

Avant de comparer des plateformes, une équipe SaaS devrait mettre par écrit qui exploitera chaque couche une fois le produit en ligne.

FAQ

Les questions que posent les acheteurs

Quelle est la meilleure infrastructure cloud pour une application SaaS ?
Aucune infrastructure n'est la meilleure pour toutes les applications SaaS. Une petite équipe qui a une application web classique et aucun personnel d'exploitation est habituellement mieux servie par un PaaS infogéré. Les machines virtuelles conviennent à une équipe qui compte des ingénieurs d'infrastructure, ou à une charge de travail qui exige la maîtrise du système d'exploitation. Kubernetes convient à une entreprise qui a des ingénieurs affectés à l'exploitation de la plateforme ou qui dépend de l'écosystème Kubernetes.
Une entreprise SaaS de 12 personnes a-t-elle besoin de Kubernetes ?
Une entreprise SaaS de 12 personnes a rarement besoin de Kubernetes. Kubernetes règle le problème de l'ordonnancement de nombreux services sur de nombreuses machines, et il s'accompagne d'un travail de mises à niveau, de réseau, de sécurité et d'observabilité. Une entreprise de cette taille exploite habituellement une application, quelques processus de traitement en arrière-plan et une base de données, qu'un PaaS infogéré ou un petit groupe de machines virtuelles peut faire tourner. Les exceptions sont un produit que les clients installent dans leurs propres clusters et un produit bâti sur des logiciels natifs de Kubernetes.
Un PaaS infogéré suffit-il à un SaaS en croissance ?
Un PaaS infogéré suffit à un SaaS en croissance quand l'application tourne sur un environnement d'exécution pris en charge, que le niveau applicatif peut tourner en plusieurs copies identiques et que la plateforme a les régions dont les clients ont besoin. Un PaaS ne suffit plus quand le produit a besoin de l'écosystème Kubernetes, de matériel spécialisé ou de services qui n'existent que chez un seul hyperscaler.
Faut-il réécrire notre monolithe patrimonial ou le déplacer vers une plateforme infogérée ?
Déplacez le monolithe vers une plateforme infogérée quand l'application fonctionne et que les problèmes sont opérationnels, comme des pannes, des déploiements risqués et des périodes de lenteur. Envisagez une réécriture quand l'architecture elle-même empêche l'équipe de livrer la prochaine ligne de produit. Une réécriture ne livre aucune nouvelle valeur aux clients pendant qu'elle est en cours, et il lui faut donc une justification plus solide qu'un code vieillissant.
Un PaaS infogéré rend-il une entreprise SaaS captive de son fournisseur ?
Toute plateforme crée une certaine dépendance, et la question utile est de savoir où elle se situe. Une application qui tourne sur un environnement d'exécution standard ou dans une image de conteneur standard, avec un moteur de base de données standard, peut passer à une autre plateforme au moyen d'une migration planifiée. La dépendance est la plus forte quand le code applicatif appelle des services qui n'existent que chez un seul fournisseur. Demandez à tout fournisseur de plateforme quelles parties de l'installation sont portables et lesquelles sont propres à la plateforme.
Stack Harbor offre-t-il Kubernetes comme service infogéré ?
Stack Harbor ne vend pas Kubernetes comme service infogéré. Son Cloud PaaS est une plateforme applicative infogérée, présentée comme la couche plateforme pour les équipes qui ne veulent pas exploiter Kubernetes. Pour une entreprise SaaS qui tourne sur Amazon Web Services (AWS), Stack Harbor offre des opérations AWS infogérées dans le propre compte du client, et l'hébergement chez Stack Harbor n'est pas requis.

À propos de Stack Harbor

Stack Harbor est un fournisseur de services infogérés de propriété canadienne dont le siège est à Montréal, au Québec. C'est un fournisseur d'exploitation infonuagique gérée (MSP) pour les environnements cloud de production, et non un fournisseur de TI de bureau. L'entreprise offre trois services : Infrastructure Cloud, Plateforme Applicative, et Gestion, supervision et soutien. Sa propre infrastructure tourne dans deux centres de données à Montréal, et son équipe d'exploitation gère aussi des environnements que ses clients hébergent chez AWS, Azure, Google Cloud et d'autres fournisseurs. Stack Harbor travaille avec des entreprises SaaS, des agences, des éditeurs et des exploitants WordPress et WooCommerce qui font tourner des systèmes de production sans équipe d'exploitation 24/7 à l'interne, en français et en anglais.

À propos de Stack Harbor →

Partager

Dites-nous ce que vous exploitez. Nous vous dirons ce qui doit changer.

Réservez une consultation avec Stack Harbor. Nous examinons votre environnement actuel, ses risques et vos besoins de soutien, puis Stack Harbor fournit un périmètre et un prix fixes après l'appel de cadrage.