Publicité
Publicité

Contenu connexe

Similaire à Meetup - Construire des applications serverless avec Azure(20)

Publicité
Publicité

Meetup - Construire des applications serverless avec Azure

  1. Responsable technique - MVP Azure Construire des applications Serverless avec Azure Samir AREZKI @itfana Meetup .NET Toulouse#DotnetTlse
  2. SPEAKER Samir AREZKI Responsable technique chez Groupe HBF Microsoft MVP Azure @itfana
  3. AGENDA 1. Serverless 2. La plateforme Serverless d’Azure 3. Étude de cas 4. Mise en place 5. Pour aller plus loin 6. Questions / Réponses
  4. SERVERLESS
  5. L’ÉVOLUTION DES ARCHITECTURES APPLICATIVES MONOLITHE 1 2 3 4 MICROSERVICES SOA SERVERLESS 1 application = 1 système Découpage en services Découpage en plus petits services Découpage en fonctions
  6. ÉVOLUTION DES PLATES-FORMES D’APPLICATIONS
  7. SERVERLESS • Function as a Service (FaaS) – Exécution du code de votre fonction à la demande – Paiement seulement pour le temps d’exécution de votre fonction • Serverless = Compute + Patterns • Les caractéristiques d’une application Serverless : – Pas de serveurs à gérer – Continuous scaling – Ne jamais payer pour les serveurs inactifs (Never pay for idle) – Utilisation de services tiers (Third party services)
  8. LES PROMESSES D’UNE APPLICATION SERVERLESS Scaling automatique Paiement à l’utilisation Abstraction des serveurs
  9. LES SCENARIOS • Web • Backends • IoT • Integration • Bots • IT Automation • …
  10. LES PLATEFORMES SERVERLESS • Microsoft Azure Functions • Amazon Lamda • Google Cloud Functions • …
  11. PLATFORME SERVERLESS D’AZURE
  12. PLATFORME SERVERLESS d’AZURE Source : Microsoft
  13. AZURE FUNCTIONS • Azure Functions est un service de calcul qui permet d’exécuter du code à la demande sans explicitement configurer ou gérer l’infrastructure. – Calcul à la demande déclenché par des évènements • Les langages de développement supportés : – C#, F#, Node.js, Java, Python, TypeScript, PHP, Batch (.cmd, .bat), PowerShell =
  14. AZURE FUNCTIONS • Deux plans d’hébergement: – Plan App Service : • Function App exécutées sur App Service plan tout comme les Web App (Basic, Standard ou Premium) • Gestion mise à l’échelle (horizontale, verticale) • Paiement à la machine • Modèle PaaS – Plan dynamique de consommation (Dynamic) : • Les Functions sont exécutées sur des serveurs mutualisés • Mise à l’échelle dynamique • Paiement à l’exécution (temps, mémoire) • Modèle Serverless
  15. AZURE FUNCTIONS - DEVELOPER EXPERIENCE & TOOLS • Visual Studio Tools for Azure Functions : – Projet Visual Studio – Debug en local – Versionning – Source Control (Git) & CI/CD • Azure Functions Tools - Extensions for VS Code – https://github.com/johnpapa/v scode-azure-functions-tools
  16. AZURE FUNCTIONS WORKFLOW 1) Trigger 7) Develop Locally 3) Develop 4) Execute 6) Monitor and Improve 2) Input Binding 5) Output Binding Web Hooks Azure Services Azure Services App Services Hosting Plans Azure Services Source : Microsoft
  17. Azure Functions - Monitoring • Intégration native avec Application Insights – https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure- functions-application-insights/
  18. AZURE LOGIC APPS • Service d’intégration – Connecter les applications : on- premises, hybrid et cloud – Exécuter des scénarios d'intégration complexes avec facilité • Orchestration de workflow • Notions de déclencheurs et d’actions • Passage des paramètres d’actions en actions • Monitoring de l’exécution de chaque étape • Plusieurs dizaines de modèles existants
  19. AZURE LOGIC APPS CONNECTORS • Connecteurs prêts à l’emploi – Connecteurs mangés par la plateforme • API connections – Réutilisation – Gestion depuis le portal Protocols/Native XML & EDI Hybrid SaaS
  20. AZURE LOGIC APPS : OUTILLAGE • Logic Apps tools for Visual Studio – Logic Apps designer – Deployment templates – Source Control & CI/CD
  21. AZURE LOGIC APPS : MONITORING • Debugging and History • Trigger history • Run history • Tracking – Azure Monitoring – Emit core tracking events – Send to storage or event hub – Use TrackedProperties for your own tracking data • Monitoring view • Diagnostics & Alerts Azure
  22. ETUDE DE CAS
  23. LE CONTEXTE • Client : mySmartHome – Métier de l’entreprise : Domotique & maison connectée – Production, distribution et commercialisation de produits domotiques • Canaux de vente : – De la vente directe : un site web (e-commerce) – De la vente indirecte : marketplaces (Amazon, Cdiscount, Manomano….)
  24. LE BESOIN • Lancement d’une nouvelle offre domotique • Les services à développer pour lancer la nouvelle offre : – Une plateforme IoT (backend) – Des APIs pour faciliter le développement d’applications (web et mobile) – Des dashboards pour le département marketing pour suivre les ventes et la satisfaction (ou non) des clients – ….
  25. LES EXIGENCES • Lancer la nouvelle offre rapidement • Réduire les coûts de développement, de maintenance et d’exploitation • Garantir un niveau de service (SLA) • Garantir les performances • Faciliter la surveillance et la supervision • Sécurité
  26. MISE EN PLACE
  27. LES SOLUTIONS POSSIBLES VMs (IaaS) vs Containers (Docker) vs Serverless !!
  28. MYSMARTHOME - ARCHITECTURE TECHNIQUE SERVERLESS DocumentDB IoT Hub Functions Capteurs Functions Application Mobile Logic App Cognitives Services PowerBI Marketplaces Webhook Functions App Service
  29. DEMO 1 : IoT DocumentDB IoT Hub Functions Capteurs IoT : Ingestion, traitement et stockage des trames
  30. DEMO 1 : IOT IoT : Ingestion, traitement et stockage des trames
  31. Création d’une Azure Function « mysmarthome-functionapp »
  32. Configuration d’Azure Function : IoT Hub (EventHub)
  33. Configuration d’Azure Function : IoT Hub (EventHub)
  34. Configuration d’Azure Function : Bindings
  35. Le code
  36. { "deviceId": "device_1", "ip": "192.168.104.80", "mac": "34:ea:34:e4:97:30", "temperature":23 , "humidity": 51, "airQuality": 0, "lightLevel": 2, "noiseLevel" : 1 }, Une trame :
  37. Stockage dans Azure Documetdb.
  38. DEMO 2 : API DocumentDB IoT Hub Functions Functions Capteurs Application Mobile API : Restitution des trames pour les applications
  39. DEMO 2 : API Restitution des trames pour les applications
  40. Creation d’Azure Function : HTTP Trigger
  41. Les bindings
  42. Le code
  43. Creation Azure Function Proxy
  44. https://mysmarthome-functionapp.azurewebsites.net/frames/device_3 API :
  45. DEMO 3 : E-commerce E-commerce : analyse des commentaires clients sur les produits DocumentDBLogic App Cognitives Services PowerBI Marketplaces Webhook
  46. DEMO 3 : E-COMMERCE E-commerce : analyse des commentaires clients sur les produits
  47. Workflow Logic Apps
  48. Appel (HTTP) du Logic App
  49. Stockage des commentaires dans DocumentDb
  50. Dashboard Realtime PowerBI
  51. POUR ALLER PLUS LOIN
  52. STATIC WEBSITES WITH BLOB STORAGE AND FUNCTIONS PROXIES • https://markheath.net/post/static-websites- azure-blob-storage-functions-proxies
  53. AZURE FUNCTIONS – FONCTIONNALITÉS AVANCÉES • Durable Functions : – Fonctions durables – Une extension d’Azure Functions permettant de gérer les workflows Stateful • Exemple : chainage de fonctions – https://docs.microsoft.com/fr-fr/azure/azure- functions/durable-functions-overview
  54. AZURE FUNCTIONS – FONCTIONNALITÉS AVANCÉES • Functions Runtime 2.0 (preview) – https://blogs.msdn.microsoft.com/appserviceteam/2017/09/25/develop -azure-functions-on-any-platform/ • Functions on Linux (preview) – https://blogs.msdn.microsoft.com/appserviceteam/2017/11/15/functions -on-linux-preview/ • Functions in IoT Edge (preview) : – https://blogs.msdn.microsoft.com/appserviceteam/2017/11/15/azure- functions-on-iot-edge/
  55. Azure LOGIC APPS - FONCTIONNALITÉS AVANCÉES • On-premises Data Gateway avec logic apps (hybrid) – Pour accéder aux données locales, vous pouvez configurer une Data Gateway pour les connecteurs Azure Logic Apps compatibles : • BizTalk Server • DB2 • File System • Informix • MQ • MySQL • Oracle Database • SAP Application Server • SAP Message Server • SharePoint for HTTP only, not HTTPS • SQL Server • Teradata – https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-gateway- connection
  56. CONCLUSION
  57. AVANTAGES / INCONVÉNIENTS Pros - Pas de serveurs à gérer - Évolutivité et flexibilité - Coût plus bas* - Moins de code Cons - Pas pour toutes les applications - Vendor lock-in* - Décentralisation
  58. QUESTIONS ?
Publicité