Cet article explore les plateformes PaaS les plus couramment utilisées pour héberger des applications contemporaines.
Le PaaS (Platform as a Service) est un modèle de service cloud où un prestataire met à disposition une infrastructure permettant aux clients de développer et d’héberger leurs applications. Les développeurs et les équipes DevOps utilisent cette plateforme pour la conception, le test et l’exécution des applications. Ils peuvent ainsi se concentrer sur la création de leur application, laissant la gestion de la configuration de la plateforme au fournisseur de services.
Le PaaS contribue à accélérer le développement applicatif, car les développeurs se focalisent exclusivement sur le code, déléguant les soucis d’infrastructure au fournisseur. Plusieurs plateformes PaaS sont disponibles pour ceux qui souhaitent développer leur application rapidement.
Vous trouverez ci-dessous une sélection de plateformes gérées. Pour créer votre propre PaaS en interne, vous pouvez explorer les logiciels mentionnés.
Google App Engine
Google Cloud propose une solution sans serveur entièrement gérée, nommée App Engine, permettant de créer des applications hautement évolutives. L’utilisation d’App Engine pour développer votre application vous libère de la gestion des serveurs et de l’infrastructure.
Deux options d’environnement sont proposées : standard et flexible.
L’environnement standard exécute vos instances applicatives dans un environnement isolé. Il est idéal pour gérer les pics de trafic nécessitant une mise à l’échelle rapide. L’environnement flexible, quant à lui, utilise des conteneurs Docker et est adapté aux fortes fluctuations de trafic. Il est possible d’utiliser ces deux environnements simultanément.
Si votre application a besoin d’être mise à l’échelle, quelques clics suffisent pour ajuster les ressources en quelques minutes.
Fonctionnalités de Google Cloud App Engine :
- Gestion et configuration sans serveur
- Rentabilité : vous ne payez que ce que vous consommez
- Protection de votre application grâce aux règles IAM et aux capacités de pare-feu
- Flexibilité dans le choix du langage de développement : Java, Python, Node.js, Go, Ruby, C#, PHP, ou la possibilité d’utiliser votre propre runtime
- Fonctionnalités de journalisation et de surveillance pour un suivi optimal de votre application
- Gestion simplifiée des différentes versions de votre application et création facile d’environnements (DEV, TEST, PROD)
Cette plateforme est très avantageuse en termes de coût. Les nouveaux utilisateurs bénéficient d’un crédit gratuit de 300 $ pendant les 90 premiers jours.
Plateforme d’application DO
DigitalOcean a récemment lancé une Plateforme d’application qui gagne en popularité auprès des développeurs.
Elle récupère automatiquement votre code depuis GitHub, le construit et le déploie dans le cloud. Toute mise à jour de votre code sur GitHub entraîne un redéploiement de votre application. C’est ce qu’on appelle GitOps.
N’est-ce pas pratique ?
Fonctionnalités de la plateforme d’applications DigitalOcean :
- Provisionnement et gestion du système d’exploitation, de l’infrastructure, des dépendances et des bases de données
- Gestion des certificats SSL et protection contre les attaques DDoS
- Déploiement direct depuis les dépôts GitHub
- Options de mise à l’échelle économique sans interruption de service pour votre application
- Prise en charge des applications utilisant Python, React, Node.js, Laravel, Ruby, Ruby on Rails, GoLang, Gatsby, Hugo, Dockerfile, les sites statiques et bien d’autres
La plateforme d’application peut être gérée via le tableau de bord DO ou l’API. Le tarif de départ est de 5 $ par mois, ce qui est idéal pour les petites et moyennes entreprises.
Platform.sh
Platform.sh est une solution PaaS complète pour la création, l’exécution et la mise à l’échelle d’applications. Elle est spécialement conçue pour le déploiement continu et reconnue pour sa plateforme cloud performante.
Ci-dessous, vous trouverez les différents plans tarifaires de Platform.sh avec leurs caractéristiques principales :
Fonctionnalités de Platform.sh :
- Marché proposant divers langages et bases de données
- Gestion de la sécurité et des mises à jour ; pas de patch manuel requis.
- Clonage instantané de l’environnement de production pour chaque branche Git, offrant une expérience de niveau production aux développeurs et aux ingénieurs QA.
- Déploiement continu de conteneurs pour les versions testées en production
- Support multicloud pour déployer des applications et des sites web dans le monde entier
Les centres de données de Platform.sh sont situés à Montréal, en Virginie du Nord, à Washington, à Dublin, à Paris, à Londres, à Francfort et à Sydney. Ils proposent des solutions adaptées aux entreprises.
Jelastic
Jelastic fournit une plateforme en tant que service pour les développeurs. Elle simplifie le déploiement, la mise à l’échelle et la gestion de vos applications dans le cloud. Vous pouvez définir des déclencheurs dans Jelastic pour ajuster la taille de votre plateforme, de manière horizontale ou verticale, en cas de pic de trafic.
Elle propose un tableau de bord pour gérer facilement vos applications, avec un accès aux logs et aux fichiers de configuration. La fonctionnalité de collaboration d’équipe permet d’inviter des membres à participer à la gestion de l’application.
Le modèle de tarification est basé sur l’utilisation. Un calculateur de coûts est disponible pour estimer le coût de fonctionnement de votre application sur Jelastic.
Caractéristiques de Jelastic :
- Interface utilisateur et API pour le provisionnement automatisé de la plateforme
- Mise à l’échelle verticale et horizontale automatique
- Intégration avec les outils CI/CD pour l’automatisation
- Automatisation de la distribution du trafic pour un déploiement sans interruption
- Possibilité d’arrêter, redémarrer, cloner des applications en hibernation
- Plugins IDE intégrés pour Eclipse, IntelliJ IDEA, NetBeans
- Visualiseur de logs et gestionnaire de configuration via le tableau de bord
Jelastic est compatible avec le développement d’applications Java, PHP, Python, Node.js, Ruby, Go et Docker et Kubernetes.
Service d’applications Azure
Service d’applications Azure est la solution proposée par Microsoft. Elle permet de créer et d’héberger des applications web, des backends mobiles et des API RESTful dans le langage de votre choix, sans avoir à gérer l’infrastructure. Elle offre une mise à l’échelle automatique et une haute disponibilité, et est compatible avec Windows et Linux.
Elle permet des déploiements automatisés à partir de GitHub, Azure DevOps ou de tout autre dépôt Git. Elle promet de répondre aux exigences de sécurité et de performance des entreprises, en gérant jusqu’à 40 milliards de requêtes par jour. Il est possible d’économiser jusqu’à 55 % avec les nouvelles instances de service d’application réservées par rapport au modèle de paiement à l’utilisation.
Elle intègre un système de surveillance pour le dépannage en direct. Vous pouvez utiliser Azure Monitor et Application Insights pour vérifier la santé et les performances de votre application. Un système d’alerte en temps réel vous avertit immédiatement de tout problème inattendu.
Fonctionnalités d’Azure App Service :
- Prise en charge de nombreux langages tels que C #, PHP, Java, Python, Ruby, etc.
- Intégration CI/CD avec Azure DevOps, GitHub, BitBucket, DockerHub, etc.
- Garantie de haute disponibilité avec une disponibilité de 99,95 %
- Mise à l’échelle verticale ou horizontale facilitée
- Conformité avec les normes SOC et PCI pour la sécurité
- Fonctionnalités d’authentification via Azure AD et d’autres fournisseurs d’identité (Google, Microsoft Live, Facebook, etc.)
- Intégration facile avec Visual Studio
Azure est particulièrement adapté aux besoins des entreprises.
Plateforme Heroku
Heroku est un pionnier parmi les fournisseurs de PaaS.
Heroku vous permet de vous concentrer sur la fourniture de solutions et le déploiement d’applications, en vous déchargeant des opérations. Avec la plateforme Heroku, la création et le déploiement de fonctionnalités sont à portée de main. Tout ce qui est nécessaire pour votre application est géré par Heroku. Dans l’univers DevOps, Heroku s’occupe de la partie opérationnelle, pendant que vous vous concentrez sur le développement.
Heroku est une plateforme centrée sur les développeurs, les applications et la production. Elle offre une expérience utilisateur simplifiée, en éliminant les tâches répétitives non liées au développement. Cela permet d’accélérer la mise en production d’applications, et de les déployer dans un environnement de production sans complication.
La gestion de la plateforme se fait via le tableau de bord ou l’interface en ligne de commande (CLI).
Heroku fournit les outils suivants pour simplifier la création de votre application :
- Heroku Developer Experience (DX) : axé sur l’approche de développement logiciel, permettant aux développeurs de se concentrer sur la création et la livraison continue d’applications.
- Heroku Operational Experience (OpEx) : permet de résoudre les problèmes de votre application et vous alerte en cas de tendances négatives. Il intègre des fonctionnalités d’alerte de seuil, de mise à l’échelle automatique et de suivi des métriques de l’application.
- Heroku Runtime : exécute votre application dans un environnement géré et fiable appelé Dyno, des conteneurs intelligents dédiés à votre application.
Le prix d’Heroku est lié au type d’application. Heroku exécute votre application dans des conteneurs Linux isolés appelés Dyno.
AWS Elastic Beanstalk
AWS Elastic Beanstalk permet de déployer vos applications développées avec Java, .NET, PHP, Node.js et bien d’autres, sur des serveurs comme Apache, Nginx, Tomcat. Les développeurs doivent simplement charger leurs applications sur Elastic Beanstalk.
Des fonctionnalités telles que l’équilibrage de charge, la mise à l’échelle automatique et la surveillance de l’état de l’application sont gérées automatiquement par AWS.
Elastic Beanstalk simplifie tout le processus de développement applicatif. Les développeurs se concentrent sur l’écriture du code, tandis qu’AWS gère le reste : surveillance des serveurs, stockage, réseau, virtualisation, système d’exploitation et bases de données.
Fonctionnalités d’AWS Elastic Beanstalk :
- Multiples options de déploiement : console de gestion AWS, Eclipse, Visual Studio, Beanstalk CLI
- Prise en charge de nombreux langages et plateformes : Java, .NET, Python, Ruby, PHP, Node.js, Go, Docker.
- Utilisation de la mise à l’échelle automatique et de l’équilibrage de charge élastique
- Possibilité de personnaliser et de choisir les ressources AWS pour votre application
- Suivi de la santé de l’application avec plus de 40 métriques et attributs clés
L’utilisation d’AWS Elastic Beanstalk est gratuite, vous payez uniquement pour les ressources AWS utilisées pour stocker et exécuter votre application.
Conclusion
Si vous êtes développeur ou membre d’une équipe de développement et que vous souhaitez vous concentrer uniquement sur la création de votre application, les plateformes PaaS sont la solution. Les plateformes présentées permettent de déployer, d’exécuter et de faire évoluer vos applications en toute simplicité. Si vous préférez l’hébergement traditionnel sur une machine virtuelle, vous pouvez explorer les plateformes d’hébergement cloud mentionnées.
Passez à la production en quelques jours, et non en quelques mois !