adzicnatasa - stock.adobe.com

Ces PaaS open source (ou presque) que tout bon développeur doit connaître

Une PaaS open source est une bonne option pour les développeurs qui souhaitent contrôler l’hébergement de leurs applications et simplifier leur déploiement, mais il est important de connaître ses fondations techniques, ses principaux soutiens (commerciaux ou non) et la nature de sa licence.

La PaaS (Platform as a Service) fournit un modèle d’hébergement d’applications qui fait abstraction de la plupart des infrastructures sous-jacentes nécessaires au déploiement d’un logiciel sur le cloud. Il s’agit de simplifier le processus de développement de bout en bout. Un cran en dessous du SaaS, les outils PaaS réduisent les frais généraux nécessaires au déploiement des dépendances de l’application, telles que les bases de données, et simplifient la grande majorité des opérations DevOps, telles que la répartition des charges.

La PaaS est populaire parmi les développeurs, car elle réduit le temps de mise sur le marché de la plupart des produits. Cette plateforme doit éliminer la complexité de la gestion des serveurs et en simplifiant les processus de déploiement qui sont traditionnellement plus complexes dans les environnements IaaS.

Les PaaS open source à surveiller

Il existe aujourd’hui sur le marché un certain nombre de PaaS open source populaires, chacune ayant ses spécificités. Les outils listés par ordre alphabétique ci-dessous sont neuf des projets les plus populaires – et de plus en plus appréciés – que les équipes d’ingénieurs utilisent afin de s’affranchir des complexités de la gestion de l’infrastructure, qu’elle soit cloud ou non.

Cloud Foundry

Cloud Foundry est une plateforme puissante. Elle peut être déployée n’importe où à l’aide de BOSH, un outil multi-plateforme développé par la communauté pour déployer et gérer des logiciels à l’échelle sur le cloud, sur des machines virtuelles.

Cloud Foundry est principalement géré à l’aide d’un CLI personnalisé et adopte une approche modulaire de sa propre place de marché de services, qui peut être améliorée avec des fonctionnalités telles que le flux de journaux et la prise en charge de l’authentification unique. La place de marché de services simplifie le déploiement des éléments tels que des bases de données, mais elle peut également servir d’intermédiaire pour les communications avec des API tierces, telles que GitHub et AWS.

Exploitée par des géants de l’édition, dont SAP, Cloud Foundry réclame toutefois des déploiements et du développement spécifiques. Depuis peu et après des années de conflits communautaires, l’écosystème mise sur Kubernetes. C’est l’objectif du projet Korifi, qui intime le remplacement de la plupart des composants traditionnels de CF par des équivalents K8s. Il est désormais possible d’interagir depuis le CLI avec l’API Korifi, tout en conservant les commandes (par exemple cf push) qui ont fait connaître l’outil. Se pose tout de même la question de savoir comment le projet va évoluer. L’un des principaux soutiens de Cloud Foundry est VMware, racheté par Broadcom. Le nouveau propriétaire mise moins sur une PaaS que sur une galaxie d’outils complémentaire au célèbre orchestrateur.

Caractéristiques principales :

  • Client CLI pour l’intégration dans les outils de construction existants.
  • Prise en charge d’une infrastructure flexible grâce aux stemcells BOSH.
  • Prise en charge de la plupart des principaux langages de programmation et des buildpacks personnalisés.
  • Place de marché intégré pour améliorer les fonctionnalités de déploiement.

Coolify

Alors que la plupart des solutions PaaS offrent un certain niveau d’automatisation de la gestion, Coolify se distingue par l’importance extrême qu’il accorde à l’automatisation de pratiquement toutes les tâches de gestion possibles. Il fournit une surveillance intégrée personnalisable, des sauvegardes et des scripts de maintenance de serveur. Coolify offre également une expérience de déploiement simple – il suffit d’une seule commande curl pour télécharger et exécuter le script d’installation de Coolify. Coolify est également étroitement intégré à Git par défaut. Cela permet de déployer facilement des applications à la mode GitOps.

Cette PaaS bénéficie également d’un soutien commercial qui, pour l’heure, est une offre de support, mais plusieurs fonctionnalités sont en cours de développement.

Caractéristiques principales :

  • Automatisations étendues disponibles dès le départ.
  • Intégration automatique avec Git.
  • Option de gestion des serveurs et des ressources à partir d’APIs.

Dokku

Dokku est une plateforme PaaS headless dont les contributeurs vantent la sobriété et la facilité d’utilisation. Dokku prend officiellement en charge un CLI, mais des interfaces utilisateur tierces, telles que Ledokku et Shokku, sont disponibles. Sa conception est fortement inspirée de l’outillage de Heroku. Dokku est une PaaS populaire et peu coûteuse, mais ce qui la distingue vraiment, c’est son architecture de plugins.

