Cloud Functions versus Cloud Run: quand et pourquoi utiliser l’un plutôt que l’autre ?
Sara Ford
Senior Developer Relations Engineer
Jaisen Mathai
Group Product Manager, Google Cloud
Contactez-nous
Si vous êtes une entreprise et que vous souhaitez vous développer, découvrez comment gagner en productivité avec Google Cloud ou contactez notre équipe commerciale.
Commencer iciComparées aux approches traditionnelles, les architectures serverless accélèrent le déploiement de services sur le marché tout en favorisant une réduction des coûts et des frais de gestion. Plateformes d’exécution serverless, Cloud Functions et Cloud Run proposent deux approches différentes du « serverless ». Et les clients nous demandent souvent : « Quand est-il plus judicieux d'utiliser Cloud Functions ou Cloud Run ? ».
Commerzbank fait partie de ces clients qui se posaient la question. La banque allemande a développé un framework pour l’aider à décider où déployer et comment gérer les workloads serverless. « Nous exploitons des services cloud natifs afin d’hériter de leur scalabilité, de leur sécurité et de leur fonctionnement serverless et ainsi constituer un socle pérenne et orienté entreprise », explique Christian Gorke, responsable du Cyber Center of Excellence, Big Data & Advanced Analytics chez Commerzbank AG. « Chaque plateforme Serverless présente ses propres avantages et nous capitalisons sur leurs spécificités en les combinant pour répondre à nos besoins métier. »
En général, nous constatons que les workloads serverless entrent dans l’une des deux catégories suivantes : ceux qui connectent votre plateforme et ceux qui exécutent des services. Les premiers supposent en général l’écriture de quelques bouts de code spécifiques exécutant une tâche unique (une fonction) et privilégient la simplicité. Les seconds profitent de la flexibilité d’une configuration personnalisée et permettent d’effectuer plusieurs tâches.
Cet article vous propose un aperçu de Cloud Functions et de Cloud Run, ainsi qu’un framework pour vous aider à choisir la meilleure option en fonction du workload.
Choisir une solution serverless
Vous pouvez indifféremment adopter Cloud Functions et Cloud Run au démarrage d’un projet et monter en charge sans problème, y compris pour des pics de charges particulièrement élevés. Vous devrez en revanche faire des compromis en termes de simplicité et de flexibilité selon que vous choisissez l’une ou l’autre solution.
Si vous utilisez une solution serverless pour connecter votre plateforme, vous n'avez probablement pas besoin de configurer un conteneur pour contrôler le serveur Web ou le runtime du langage utilisé. Dans ce cas précis, autant opter pour Cloud Functions car il peut gérer la configuration pour vous, ce qui vous permet de vous concentrer sur la valeur ajoutée métier.
L'exécution de services, en revanche, nécessite un contrôle plus important du container, notamment en matière de choix du serveur Web ou du runtime. Optez alors pour Cloud Run : il est plus flexible sur ce type de configuration tout gérant le reste pour vous.
Connecter votre plateforme avec Cloud Functions
Grâce à Cloud Functions, la connexion de votre plateforme est simple à réaliser et à maintenir : vous n'êtes responsable que du code. N’importe qui dans votre équipe ayant des connaissances en programmation peut créer une solution sans avoir à « packager » le code. Vous avez également la possibilité de choisir parmi sept langages populaires : les spécialistes des données, par exemple, peuvent faire fonctionner un script python dans le cloud avec des connaissances limitées en matière d'infrastructure.
Cloud Functions optimise la productivité tout en sollicitant très peu les opérationnels : chaque « fonction » est un composant indépendant et isolé de façon à éviter qu’il n’impacte les autres workloads. Les changements et les mises à jour d'une fonction ont peu de chances d’impacter une autre fonction.
« Nous exploitons Cloud Functions pour des actions de courte durée, déclenchées par des événements provenant d'autres systèmes, tels que Cloud Storage, Eventarc ou PubSub, par exemple, afin d’automatiser les pipelines de données. »
Commerzbank AG
Cloud Functions est couramment utilisé, par exemple, pour réagir à l’ajout d’un objet dans un bucket Cloud Storage. La fonction peut générer des vignettes d'une image ou exécuter une analyse de sentiments sur un fichier texte. Il existe de nombreux autres exemples qui poussent les clients à choisir Cloud Functions :
Transformation de données et chargement dans BigQuery.
Création d'un point d’ancrage Web (webhook) appelé par un tiers (par exemple, GitHub)
Utilisation d’API ML pour analyser les données ajoutées à une base ou à un bucket de stockage.
Exécution de services avec Cloud Run
Cloud Run rend l’évolution et la maintenance des services plus simple : il suffit d’utiliser les conteneurs standards du marché. Vous pouvez ainsi capitaliser sur vos outils existants et vos connaissances pour packager et déployer votre service sur Cloud Run et vous appuyer sur nous pour la gestion de l’infrastructure d’hébergement et la montée en charge.
Cloud Run est adapté à un large éventail d'applications. Il vous permet de déployer votre service avec une seule application containerisée. Vous pouvez utiliser n'importe quel langage, bibliothèque ou binaire pour exécuter votre application. Google Cloud se charge de la gestion et de l'évolutivité des serveurs, y compris pour les workloads historiques qui ont été conteneurisés tels qu’une application 3-tiers en java.
« Cloud Run s’impose lorsqu'une personnalisation plus poussée est nécessaire, comme quand il faut embarquer des modèles d'IA ou alimenter plusieurs interfaces pendant une longue période. »
Commerzbank AG
Cloud Run est, par exemple, parfaitement adapté à l’exécution d’un site de commerce électronique affichant des produits en vente. Mais il existe de nombreux autres exemples pour lesquelles vous pourriez opter pour Cloud Run :
N’importe quel workload Web
API REST ou gRPC pour les applications et jeux mobiles
Applications internes personnalisées du back office
Utilisation combinée de Cloud Functions et de Cloud Run
Pour des environnements à workloads multiples, Cloud Functions et Cloud Run peuvent être complémentaires.
« En combinant ces deux plateformes serverless, nous avons considérablement accru notre productivité. L'infrastructure et ses dépendances sont prises en charge par Google Cloud, ce qui est très pratique et permet aux équipes chargées des applications de se concentrer sur le code métier ».
Commerzbank AG
Bien entendu, il ne s’agit que de directives générales destinées aux clients qui cherchent la meilleure solution pour leurs workloads. De nombreux autres facteurs peuvent et doivent être pris en compte, comme les outils existants et l’expertise de vos équipes. Il se peut aussi que vous soyez restreints à un ensemble de produits Google Cloud spécifiques dont l’utilisation a été préalablement approuvée.
Étant donné que la deuxième génération de Cloud Functions repose sur l'infrastructure améliorée de Cloud Run, décider quel produit utiliser ne devrait pas engendrer une situation d’analyse à même de paralyser votre entreprise. Rien ne vous empêche d’écrire un code simple pour le déployer rapidement dans Cloud Functions, puis de le faire évoluer par la suite vers un service Web plus complexe, en le migrant vers Cloud Run avec des contrôles supplémentaires très facile à débloquer.
Nous sommes convaincus qu’il est toujours utile de prendre en compte ces différents facteurs lors du choix d’une solution serverless. Cela vous aidera à déployer vos workloads et à fournir une solution rapidement qui soit facile à maintenir et à faire évoluer tout en en trouvant le meilleur équilibre entre simplicité et flexibilité.
Pour développer rapidement vos premières applications serverless sur Google Cloud, rendez-vous sur Cloud Run quickstart or Cloud Functions codelab.