WavebreakMediaMicro - Fotolia
PaaS : bien choisir entre AWS Elastic Beanstalk et Google App Engine
AWS et Google Cloud proposent tous deux une plateforme PaaS. Bien qu’elles partagent certaines similitudes, il convient d’examiner de plus près leurs principales caractéristiques et leurs cas d’usage avant de choisir une offre.
Avec une PaaS, les développeurs d’applications hébergées dans le cloud doivent pouvoir se libérer de la charge de l’approvisionnement, de la configuration et de la gestion de l’infrastructure. Les fournisseurs leur ont rapidement fait la promesse qu’ils pourraient se concentrer sur l’administration et l’écriture du code.
Les organisations voient de plus en plus l’intérêt de cette approche, les dernières estimations de Gartner indiquant que le PaaS représente une activité de 60 milliards de dollars. Au lieu de piloter l’OS, les middlewares et le code applicatif – ce qui est le cas avec les hôtes dédiés et les instances VM –, une plateforme PaaS se différencie aussi des services CaaS (Containers as a Service), puisque la gestion des binaires d’OS est à la charge du fournisseur de cloud.
De plus, grâce à la prise en charge des images de conteneurs compilées, presque toutes les applications qui peuvent être déployées sur un IaaS sont compatibles avec un framework PaaS. AWS Elastic Beanstalk et Google Cloud App Engine sont deux de ces offres.
Cette comparaison entre AWS Elastic Beanstalk et Google Cloud App Engine examine les principales caractéristiques et les cas d’utilisation typiques.
Vue d’ensemble
La plateforme AWS Elastic Beanstalk est employée pour déployer des applications Web. Initialement, Elastic Beanstalk supportait Apache Tomcat comme environnement d’exécution J2EE. Google App Engine (GAE) est un framework similaire pour les applications Web. Il prend en charge plusieurs technologies Web ainsi que le stockage permanent. Pour ce faire, il utilise un système de fichiers en réseau et une base de données (Datastore, FireStore, Cloud SQL).
Au fil du temps, AWS et Google Cloud ont étendu les langages et environnements d’exécution pris en charge, ce qui a augmenté les avantages de ces produits PaaS.
Beanstalk soutient plusieurs frameworks pour les langages Go, PHP, Python, Ruby, Node.js et Java (J2EE et Java SE). En option, il est possible d’intégrer une base de données RDS et d’y intégrer un SGBD MySQL, PostgreSQL, Oracle ou SQL Server. Mais AWS recommande d’adopter une base de données externe RDS ou DynamoDB en production. Google App Engine supporte Go, Java, Node.js, PHP, Python, Ruby et dispose de rentrâmes personnalisables pour d’autres langages.
Malgré cela, ces deux services PaaS aident à développer et déployer des applications Web dynamiques, mobiles et des back-ends API packagés.
Avantages de l’offre PaaS
Pour les développeurs et les équipes IT Ops, le principal avantage de l’utilisation d’un service cloud comme Elastic Beanstalk ou App Engine est l’élimination des frais généraux de configuration, de déploiement, de mise à l’échelle, de sécurité ou de gestion de l’infrastructure. Parmi les autres avantages, citons :
- l’équilibrage automatique de la charge, la division du trafic et le routage ;
- la division du trafic pour simplifier l’hébergement de plusieurs versions d’une application ;
- le passage des utilisateurs de la version canari à la version bêta, puis à la version de production, selon les besoins ;
- l’intégration avec les outils de journalisation, de surveillance et de diagnostic du cloud ;
- le contrôle automatique des versions des applications
- des mises à jour automatiques des environnements d’exécution ; et
- une conformité précertifiée avec de nombreuses normes réglementaires.
Elastic Beanstalk vs App Engine : comparaison des fonctionnalités
Elastic Beanstalk et App Engine ont tellement de points communs que les différences de fonctionnalités ou de mise en œuvre seront rarement un facteur décisif dans le choix de l’une ou l’autre solution. Les développeurs seront plutôt influencés par des motifs tels que leur relation et leur expertise existantes en matière de cloud computing, ainsi que par le coût.
La plupart des usagers sur Gartner Peer Insights et divers forums/blogs (Reddit, Medium) saluent les avantages cités ci-dessus, mais certains reprochent les courbes d’apprentissage trop abruptes de ces deux services. D’autres considèrent que Beanstalk est un « mauvais wrapper pour EC2 », tandis qu’App Engine est pointé du doigt pour quelques limitations. Le mieux à faire ? Se faire un avis par soi-même en testant les deux solutions, une fois un cas d’usage correctement défini.
Financièrement parlant, le cas d’Elastic Beanstalk est spécial : AWS ne facture que les services sous-jacents utilisés, comme les instances EC2, S3 et RDS.
La tarification d’App Engine dépend de deux types d’environnement, standard ou flexible. Les instances standards ont un coût fixe, de 0,05 à 0,40 dollar à l’heure. Le trafic sortant est facturé 12 centimes de dollar par gigaoctet, le trafic entrant est gratuit. Les instances flexibles réclament de payer les unités de vCPU (0,0526 dollar par cœur/heure) et la quantité de RAM (0,0071 dollar par cœur/heure) à l’heure. Les volumes de trafic réseau sortant et de stockage persistant sont comptés comme un usage de Compute Engine. L’appel de services (Cloud Storage, Cloud Logging, Cloud Tasks, Pub/Sub, etc.) entraîne des frais supplémentaires.
Le tableau suivant compare les deux produits à travers une série de caractéristiques clés.
Cas d’usage
AWS Elastic Beanstalk et Google App Engine sont tous deux optimisés pour les applications Web dynamiques. Ces types d’applications combinent du contenu statique et dynamique, une logique de contrôle et des data stores back-end. Tous les sites Web modernes recourent à du contenu dynamique créé par des scripts et des plug-ins intégrés.
Un exemple simple consiste à employer Google AdWords sur un site qui utilise des cookies comme moteur de recommandation. WordPress et d’autres sites de blogs font souvent appel à du contenu dynamique par le biais de plug-ins.
À lire également :
Comment Bureau Veritas a migré 85 % de ses applications vers le cloud
Ces offres PaaS accueillent des applications privées et publics. Mais elles sont particulièrement adaptées aux applications tournées vers l’extérieur avec des charges de travail fluctuantes qui bénéficient d’équilibreurs de charge, d’une mise à l’échelle automatique et de capacités multizones. Elles fonctionnent aussi avec du code compilé et des environnements d’exécution non standard, maintenant que les deux services hébergent les images Docker personnalisées. La variabilité des workloads est courante sur les sites d’e-commerce, de réseaux sociaux ou de collaboration. C’est également le cas de toute application d’entreprise qui traite des données par lots à intervalles réguliers, comme les logiciels de reporting financier et de facturation.
Si AWS Elastic Beanstalk et Google App Engine sont des produits qui peuvent fonctionner à la demande, ils ne sont pas idéaux pour les applications pilotées par les événements. Ces types d’applications sont mieux adaptés à des solutions serverless telles que AWS Lambda, AWS Fargate, Google Cloud Functions et Google Cloud Run. Ces PaaS s’intègrent aux services pub/sub et sont facturés à la demande.