Découverte du servless avec les Azure Function pour créer des architectures nanoservices, architectures Cloud / Office 365 (utile avec PowerAutomate, PowerApps, etc) ou encore juste exécuter du code pour publier une API ou intégrer des données. Les possibilités sont nombreuses et les cas d'usages aussi tant la réalisation et le déploiement de ces fonctions sont simples.
4. 27/07/2020
Serverless signifie …
• Aucun serveur à provisioner
• Mise à l’echelle à l’usage
• Vous ne payez pas quand votre
application attend
• Disponibilité et tolérance de panne
intégré
5. 27/07/2020
Les microservices sont …
• Un ensemble de services réduits et
isolés, scalable et résilient aux pannes
• Les services s’appellent les uns les
autres pour executer une
fonctionnalité
• Avantage : scale up d’un microservice
exigeant en termes de ressources par
rapport aux autres
6. 27/07/2020
En quoi le Serverless est lié au Microservices ?
• S’aligne avec l’approche et les principes de conception des microservice
• Permet une architecture Single Responsibility Principle : chaque fonction à
une responsabilité sur une partie d’une fonctionnalité, quelle encapsule
intégralement
7. 27/07/2020
Et les Fonctions Azure dans tout ça ?
• Une Fonction Azure est une App qui fait une chose, une seule chose et
qui le fait bien et c’est tout !
• Les Fonctions Azure sont des “nanoservices” serverless orienté
évènement
8. 27/07/2020
Fonctionnalités des Fonctions Azure
• Choix du langage (C#, PowerShell, Node, Python, PHP, Bash, …)
• Modèle de facturation au « paiement à l’utilisation »
• Possibilité d’utiliser ses propres dépendances (NuGet, NPM)
• Sécurité Intégrée
• Intégration simplifiée
• Développement et Déploiement flexible
• Open source
• Performant, caches et décaches rapide
9. 27/07/2020
Pour qui ?
• Toutes les entreprises n’ont pas besoin d’un scalabilité importante
• Comme des micro services, votre entreprise peut ou non en avoir besoin
• Si vous souhaitez accélérer vos développements
• Si vous souhaitez connecter des services/apps entre eux
• Si vous souhaitez faire des webhook rapidement
10. 27/07/2020
Combien cela coûte ?
• https://azure.microsoft.com/en-us/pricing/calculator/
• Gratuit jusqu’à 1 000 000 d’appels par mois !
16. 27/07/2020
Azurite – Émulateur Azure Storage
• Simule l’API Azure Storage : docs.microsoft.com/en-us/rest/api/storageservices/
• Basé sur Node.js, GRATUIT et open source : github.com/Azure/Azurite
• Idéal pour développer en local
• Deux façons de le lancer :
1. Avec node : npm install -g azurite && azurite -l c:azurite -d c:azuritedebug.log
2. Avec docker : docker run -p 10000:10000 -p 10001:10001 mcr.microsoft.com/azure-storage/azurite
• Utilisation d’Azure Storage Explorer pour déclencher les Azure functions
18. 27/07/2020
Quelques bonnes pratiques de conception
• Les Fonctions doivent faire “une seule chose”
• Les Fonctions sont « stateless »
• Les Fonctions doivent être idempotent
• Les Fonctions doivent se terminer dès que possible
19. 27/07/2020
Quelques bonnes pratiques d’utilisation
• Réduisez, réutilisez et recyclez vos ressources
• Les Fonctions dans une Function App partage la mémoire
• Un Singleton peut être partagé en plusieurs fonctions (pool de
connextions DB, caches Redis caches, etc)
• Supprimer les objets/données de traitement dont vous n’avez plus
besoin
20. 27/07/2020
Comment démarrer ?
• Démarrez petit : réalisez un webhook, remplacez 1 API ou un élément
de traitement de fond (conversion de fichier, etc)
• L’intégration est un bon candidat, souvent ajouter une nouvelle
couche à de vieilles couches (ex : chargement de données )