Comprendre les options IaaS et PaaS des fournisseurs cloud
Vous cherchez à migrer les charges de travail de votre entreprise vers le cloud ? Comprenez les avantages et les inconvénients des options IaaS et PaaS sur AWS, Azure et Google Cloud Platform.
IaaS et PaaS sont les deux catégories de services de cloud computing les plus anciennes et les plus utilisées. Bien qu’elles se chevauchent à certains égards, ces offres sont fondamentalement différentes.
Les entreprises doivent comprendre ces différences afin de choisir le bon type de service cloud ou la bonne stratégie architecturale pour un cas d’usage donné. Cet article explique les avantages et les inconvénients du IaaS par rapport à l’approche PaaS. Il présente rapidement les principales offres IaaS et PaaS disponibles chez AWS, Microsoft Azure et Google Cloud Platform.
Les grandes différences entre IaaS et PaaS
L’IaaS fournit un accès à la demande à une infrastructure IT virtualisée depuis Internet. En général, l’IaaS ne donne accès qu’aux composants d’infrastructure de base : calcul, réseau et stockage. À partir de là, les utilisateurs installent et gèrent les logiciels qu’ils souhaitent exécuter sur cette infrastructure en cloud.
Les fournisseurs de cloud computing assurent la maintenance et la surveillance de l’infrastructure physique pour fournir l’IaaS, mais c’est à l’utilisateur qu’il incombe de sécuriser et de surveiller les charges de travail qui s’exécutent sur cette architecture. Ainsi, la valeur principale de l’IaaS est qu’elle élimine la nécessité pour les utilisateurs d’acheter, de configurer et de maintenir des serveurs physiques.
L’IaaS n’offre pas d’avantages particuliers en matière de déploiement et de gestion des charges de travail. Ces deux aspects relèvent de la responsabilité des utilisateurs, et non des fournisseurs de cloud.
À l’origine, l’IaaS était l’épine dorsale des principaux clouds publics tels qu’AWS, qui a lancé des services d’hébergement de bases de données et de VM au milieu des années 2000. Ce n’est que plus tard que ces fournisseurs ont ajouté des services – notamment PaaS – permettant aux entreprises de se concentrer davantage sur le développement que sur la gestion.
Une PaaS fournit des outils logiciels pour aider les clients à développer et à déployer des applications, en plus de l’infrastructure nécessaire pour héberger ces applications. En répondant aux exigences liées à l’infrastructure hôte ainsi qu’au déploiement des applications, ce modèle doit simplifier la gestion des charges de travail.
Une PaaS est moins flexible qu’une solution IaaS. De fait, la plupart des plateformes PaaS ne prennent en charge que certaines approches du développement ou du déploiement d’applications. Par exemple, certaines plateformes restreignent l’accueil d’applications développées dans des langages de programmation particuliers. Les types de charges de travail que vous pouvez exécuter à l’aide d’une PaaS sont parfois limités. Une telle plateforme ne peut généralement pas servir de substitut polyvalent à l’ensemble de l’infrastructure IT et du flux de développement logiciel d’une entreprise.
Avec des produits tels Heroku, les offres PaaS sont devenues populaires au milieu des années 2000. C’est à cette époque que l’IaaS est apparu, mais la PaaS a évolué indépendamment du IaaS, car, dans la plupart des cas, les premiers grands fournisseurs de IaaS, comme AWS, ont tardé à se lancer sur ce segment du marché cloud. AWS n’a pas lancé sa première offre PaaS, Elastic Beanstalk, avant 2011, date à laquelle AWS était déjà un fournisseur IaaS établi. De même, la plupart des fournisseurs de PaaS n’ont pas proposé des services IaaS autonomes en plus de leurs offres PaaS.
IaaS et PaaS : une frontière floue
Au départ, les différences entre IaaS et PaaS étaient claires. Chaque type d’offre fonctionnait de manière différente et était proposé par différents types de fournisseurs. Mais cela a changé ces dernières années, car les frontières séparant le IaaS d’une PaaS se sont estompées.
Au cours de la dernière décennie, les fournisseurs IaaS ont introduit une variété d’outils que leurs clients peuvent utiliser pour créer et déployer des applications directement sur leurs clouds. Ces produits offrent une expérience similaire à celle d’une PaaS, sans toutefois qu’elles reprennent toutes les caractéristiques d’une PaaS au sens traditionnel du terme. Les principales différences sont les suivantes :
- Dans la plupart des cas, les systèmes PaaS des fournisseurs de clouds sont construits à l’aide d’outils et de technologies open source, comme les conteneurs Docker, alors que les plateformes PaaS traditionnelles dépendent originellement de technologies propriétaires.
- L’utilisation d’outils de développement et de déploiement d’applications au sein des plateformes IaaS est facultative. Si vous souhaitez uniquement un IaaS, les fournisseurs de cloud computing vous le vendront et vous laisseront le soin de décider comment développer et déployer les applications. En revanche, les offres PaaS traditionnelles obligent les clients à utiliser à la fois leurs outils de livraison de logiciels et leur infrastructure d’hébergement.
Une deuxième raison pour laquelle la différence entre IaaS et PaaS est aujourd’hui ambiguë est que de nombreux fournisseurs proposent désormais des produits IaaS couplés à des services de gestion, qui rendent les offres similaires aux PaaS traditionnelles.
Par exemple, AWS, Azure et Google Cloud Platform (GCP) proposent chacun des distributions Kubernetes entièrement managées, à savoir Amazon Elastic Kubernetes Service (EKS), Microsoft Azure Kubernetes Service et Google Kubernetes Engine. Bien que ces distributions ne comprennent pas d’outils de développement d’applications, ce qui les différencie d’une PaaS, elles offrent le type d’expérience d’hébergement clé en main que les clients avaient l’habitude d’obtenir uniquement avec une PaaS. Elles réduisent également la quantité de provisionnements, de surveillance et d’autres tâches de gestion associées aux plateformes IaaS traditionnelles.
D’autres distributions Kubernetes – celles qui ne sont pas liées aux principaux fournisseurs IaaS – vont encore plus loin dans l’émulation des caractéristiques d’une PaaS traditionnelle. Le meilleur exemple est Red Hat OpenShift, qui associe Kubernetes à d’autres outils pour proposer une offre complète de développement et de déploiement d’applications, compatible avec les infrastructures en cloud et les infrastructures autonomes. Certains considèrent qu’OpenShift est moins une PaaS qu’une solution CaaS (Containers as a Service).
En fin de compte, bien que les offres IaaS et PaaS demeurent fondamentalement différentes, de nombreux fournisseurs IaaS proposent désormais des services qui étendent leurs plateformes pour en faire des produits de type PaaS. L’époque où les marchés IaaS et PaaS se différenciaient nettement l’un de l’autre est révolue.
Quand utiliser un service IaaS ou PaaS ?
Après avoir compris les avantages et les différences entre l’IaaS et une PaaS, vous pouvez maintenant déterminer quelle approche convient le mieux à une charge de travail donnée.
L’IaaS est généralement la meilleure option pour les entreprises disposant des ressources nécessaires pour développer, déployer et gérer des applications à l’aide d’outils qu’elles sont prêtes à mettre en place et à gérer elles-mêmes. L’IaaS est également préférable si un utilisateur a besoin de composants qui ne sont pas fournis par une offre PaaS, comme un outil de développement spécifique ou un système d’exploitation personnalisé.
Le cas d’usage le plus courant de l’IaaS est celui d’une organisation qui possède son application – ou les ressources internes pour la développer – et qui a simplement besoin d’une infrastructure pour l’héberger. Par exemple, un détaillant qui a créé une place de marché en ligne peut se tourner vers un fournisseur IaaS pour héberger cette charge de travail. Ou encore, une entreprise pourrait choisir un produit d’hébergement IaaS pour migrer son système de paie sur site vers le cloud.
Une offre PaaS est une meilleure option pour les organisations qui disposent de moins de ressources pour développer et gérer les applications, et qui bénéficieront donc d’une offre prête à l’emploi et tout-en-un pour la livraison et l’hébergement de logiciels. Une telle plateforme ne supprime pas le besoin de développeurs, mais elle rationalise les opérations de développement et de déploiement et les associe à l’infrastructure d’hébergement. C’est pourquoi une solution PaaS peut s’avérer plus attrayante pour les PME qui souhaitent mettre leurs applications à disposition plus rapidement.
En général, l’IaaS coûte moins cher qu’une PaaS à charge de travail équivalente, mais vous devrez peut-être acheter des middlewares ou des outils logiciels supplémentaires, ce qui peut s’avérer plus coûteux que de les acquérir dans le cadre d’une PaaS. Il existe également d’autres facteurs de coût, notamment les frais généraux potentiels liés à la maintenance de l’infrastructure. Et la mesure dans laquelle vous utilisez les outils et techniques d’optimisation du cloud aura probablement un effet global plus important sur vos dépenses que le choix d’un IaaS ou d’une PaaS.
Comparaison des services de cloud IaaS et PaaS
Aujourd’hui, les principaux fournisseurs de cloud (AWS, Microsoft et Google) proposent des options IaaS et PaaS. Cependant, ils diffèrent dans la manière dont ils structurent leurs services PaaS.
AWS ne propose pas de PaaS au sens traditionnel du terme. Elastic Beanstalk s’en approche, mais son ensemble de fonctionnalités limité en fait un piètre substitut à une solution PaaS traditionnelle et complète comme Heroku. Cependant, AWS permet aux clients d’intégrer facilement divers produits AWS pour créer une PaaS adaptée à leurs besoins.
En revanche, Microsoft Azure et Google Cloud Platform ont regroupé des collections d’outils et de services pour offrir une option PaaS de bout en bout, bien qu’ils fournissent différents outils logiciels et options d’hébergement au sein de ces collections de services.
Les offres IaaS et PaaS d’AWS
Sur AWS, le service historique d’infrastructure à la demande n’est autre qu’Amazon EC2. Son rôle ? Héberger des VMs. Comme d’autres grands fournisseurs IaaS, AWS propose un large éventail de types d’instances parmi les principaux fournisseurs de cloud, avec une gamme de VM à usage général et des instances adaptées à la mémoire, au calcul et au stockage.
Les utilisateurs combinent souvent EC2 avec un ou plusieurs services de stockage de données AWS pour héberger une application et les données dont elle a besoin pour fonctionner. AWS propose plusieurs options de stockage, dont :
- Amazon S3
- Amazon Elastic Block Store (EBS)
- Amazon Elastic File System
- Amazon FSx
Bien qu’aucun service cloud Amazon ne constitue à lui seul une PaaS traditionnelle, AWS propose plusieurs services que les clients peuvent facilement intégrer pour créer une PaaS :
- AWS Cloud9. Cet environnement de développement intégré basé sur le cloud est utilisé pour développer des applications.
- AWS CodePipeline. Les développeurs peuvent utiliser cet outil pour construire et déployer des applications. Il prend en charge le déploiement vers diverses options d’hébergement AWS, telles que les VM EC2 ou les conteneurs sur Amazon ECS.
- AWS CodeDeploy. Ce service de déploiement permet aux entreprises d’automatiser les déploiements vers divers services de calcul AWS. Combiné à CodePipeline, CodeDeploy peut être utilisé pour créer quelque chose qui ressemble beaucoup à une PaaS au-dessus d’un IaaS.
- AWS Elastic Beanstalk. Les développeurs utilisent Elastic Beanstalk – qui, comme nous l’avons noté, est ce qu’AWS offre de plus proche d’une PaaS conventionnelle et autonome – pour télécharger le code des applications et services Web et les exécuter sur les serveurs AWS. AWS se charge du déploiement, de l’approvisionnement et de l’équilibrage des charges. Beanstalk prend en charge, en option, les applications conteneurisées, mais il n’inclut pas les fonctions d’orchestration d’applications disponibles dans un moteur d’orchestration dédié comme Kubernetes.
- AWS EKS. Comme indiqué ci-dessus, EKS, la plateforme Kubernetes gérée par AWS, offre une solution simple pour héberger et orchestrer des applications avec une gestion minimale de l’infrastructure requise de la part des clients. Attention toutefois : les applications doivent être exécutées dans des conteneurs, ce qui fait qu’EKS n’est pas compatible avec toutes les applications.
Par rapport aux autres grands fournisseurs de cloud, AWS est celui qui offre le moins d’intégration entre ses différents services. Pour fournir des fonctionnalités PaaS, les utilisateurs doivent connecter plusieurs services entre eux pour construire un pipeline complet de développement et de déploiement d’applications. Cette approche séduit les organisations qui préfèrent choisir leurs outils, mais elles doivent se familiariser avec les multiples offres d’AWS et prendre des mesures pour les intégrer. Depuis 2022, le fournisseur entend simplifier cette approche.
Les offres IaaS et PaaS de Microsoft Azure
Azure Virtual Machines est la principale offre de Microsoft en matière de calcul pour héberger des VM sur Azure. Il existe des types de machines virtuelles optimisées pour le calcul, la mémoire, le « burst » et l’usage général. Pour le stockage des données, Azure propose Azure Storage. Ses offres de stockage sont divisées en sous-catégories, dont :
- Azure Disk Storage
- Azure File Storage
- Azure Blob Storage
Les offres PaaS d’Azure sont regroupées dans une catégorie de services appelée Azure App Service, qui fournit un hébergement et des outils permettant de rationaliser le développement et le déploiement d’applications à l’aide d’une variété de langages de programmation et de frameworks. App Service offre également de la flexibilité aux organisations qui souhaitent personnaliser le fonctionnement de leur PaaS. Les outils intégrés à App Service sont les suivants :
- Azure Web Apps
- Azure Web Apps pour conteneurs
- Azure API Apps
Parmi les fournisseurs de cloud, Azure est sans doute celui dont l’offre PaaS correspond le mieux à l’approche d’une plateforme à la demande. Ainsi, Azure est un bon choix pour les entreprises qui cherchent une rampe de lancement afin de mettre en place les outils nécessaires à l’exploitation d’une PaaS, au sein d’une plateforme IaaS.
Les offres IaaS et PaaS de Google
Comme AWS et Azure, Google propose une offre IaaS – Google Compute Engine (GCE) – qui offre des types de machines prédéfinis et personnalisés. Google propose également des services de stockage, tels que :
- Google Cloud Storage
- Google Cloud Filestore
- Google Persistent Disk
La principale plateforme PaaS de Google, App Engine, est similaire à Azure App Service dans la mesure où elle prend en charge le développement et le déploiement d’applications écrites dans une variété de langages et de frameworks. Elle inclut également une variété d’outils et d’approches de déploiement, dont :
- un environnement standard pour les déploiements en bac à sable, certains codes sources spécifiques, les apps à faible coût et les demandes de mise à l’échelle rapide en fonction des pics ; et
- un environnement flexible pour les applications conteneurisées exécutées sur Google Compute Engine, les applications qui s’appuient sur le réseau Compute Engine, ainsi que celles qui ont un trafic régulier, des moteurs d’exécution personnalisés et qui s’appuient sur des frameworks avec du code natif.
Les développeurs peuvent également combiner les environnements standard et flexibles d’App Engine selon leurs besoins. Grâce à ces options, App Engine est globalement plus flexible qu’Azure App Service.
Google propose également Cloud Run, un autre service de type PaaS dans GCP. Cloud Run rationalise le processus de création d’applications basées sur des conteneurs et leur déploiement sur GCP, alors qu’App Engine est orienté vers les applications non conteneurisées.