Construit entièrement comme une collection de plugins bien structurés, Dokku peut être facilement étendu pour installer des dépendances dans un référentiel d’application unique, comme des bases de données et des services de mise en cache, tout en permettant également la prise en charge de fonctionnalités supplémentaires telles que l’enregistrement de certificats SSL/TLS Let’s Encrypt et même des notifications Slack automatisées.

Caractéristiques principales :

  • Client CLI pour l’intégration dans les outils de builds existants.
  • Stratégie de déploiement basée sur Git push similaire à Heroku.
  • Architecture extensive de plugins.
  • Support Docker intégré pour une utilisation avancée.

Lagoon

Lagoon d’Amazee.io est une solution PaaS basée sur Kubernetes. Lancée en 2017 et acquise par Mirantis en 2022, Lagoon prend en charge le déploiement sur n’importe quelle infrastructure cloud ou sur site. Elle offre également une approche composable et centrée sur les API pour la configuration et la gestion de la PaaS, donnant aux équipes de développement et de plateforme plus de contrôle sur la façon dont elles configurent leur PaaS.

Lagoon est entièrement open source et peut fonctionner n’importe où. Amazee.io propose des déploiements PaaS basés sur Lagoon sur une infrastructure managée à partir de 199 $ par mois.

Caractéristiques principales :

  • Conception agnostique de l’infrastructure permettant la compatibilité avec n’importe quel nuage public ou infrastructure sur site.
  • Plateforme composable permettant une grande flexibilité dans la configuration du PaaS.
  • Déploiement simple basé sur Docker.
  • Plan d’hébergement payant et assistance disponibles.

OKD (ex-OpenShift Origin)

Le noyau open source qui alimente la PaaS commerciale OpenShift de Red Hat, OKD, est une distribution améliorée de Kubernetes optimisée pour les fonctionnalités centrées sur le développeur, telles que le développement continu et le déploiement multitenant. Conçue pour exécuter n’importe quelle charge de travail Kubernetes, OKD a été élaborée en gardant à l’esprit la facilité d’utilisation pour les équipes.

Avec une console Web et un CLI, OKD crée un hub centralisé pour tout gérer, de la pile technologique sous-jacente à l’équipe et à l’organisation. Red Hat présente la plateforme comme une « sœur » de Kubernetes, et non un fork de l’orchestrateur. Il s’agit de la distribution « upstream » de Red Hat OpenShift : il faudra donc passer par la version payante pour accéder à certaines fonctions avancées.

Malgré le risque posé par l’attitude récente de Red Hat et de sa maison mère envers ses projets open source, OKD demeure une base solide pour qui voudrait déployer une PaaS.

Caractéristiques principales :

  • Prise en charge native de LDAP (Lightweight Directory Acess Protocol), Active Directory et de Oauth
  • Déploiement multitenant
  • Hooks de déploiements automatisés via Git
  • Un CLI et un GUI pour la compilation et la surveillance des applications.

Rancher

Rancher, qui a été lancé en 2014 et appartient à SUSE depuis 2020, se présente actuellement comme un outil Kubernetes-as-a-service plutôt que comme une PaaS. Cependant, son histoire lui vaut une place dans cette liste. Offrant un large éventail de fonctionnalités pour déployer et gérer des clusters Kubernetes sur un certain nombre de clouds et d’infrastructures, y compris VMware vSphere, Rancher aide au déploiement de conteneurs applicatifs sans se mettre en travers du chemin du développeur.

Comme les autres outils PaaS de cette liste, Rancher offre une multitude de fonctionnalités supplémentaires pour gérer les utilisateurs, les clusters et les organisations dans un emplacement central. Bien que son outil de ligne de commande agisse comme une extension de l’outil kubectl existant, son interface graphique fournit de bonnes fonctions d’aide pour déployer et gérer les applications en cloud.

Sous licence Apache 2.0, Rancher est gratuit et peut être téléchargé et utilisé partout, mais des plans payants sont disponibles pour les utilisateurs souhaitant un déploiement entièrement géré et un support de niveau entreprise.

Caractéristiques principales :

  • Déploiement simple basé sur Docker.
  • Prise en charge multicloud grâce à la gestion de plusieurs clusters Kubernetes.
  • CLI et GUI pour la gestion des applications.
  • Plan d’hébergement et support payants disponibles.

Tsuru

Tsuru est une autre PaaS open source qui peut être déployée à l’aide de Docker sur pratiquement n’importe quelle infrastructure, avec seulement quelques commandes. La plateforme nécessite toutefois davantage de configurations que d’autres solutions dans cette liste. Les utilisateurs peuvent également installer Tsuru en utilisant des paquets Debian ou des binaires préconstruits ou en le reconstruisant à partir des sources. Tsuru met l’accent sur l’extensibilité et la facilité d’utilisation pour les développeurs. Son plus grand intérêt réside toutefois dans l’utilisation d’une API pour communiquer avec les API de service. Cela permet aux développeurs de connecter Tsuru à des services, tels qu’un service de base de données, par l’intermédiaire d’API, sans que Tsuru ait à s’intégrer à ces services ou à les gérer directement. Cela permet une approche plus souple du déploiement et de l’intégration des applications.

