Cloud Foundry prend en charge les principaux langages de programmation et frameworks de développement. (Crédit Photo : Cloud Fondry)
Plateforme de développement et de déploiement d'applications en mode cloud, le PaaS vise à faciliter le travail des développeurs. Les offres des fournisseurs en la matière gagnent en maturité et doivent composer avec des technologies comme le serverless et Kubernetes.
Si tout le monde est familiarisé avec le SaaS et le IaaS au sein des entreprises, le PaaS reste un modèle cloud méconnu. Il s'adresse principalement aux développeurs en donnant la possibilité de créer, d'exécuter et de gérer facilement des applications, sans se soucier de l'infrastructure IT. Avec l'avènement du cloud, les fournisseurs ont regroupé les éléments nécessaires à la création d'une application, dans le but de simplifier, voire d'automatiser, bon nombre des tâches les plus délicates et les plus répétitives nécessaire au développement et au déploiement du code. Souvent associé aux offres IaaS, le PaaS inclut aussi l'orchestration de clusters de conteneurs Kubernetes. Par ailleurs, le serverless, une solution cloud qui facilite le développement de certaines applications, est, pour certains, considérée comme une évolution du PaaS.
La simplification est au coeur du PaaS et donne la possibilité de développer des applications plus rapidement et plus facilement, en réduisant la charge de travail du développeur. Ainsi il masque les ressources IT sous-jacentes de calcul, de stockage, de base de données, de système d'exploitation et de réseau nécessaires à l'exécution de l'application. Les offres commerciales de PaaS facturent les clients pour l'utilisation de ces ressources et parfois pour la plate-forme elle-même, soit par poste, soit en fonction du nombre d'applications hébergées. La plupart des outils PaaS fournissent des modèles ou des packs de développement visant à faciliter le processus de build de certains types d'applications courantes. C'est pourquoi les composants du PaaS sont souvent qualifiées « d'encadrées » laissant peu de choix sur le cadre de développement.
Définition du PaaS
Comme d'autres services cloud, tels que le IaaS et SaaS, un PaaS est généralement accessible via Internet, il peut également être déployé sur site ou en mode hybride. L'infrastructure IT sur laquelle les applications sont exécutées est entièrement gérée par le fournisseur de cloud. Dans de nombreux cas, le client décide de la localisation de l'application et choisit le niveau de performance ou de sécurité de cet environnement, souvent moyennant un coût supplémentaire.
Les éléments constitutifs d'un PaaS typique sont les suivants :
Infrastructure managée : L'opérateur gère les serveurs, le stockage et les ressources réseau nécessaires au fonctionnement de l'application.
Outils de conception, de test et de développement : Un IDE rassemble les outils nécessaires à la création effective d'une application, notamment un éditeur de code source, un compilateur et un débogueur. Certains acteurs incluent également des solutions de collaboration afin que les développeurs partagent et contribuent au travail des autres.
Middleware : Un PaaS comprend souvent les outils nécessaires à l'intégration de divers systèmes d'exploitation et applications métiers.
Systèmes d'exploitation et bases de données : Un PaaS fournit les systèmes d'exploitation sur lesquels les applications s'exécutent, ainsi qu'une variété d'options de bases de données managées.
PaaS vs IaaS
Pour beaucoup, le débat « PaaS vs IaaS » a été réglé par le marché, la grande majorité des développeurs étant heureux d'assembler eux-mêmes des applications à l'aide de composants IaaS. Néanmoins, certains d'entre préfèrent s'orienter vers le PaaS de manière distincte pour des raisons de rapidité et de simplicité.
Comme pour toute décision en matière de développement, celle-ci implique des compromis et dépend des objectifs de l'entreprise. Par exemple, une société qui investit fortement dans une solution PaaS veut éviter les perturbations lors d'un passage à un cadre de développement plus moderne. Notamment, si cette solution donne aux développeurs la possibilité de produire rapidement des applications. En revanche, l'environnement de développement « encadré » inhérent au PaaS peut s'avérer bénéfique dans les secteurs fortement réglementés.
Avantages et inconvénients
L'un des principaux avantages du PaaS est la possibilité de créer et de déployer rapidement des applications, sans avoir à mettre en place et à maintenir l'environnement dans lequel elles seront exécutées. En théorie, cela donne aux développeurs la possibilité de déployer plus rapidement et à intervalles plus régulier et de se concentrer sur la logique métier plutôt que de résoudre des problèmes tels que le provisionnement de l'infrastructure IT.
Étant donné que la maintenance d'une plateforme de développement est assurée par un fournisseur de services, les développeurs n'ont pas à se préoccuper de tâches fastidieuses et répétitives telles que le patch management et les mises à jour fonctionnelles (bien que des pannes se produisent encore). Un PaaS constitue également une passerelle pratique vers des techniques de développement et des langages de programmation nativement cloud, sans investir dans la création d'un nouvel environnement.
La plupart des risques associés à l'utilisation d'un PaaS se résument à la perte de contrôle que les développeurs acceptent en confiant leurs applications à un fournisseur de plateforme tiers. Ils comprennent les problèmes de sécurité et d'hébergement des données, les craintes de rétention commerciale (vendor lock-in), l'augmentation rapide des coûts d'hébergement et les pannes.
En outre, avec un PaaS, les développeurs ont une marge de manoeuvre limitée pour modifier leur environnement, ce qui peut conduire certains membres de l'équipe à se sentir emprisonné. L'impossibilité de demander des fonctionnalités supplémentaires aux fournisseur peut conduire les entreprises à construire leur propre PaaS interne.
Exemples de PaaS
Parmi les principaux fournisseurs de ces plateformes figurent AWS (Amazon Web Services), Google Cloud Platform, Microsoft Azure, Red Hat OpenShift, Heroku de Salesforce et Cloud Foundry. Les trois premiers ont tous réalisé des investissements importants pour attirer les développeurs vers leurs services au cours de la dernière décennie. Notamment, en regroupant, au sein d'une plateforme de développement unique, leurs propres composants de cloud computing.
AWS Elastic Beanstalk est l'une des premières options PaaS. Elle déploie et gère rapidement des applications cloud sans avoir à se familiariser avec l'infrastructure IT. Elle gère automatiquement l'allocation de capacité, l'équilibrage de charge, le passage à l'échelle et la surveillance du bon fonctionnement des applications.
Cloud Foundry est un PaaS open source régi par la Cloud Foundry Foundation (CFF). Il a été développé à l'origine par VMware, puis transféré à Pivotal Software, une coentreprise d'EMC, VMware et General Electric, avant d'être transféré à la CFF en 2015. Depuis sa création, Cloud Foundry a évolué pour maintenant développer et exécuter des applications basées sur des conteneurs, en utilisant Kubernetes.
Google App Engine a été conçu pour prendre en charge le développement et l'hébergement d'applications Web dans les centres de données gérés par Google. Les applications sont mises en bac à sable, exécutées et mises à l'échelle automatiquement sur plusieurs serveurs.
Microsoft Azure App Service est un PaaS entièrement géré qui combine divers services Azure en une seule plateforme.
Red Hat OpenShift est une famille d'offres PaaS, hébergées dans le cloud ou déployées sur site, dont l'objectif est de créer et de développer des applications conteneurisées. Le produit phare est OpenShift Container Platform, une solution de développement on prem basée sur Kubernetes. Il créé des applications conteneurisées sur Red Hat Enterprise Linux.
Apprécié depuis longtemps, Heroku a peut-être perdu un peu de terrain depuis son acquisition par Salesforce en 2010, mais il reste une option populaire. Il fait partie de l'offre Plateform du spécialiste du CRM en mod SaaS qui prend en charge un large éventail de langages et fédère des milliers de développeurs. A noter que Heroku utilise des instances nommées « dyno », les containers dans lesquels s'exécutent les composants d'une application.
L'essor du serverless
Elles ne s'associent pas nécessairement au terme PaaS, mais les plateformes modernes de développement comme Vercel et Netlify ont connu un grand succès ces dernières années en offrant aux développeurs une expérience de qualité et une voie simple pour héberger leurs applications. Ces opérateurs promettent de séparer la tâche de développement front web (à l'aide de frameworks web populaires tels que React) de la tâche d'exécution effective de ce code en production. A travers des réseaux CDN des grands opérateurs, ils offrent une option managée pour le déploiement d'applications web modernes, sans rupture de flux ni obligation d'employer une équipe Devops pour s'occuper du fonctionnement des applications.
Les principaux fournisseurs de services cloud s'efforcent également d'aider les clients à faire passer leur code du conteneur à la production plus rapidement en simplifiant les tâches opérationnelles telles que la mise à l'échelle, l'application de correctifs et la gestion des serveurs. Pour cela, ils comptent sur leurs produits, Fargate d'AWS, Container Instances d'Azure et Cloud Run de Google Cloud.
Parallèlement, ils proposent également leurs propres options serverless, notamment Lambda d'AWS, Functions chez Google Cloud et Azure Functions pour Microsoft. Avec ces plateformes de type PaaS, les développeurs extraient des fonctions d'une bibliothèque pour créer les micro-services qui composent les applications modernes. Le serverless présente l'avantage supplémentaire de ne consommer aucun cycle cloud jusqu'à ce qu'une requête de l'utilisateur ne l'enclenche.
Kubernetes vs PaaS
Malgré ses promesses, le PaaS n'est jamais devenu un moyen courant de créer des applications d'entreprise. Les développeurs cherchent généralement à obtenir un meilleur contrôle et une plus grande évolutivité. Cela nous a conduit à l'ère des conteneurs et de Kubernetes. Le problème avec ce dernier est qu'il s'agit d'une technologie open source complexe avec une courbe d'apprentissage difficile. Pour les développeurs qui se lassent de leur PaaS et optent pour des environnements Kubernetes, il est nécessaire d'investir dans une équipe spécialisée. Cette décision peut s'avérer utile à long terme, car Kubernetes offre un moyen cohérent de déployer et d'exécuter des applications dans pratiquement tous les environnements, mais elle ne doit pas être sous-estimée.
Il y a quelques années que le PaaS a été remplacé par l'idée de la gestion et de l'automatisation des conteneurs. Les principaux fournisseurs de plates-formes comme Red Hat, VMware et les opérateurs de cloud public ayant décidé de faciliter l'adoption des conteneurs et de Kubernetes. Cela a donné lieu à une pléthore d'options en mode as a service (Container, serverless, FaaS). Cela ne signifie pas nécessairement que le PaaS est mort, mais certainement qu'il est en train d'évoluer à mesure que le secteur se tourne vers les applications conteneurisées via Kubernetes.
Suivez-nous