Qu’est-ce que le PaaS (plateforme en tant que service) ? Un moyen plus simple de créer des applications logicielles
PaaS (plate-forme en tant que service) est une forme de cloud computing qui permet aux développeurs de logiciels de créer, d’exécuter et de gérer facilement des applications logicielles, sans se soucier de l’infrastructure sous-jacente. L’avènement du cloud computing a permis aux fournisseurs de regrouper les éléments de base 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écessaires au déploiement de code.
PaaS accomplit tout cela, mais à quelques exceptions près, il est devenu un service disponible sur les clouds IaaS (infrastructure en tant que service) plutôt qu’une offre cloud distincte et inclut souvent l’orchestration de conteneurs Kubernetes. L’informatique sans serveur, un type de plate-forme cloud qui facilite encore plus le développement de certains types d’applications, est considérée comme une évolution du PaaS.
La simplification inhérente au PaaS permet un développement logiciel plus rapide et plus facile, réduisant la portée du travail des développeurs en masquant les ressources sous-jacentes de calcul, de stockage, de base de données, de système d’exploitation et de réseau nécessaires pour exécuter l’application. Les offres PaaS commerciales facturent aux clients l’utilisation de ces ressources et parfois 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 construction visant à faciliter le processus de construction de certains types d’applications courantes en faisant abstraction d’un ensemble de décisions ou de processus courants pour les développeurs. C’est pourquoi les options PaaS sont souvent qualifiées d’opiniâtres, car elles fournissent aux développeurs une méthode clairement définie, bien que quelque peu restreinte, pour créer et exécuter des applications.
PaaS défini
Comme pour les autres services cloud tels que l’infrastructure en tant que service (IaaS) et le logiciel en tant que service (SaaS), un PaaS est généralement accessible via Internet, mais peut également être déployé sur site ou en mode hybride.
L’infrastructure sous-jacente sur laquelle les applications s’exécutent finalement est entièrement gérée par le fournisseur de services. Dans de nombreux cas, le client peut décider où l’application est hébergée et a le choix sur la performance ou la sécurité de cet environnement, souvent à un coût supplémentaire.
Les éléments constitutifs d’un PaaS typique comprennent :
- Infrastructures gérées : Le fournisseur gère les serveurs, le stockage, les centres de données et les ressources réseau nécessaires à l’exécution de votre application.
- Outils de conception, de test et de développement : Un environnement de développement intégré rassemble les outils nécessaires à la création de logiciels, notamment un éditeur de code source, un compilateur et un débogueur. Certains fournisseurs incluent également des outils de collaboration qui permettent aux développeurs de partager et de contribuer au travail des autres.
- Intergiciel : Un PaaS comprend souvent les outils nécessaires pour intégrer divers systèmes d’exploitation et applications utilisateur.
- Systèmes d’exploitation et bases de données: Un PaaS fournit les systèmes d’exploitation sur lesquels les applications peuvent s’exécuter, ainsi qu’une variété d’options de bases de données gérées.
PaaS contre IaaS
Pour beaucoup, le débat PaaS contre IaaS a été réglé par le marché, la grande majorité des développeurs se contentant d’assembler eux-mêmes des applications à l’aide de blocs de construction IaaS. Néanmoins, les développeurs à la recherche de la voie la plus rapide vers le marché peuvent toujours se tourner vers le PaaS à la recherche de rapidité et de simplicité.
Comme pour toute décision dans le développement de logiciels, cela a ses compromis et dépend de ce qu’une organisation cherche à réaliser. Par exemple, une organisation qui a beaucoup investi dans une solution PaaS particulière peut souhaiter éviter l’interruption du passage à une approche de développement plus moderne si cette PaaS permet toujours aux développeurs de produire rapidement des applications adaptées. Dans d’autres cas, les choix limités des développeurs inhérents au PaaS peuvent en fait être bénéfiques dans les industries fortement réglementées.
Avantages et inconvénients du PaaS
L’un des plus grands avantages de l’utilisation d’un PaaS est la possibilité de créer et de déployer des applications rapidement, sans la lourde charge nécessaire pour configurer et maintenir l’environnement dans lequel elles s’exécuteront. Ceci, en théorie, donne aux développeurs la possibilité de déployer plus rapidement et à des intervalles plus fréquents, ainsi que de se concentrer sur la différenciation de la logique métier plutôt que sur la résolution de problèmes tels que le provisionnement de l’infrastructure.
Parce qu’un PaaS est maintenu par un fournisseur de services, avec des accords de niveau de service et d’autres garanties, les développeurs n’ont pas à se soucier des tâches fastidieuses et répétitives comme les correctifs et les mises à niveau et peuvent être sûrs que leur environnement sera hautement disponible et stable (bien que les pannes le fassent). se produisent encore).
Un PaaS peut également être une passerelle pratique vers de nouvelles techniques de développement et langages de programmation natifs du cloud, sans l’investissement initial de la création d’un nouvel environnement.
La plupart des risques liés à l’utilisation d’un PaaS se résument à la perte de contrôle que les développeurs professionnels doivent accepter en cédant leurs applications à un fournisseur de plateforme tiers. Ces risques incluent les problèmes de sécurité des informations et de résidence des données, les craintes de verrouillage des fournisseurs, l’augmentation rapide des coûts d’hébergement et les pannes imprévues.
Avec un PaaS, les développeurs ont une marge de manœuvre limitée pour modifier leur environnement de développement, ce qui peut amener certains membres de l’équipe à se sentir coincés. L’incapacité d’apporter des modifications à l’environnement ou d’obtenir des demandes de fonctionnalités déployées par le fournisseur de services peut conduire les entreprises à dépasser leur PaaS et construire leur propre plate-forme de développement interne.
Exemples PaaS
Parmi les principaux fournisseurs de PaaS figurent AWS (Amazon Web Services), Google Cloud Platform, Microsoft Azure, Red Hat OpenShift et Salesforces Heroku.
Les trois grands fournisseurs de cloud AWS, Microsoft Azure et Google Cloud ont tous fait d’importants investissements pour attirer les développeurs vers leurs services au cours de la dernière décennie, rassemblant leurs propres composants cloud dans un PaaS avisé pour une adoption plus facile.
Certaines des principales options PaaS encore sur le marché aujourd’hui incluent les suivantes.
AWS Elastic Beanstalk
L’une des premières options PaaS, AWS Elastic Beanstalk permet un déploiement et une gestion rapides des applications cloud sans avoir à se renseigner sur l’infrastructure sous-jacente. Elastic Beanstalk gère automatiquement les détails du provisionnement de capacité, de l’équilibrage de charge, de la mise à l’échelle et de la surveillance de l’état des applications.
Fonderie de nuages
Cloud Foundry est un PaaS open source régi par la Cloud Foundry Foundation (CFF). Il a été initialement développé par VMware, puis transféré à Pivotal Software, une coentreprise d’EMC, VMware et General Electric, avant d’être transféré au CFF en 2015. Cloud Foundry est conçu pour créer et exécuter des applications basées sur des conteneurs, en utilisant Kubernetes pour l’orchestration. .
Google App Engine
Google App Engine était une autre entrée PaaS précoce. Il 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.
Service d’application Microsoft Azure
Microsoft Azure App Service est un PaaS entièrement géré qui combine divers services Azure en une seule plateforme.
Red Hat OpenShift
Red Hat OpenShift est une famille d’offres PaaS qui peuvent être hébergées dans le cloud ou déployées sur site, pour créer et déployer des applications conteneurisées. Le produit phare est OpenShift Container Platform, un PaaS sur site basé sur Kubernetes pour la création d’applications conteneurisées sur une base de Red Hat Enterprise Linux.
Salesforce Heroku
Un PaaS précoce et très apprécié, Heroku a peut-être perdu son chemin depuis son acquisition par le géant SaaS Salesforce en 2010, mais il reste une option populaire pour les développeurs.
Aujourd’hui, Heroku fait partie de la plate-forme plus large d’outils de développement Salesforce, prenant en charge un large éventail de langages et des milliers de développeurs qui y exécutent des applications. En pratique, l’utilisation d’Heroku implique de s’appuyer sur un environnement d’exécution commun déployé dans des conteneurs Linux virtualisés ou dynoscomme Heroku les appelle répartis sur une grille dynamique de serveurs AWS.
L’essor du PaaS sans serveur
Ils ne s’associent peut-être pas nécessairement au terme PaaS, mais les plates-formes de développement de logiciels modernes comme Vercel et Netlify ont connu un grand succès ces dernières années en offrant aux développeurs une expérience élégante et un moyen simple d’héberger leurs applications.
Au fond, ces fournisseurs promettent de séparer la tâche de développement Web frontal (à l’aide de frameworks Web populaires tels que React) du travail d’exécution réelle de ce code en production.
En construisant des réseaux périphériques mondiaux au-dessus des principaux fournisseurs de cloud, ces fournisseurs offrent une voie gérée pour déployer des applications Web modernes, sans interrompre le flux ni avoir à employer une équipe de développement pour se soucier de l’exécution des applications à grande échelle.
Les principaux fournisseurs de cloud s’efforcent également d’aider les clients à faire passer leur code du conteneur à la production plus rapidement en faisant abstraction des tâches opérationnelles telles que la mise à l’échelle, l’application de correctifs et la gestion des serveurs via leurs produits AWS Fargate, Azure Container Instances et Google Cloud Run.
Dans le même temps, les principaux clouds proposent également leurs propres options de calcul sans serveur, notamment AWS Lambda, Google Cloud Functions et Microsoft Azure Functions. Essentiellement, ces plates-formes de type PaaS permettent aux développeurs de récupérer des fonctions à partir d’une bibliothèque pour créer les microservices constitutifs qui composent les applications modernes sans avoir à prendre en compte l’infrastructure de serveur sous-jacente lors de leur codage. Les applications sans serveur ont l’avantage supplémentaire de ne consommer aucun cycle de cloud jusqu’à ce qu’une demande d’utilisateur les lance.
Kubernetes contre PaaS
Malgré ses promesses, le PaaS n’est jamais devenu un moyen courant de créer des applications de niveau entreprise, car les développeurs recherchaient généralement un contrôle et une évolutivité accrus selon leurs propres conditions. Cela nous a plutôt conduits à l’ère des conteneurs logiciels et de Kubernetes.
Le problème avec l’outil d’orchestration de conteneurs Kubernetes est qu’il s’agit d’une technologie open source complexe avec une courbe d’apprentissage abrupte. Pour les développeurs qui dépassent leur PaaS et migrent vers des conteneurs orchestrés par Kubernetes, les frais généraux de gestion de cette plate-forme nécessitent une équipe d’ingénieurs spécialisés, au détriment de la simplicité qu’un PaaS offre aux développeurs. Cette décision peut être utile à long terme, car Kubernetes vous offre un moyen cohérent de déployer et d’exécuter des applications dans pratiquement n’importe quel environnement, mais ce n’est pas à prendre à la légère.
Le PaaS a peut-être depuis longtemps été largement subsumé 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 fournisseurs de cloud public ayant dûment pivoté dans le sens d’une adoption plus facile des conteneurs et de Kubernetes ces dernières années. Cela a conduit à une pléthore d’options Kubernetes gérées, de conteneurs en tant que service (CaaS), d’informatique sans serveur et de fonction en tant que service (FaaS)., tous visant à alléger le fardeau de la gestion des clusters de conteneurs et à aplanir cette courbe d’apprentissage, tout en offrant aux développeurs la flexibilité et la portabilité qu’ils exigent.
Rien de tout cela ne signifie que le PaaS est mort, nécessairement, mais le PaaS évolue certainement à mesure que l’industrie évolue largement vers des applications conteneurisées orchestrées par Kubernetes. Il y aura toujours un marché pour simplifier le développement de logiciels, mais la plate-forme sous-jacente pour le faire a changé avec le temps.
Copyright © 2022 IDG Communications, Inc.