Caractéristiques principales :

  • Option de déploiement basée sur Docker.
  • Possibilité d’étendre le déploiement PaaS à volonté en modifiant les images de base.
  • Intégration basée sur l’API avec les services.

L’enjeu des licences et de la durabilité des PaaS

Bien que la facilité d’utilisation soit l’un des points forts de la PaaS, il existe certains inconvénients. Tout d’abord, le verrouillage auprès d’un éditeur pose un sérieux problème. L’infrastructure virtualisée proposée par la plupart des fournisseurs cloud peut être déplacée vers d’autres fournisseurs, si nécessaire, mais les déploiements PaaS sont spécialisés et, en général, non reproductibles. Le passage d’un éditeur à un autre nécessite beaucoup de frais généraux et d’efforts. L’adaptation à une offre IaaS, CaaS ou à une autre PaaS n’a évidemment rien d’évident.

Les deux acteurs référencés ci-dessous ont effectué des modifications de leurs licences open source (Apache 2.0 et MIT). Même si les solutions offertes sont intéressantes pour certaines entreprises, principalement des startups, elles soulignent que l’utilisation de telles plateformes n’est jamais sans risque. Certains des projets évoqués plus haut sont justement nés après les changements de conditions d’usage de Heroku, puis la suppression des offres gratuites. La portabilité des conteneurs Docker et l’usage de plus en plus récurrent de Kubernetes comme moteurs de ces produits et projets permettent d’obtenir une certaine indépendance face à ces changements imprévus.

CapRover, une PaaS libre

CapRover est une PaaS populaire chez les startups. Gratuite depuis son lancement en 2017, elle peut fonctionner sur n’importe quelle infrastructure cloud et sur site. Construite à l’aide de TypeScript, CapRover est simple d’utilisation. Les développeurs peuvent la déployer sur n’importe quelle infrastructure avec un Docker-Swarm. Elle est également disponible pour un déploiement managé en un clic sur DigitalOcean, un fournisseur de cloud pour lequel CapRover semble offrir une intégration spéciale, mais elle sert avant tout au déploiement d’environnements sur Hetzner.

Les utilisateurs peuvent déployer presque n’importe quelle application sur CapRover à moindres frais grâce à son format de fichier Captain Definition. Ce fichier décrit toutes les ressources et autres dépendances nécessaires au bon fonctionnement de l’application sous-jacente.

CapRover se distingue par sa place de marché intégrée d’applications, accessibles en un seul clic. Cela simplifie le déploiement de technologies communes, telles que MongoDB, PostgreSQL, NodeJS, WordPress ou encore MySQL, et réduit la complexité globale du déploiement d’une application sur CapRover. Bien que les créateurs de CapRover présentent le projet comme open source, son principal contributeur réclame une autorisation écrite pour toute utilisation commerciale du projet sous licence Apache 2.0 modifiée. Cet ajout protège la nature gratuite et libre de la librairie, tant que le responsable du projet s’y engage.

Caractéristiques principales :

  • Approvisionnement automatique en certificats SSL/TLS (Secure Sockets Layer/Transport Layer Security) à partir de Let’s Encrypt.
  • Client CLI local pour l’automatisation.
  • Interface graphique accessible via le Web pour faciliter l’utilisation.
  • Prise en charge de toutes les applications basées sur Docker.
  • Place de marché intégrée pour le déploiement en un clic d’autres applications open source populaires.

Porter, une PaaS Open Core

Porter, relativement nouveau sur la scène des PaaS, est une plateforme propulsée par Kubernetes lancée en 2020 comme une alternative à Heroku. Cette solution commerciale affublée d’une licence propriétaire permissive (licences MIT+ee) est dotée de capacités d’autohébergement, Porter est un outil bien conçu avec un tableau de bord Web qui soigne autant la forme que le fond.

Plutôt que de gérer toute l’infrastructure lui-même, Porter fournit automatiquement un cluster Kubernetes sur le fournisseur de cloud préféré de l’utilisateur, moyennant un léger surcoût en sus des frais liés aux services cloud. Les utilisateurs paient une redevance à Porter – sauf dans le cadre du plan gratuit de la société, qui permet un déploiement à échelle limitée sans frais de gestion – tout en payant le fournisseur cloud pour l’infrastructure qu’ils consomment. Cette approche permet aux utilisateurs de mieux contrôler l’infrastructure sous-jacente, tandis que Porter fait abstraction de toute la complexité de Kubernetes pour en faciliter l’adoption.

Caractéristiques principales :

  • CLI et GUI pour le déploiement et la gestion des applications.
  • Déploiements simplifiés sur AWS, de Google Cloud Platform et de DigitalOcean.
  • Place de marché intégrée pour les modules complémentaires en un clic, tels que les bases de données et les services de mise en cache.
  • Prise en charge native de Docker et de buildpacks.

Pour approfondir sur PaaS