Qu’est-ce qu’Azure Functions ?
Vous suivez l’équipe web Tailspin Space Game qui discute du meilleur moyen de répondre aux nouvelles exigences marketing fixées par la direction. L’équipe doit intégrer une technologie serverless, plus précisément Azure Functions, dans son processus DevOps.
Revenons à l’équipe.
Les nouvelles exigences
Irwin : Je vous remercie d’avoir pu vous libérer si rapidement. Il y a du nouveau : les membres de l’équipe marketing ont fait des promesses qui pourraient compliquer les choses pour nous tous. Ils aiment beaucoup notre site. Les membres de l’équipe pensent que le Leaderboard peut être utilisé pour promouvoir le jeu à l’approche du lancement final et au-delà. Ils souhaitent effectuer un scale-out qui dépasse largement ce que nous avions prévu à l’origine.
Mara : Ce n’est pas un problème, si ? Étant donné que nous sommes sur Azure, il n’y a pas vraiment de limites pour ce qui est du scale-out du service.
Irwin : Ils souhaitent simplement permettre à tout utilisateur d’intégrer les données du leaderboard dans sa propre application. Ils pensent qu’il serait vraiment intéressant de proposer les mêmes options de leaderboard sur notre site, dans le jeu, sur les sites de critique de jeux, et même sur des blogs externes et des sites personnels. L’un des défis est que l’équipe en charge du moteur de jeu est actuellement propriétaire de la base de données de production d’où nous extrayons les données du leaderboard. Selon elle, il serait préférable qu’elle crée l’API et en devienne propriétaire.
Andy : Mara, tu as des idées ?
Mara : Je suis sûre que nous pouvons trouver une solution. Voici mes remarques :
- Nous avons peu de temps devant nous. Nous devons donc trouver une solution qui nous permette d’utiliser notre code et nos compétences.
- Nous devons refactoriser une fonctionnalité en service indépendant.
- Nous devons réduire les frais généraux d’administration en production.
- Nous avons besoin d’une énorme capacité de mise à l’échelle, mais notre engagement doit rester mesuré.
L’équipe acquiesce.
Ça marche sur ma machine
La réunion prend fin. Le lendemain matin, tout excité, Andy entre dans le bureau de Mara pour une discussion au pied levé.
Andy : Ça y est ! J’ai trouvé une solution qui remplit tous nos critères pour l’API Leaderboard. Il s’agit d’une offre serverless appelée Azure Functions.
Mara : Génial ! Combien de temps nous faudra-t-il pour avoir quelque chose à montrer ?
Andy : J’ai déjà quelque chose sous la main. J’ai dupliqué notre dépôt GitHub et refactorisé le code du leaderboard dans un nouveau projet Azure Functions. Il expose les données du leaderboard via une simple requête HTTP GET. J’ai aussi mis à jour le site web pour qu’il utilise ce point de terminaison pour les requêtes ciblant le Leaderboard, et tout le monde peut en faire autant.
Mara : C’est exactement ce dont nous avons besoin. Je peux collaborer à l’extension du pipeline CI/CD existant pour permettre sa génération et son déploiement comme pour le projet du site principal.
Notes
Dans ce module, nous ne nous attarderons pas sur la connexion de l’application à Azure Functions. Si cet aspect vous intéresse, vous pouvez examiner le code source. Le code utilise le runtime Azure Functions pour C# pour lire les données du leaderboard à partir d’Azure Functions.
Qu’est-ce qu’Azure Functions ?
Azure Functions est une offre spécifique de la gamme étendue de technologies d’informatique serverless Azure. Elle permet aux développeurs de créer facilement des fonctions simples qui existent dans un environnement serverless sans état. Les fonctions peuvent être déclenchées à l’aide de diverses méthodes, comme des requêtes HTTP, des changements apportées aux données dans le stockage, la réception d’un message de file d’attente, etc. Pour en savoir plus sur les déclencheurs et liaisons, consultez Concepts des déclencheurs et liaisons Azure Functions.
L’équipe Tailspin a choisi la solution Azure Functions pour ce scénario, car elle répondait à tous leurs besoins :
- Nous avons peu de temps devant nous. Nous devons donc trouver une solution qui nous permette d’utiliser notre code et nos compétences.
- Nous pouvons générer rapidement la solution sous la forme d’une application ASP.NET Core qui applique du code dont nous disposons déjà.
- Nous devons refactoriser une fonctionnalité en service indépendant.
- Nous pouvons élaborer une fonction indépendante sans avoir à nous soucier d’une autre surface d’exposition d’application.
- Nous devons réduire les frais généraux d’administration en production.
- Avec Azure Functions, il n’y a plus à se soucier des environnements d’hébergement.
- Nous avons besoin d’une énorme capacité de mise à l’échelle, mais notre engagement doit rester mesuré.
- Les technologies serverless offrent une capacité de mise à l’échelle pratiquement illimitée qui peut croître ou décroître automatiquement plus rapidement qu’avec les machines virtuelles ou les services d’application.
Azure Functions et les autres technologies serverless ne conviennent pas toujours à toutes les solutions. Par la suite, nous vous indiquerons où trouver les ressources qui vous aideront à choisir la technologie adaptée à votre projet.