Serverless dans Azure — Part 0
Après avoir terminé la session Open Hack Serverless organisée par Microsoft, j’ai décidé d’écrire une série d’articles sur le sujet afin de restituer ce que j’y ai appris et de présenter en même temps la mise en place d’une architecture Serverless sur Azure avec de l’authentification et une CI/CD complète.
Qu’allons nous voir ?
A travers une série de 7articles, nous allons implémenter une API (ToDo API) exposée à travers l’APIM et qui stocke les données de l’API dans une base Cosmos DB. Les endpoints de l’application seront protégés par Azure AD. Cette implémentation se fera de façon incrémentale et le tout en Serverless complet :
Dans cette partie, nous allons configurer l’environnement de développement afin de pouvoir développer et tester en local.
2. Développement de l’API
Nous allons développer les endpoints de l’API avec des Azure Function. Nous utiliserons la base Cosmos DB en local grâce à l’émulateur Azure Cosmos DB. Chaque endpoint sera testé de manière unitaire ou en test d’intégration (sujet qui déchaîne toujours les passions :)).
3. Création des ressources sur Azure
Dans cette partie, nous allons créer les ressources Azure : Resource Group, Function App, Cosmos DB, …. Nous aborderons les points importants tels que : le coût, la scalabilité, etc….
4. CI/CD et Monitoring
Après avoir développé l’API en local et créé les ressources sur Azure, il est temps de la déployer. Pour ce faire, nous utiliserons Azure DevOps. Eventuellement, je ferai un article 4 bis pour déployer depuis GitHub avec les GitHub Actions. Et nous en profiterons pour mettre en place le Monitoring des Azure Function (temps de run, échec, nombre total de run, etc….)
5. APIM
Nous allons mettre en place l’APIM et exposer les Azure Function à travers l’APIM. Nous verrons comment exposer l’API, comment y souscrire et comment mettre en place des fonctionnalités telles que le throttling, etc…
6. Authentification
L’authentification n’est jamais chose facile, du coup nous allons lui dédier un article complet.
7. Azure Function Deep Dive
Dans cette dernière partie, nous allons un peu plus creuser le sujet des Azure Function afin de voir les différentes fonctionnalités telles que les Durable Function afin de gérer les besoins d’orchestration.