Lors de son événement I/O 2022, Google a fait une multitude d’annonces : Android 13, Workspace, sa gamme Pixel et Pixel a, un prototype de lunettes connectées, mais aussi des mises à jour de sa plateforme de développement Firebase, sur l’IA ou encore l’analytique. Sa plateforme cloud n’est évidemment pas en reste et la firme a dévoilé Cloud Run jobs, une extension du service cloud pour le développement et le déploiement d'applications conteneurisées utilisant des langages tels que Go, Python et Java. Jeanine Banks, vice-présidente de Google chargée des expériences des développeurs et de DevRel, a présenté cette mise à jour, précisant que ces tâches Cloud Run « peuvent réduire le temps que les développeurs passent à effectuer des tâches administratives telles que la migration de bases de données, la gestion de travaux planifiés comme l’envoi de factures mensuelles, ou la transformation de données par lots ».
Cloud Run a été lancé en 2019, s'ajoutant à la pile de calcul serverless de GCP qui se développait alors rapidement. Cloud Run permet de déployer des conteneurs sans état invocables via HTTP sur un service de calcul managé ou sur Google Kubernetes Engine. Alors que la demande de serverless grimpe, il semblerait que cette extension soit un moyen de rivaliser avec Azure et AWS. La plateforme entièrement gérée propose ainsi de ne payer qu’à l’usage grâce à l’auto-scaling. En l’absence de traffic, l’extension revient à zéro automatiquement. « Vous payez pour le processeur et la mémoire exacts utilisés par vos services lorsqu'ils traitent les demandes avec une granularité de 100 millisecondes » précise Steren Giannini, chef de produit chez Google.
Faciliter l’exécution de tâches
Disponible en avant-première à partir d'aujourd'hui uniquement dans la région Europe-west9 (Paris), l’extension prend en charge des tâches de longue durée en quelques secondes. « Les tâches Cloud Run démarrent rapidement après leur création, les conteneurs simples démarrant en seulement 10 secondes ». Pour utiliser ces tâches, les développeurs créent une tâche, qui encapsule toute la configuration nécessaire à l'exécution de la tâche, notamment l'image du conteneur, la région, les variables d'environnement. Ensuite, ils configurent la tâche pour qu'elle s'exécute selon une planification ou l'exécutent manuellement, en créant une nouvelle exécution de la tâche.
Après avoir créé ou mis à jour un travail, il est possible de l'exécuter en une seule fois, selon un calendrier ou dans le cadre d'un flux de travail. Les exécutions de tâches peuvent être gérées individuellement et des journaux d'exécution sont disponibles. Une tâche peut être structurée comme une tâche unique ou comme plusieurs tâches indépendantes (jusqu'à 10 000 tâches) qui sont exécutées en parallèle. Chaque tâche exécute une instance de conteneur et peut être configurée pour réessayer en cas d'échec. Chaque tâche connaît son index, qui est stocké dans la variable d'environnement CLOUD_RUN_TASK_INDEX. Par défaut, chaque tâche s'exécute pendant un maximum de 10 minutes ; il est possible de modifier cette durée jusqu'à 1 heure, en modifiant le paramètre de délai d'exécution de la tâche. Il n'y a pas de délai explicite pour l'exécution d'un travail : une fois que toutes les tâches sont terminées, l'exécution du travail est terminée.