+ All Categories
Home > Technology > Meetup - Construire des applications serverless avec Azure

Meetup - Construire des applications serverless avec Azure

Date post: 22-Jan-2018
Category:
Upload: samir-arezki-
View: 203 times
Download: 2 times
Share this document with a friend
58
Responsable technique - MVP Azure Construire des applications Serverless avec Azure Samir AREZKI @ itfana Meetup .NET Toulouse #DotnetTlse
Transcript

Responsable technique - MVP Azure

Construire des

applications Serverless

avec Azure Samir AREZKI

@itfana

Meetup .NET Toulouse#DotnetTlse

SPEAKER

Samir AREZKIResponsable technique chez Groupe HBF

Microsoft MVP Azure

@itfana

AGENDA

1. Serverless

2. La plateforme Serverlessd’Azure

3. Étude de cas

4. Mise en place

5. Pour aller plus loin

6. Questions / Réponses

SERVERLESS

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

ÉVOLUTION DES PLATES-FORMES D’APPLICATIONS

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)

LES PROMESSES D’UNE APPLICATION SERVERLESS

Scalingautomatique

Paiement à l’utilisation

Abstraction des serveurs

LES SCENARIOS

• Web

• Backends

• IoT

• Integration

• Bots

• IT Automation

• …

LES PLATEFORMES SERVERLESS

• Microsoft Azure Functions

• Amazon Lamda

• Google Cloud Functions

• …

PLATFORME SERVERLESS D’AZURE

PLATFORME SERVERLESS d’AZURE

Source : Microsoft

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

=

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

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

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 ServicesHosting Plans

Azure Services

Source : Microsoft

Azure Functions - Monitoring

• Intégration native avec Application Insights

– https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-

functions-application-insights/

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

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

AZURE LOGIC APPS : OUTILLAGE

• Logic Apps tools for Visual

Studio

– Logic Apps designer

– Deployment templates

– Source Control & CI/CD

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

ETUDE DE CAS

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….)

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

– ….

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é

MISE EN PLACE

LES SOLUTIONS POSSIBLES

VMs (IaaS) vs Containers (Docker) vs Serverless !!

MYSMARTHOME - ARCHITECTURE TECHNIQUE SERVERLESS

DocumentDB

IoT Hub

Functions

Capteurs

Functions

Application

Mobile

Logic App

Cognitives

Services

PowerBI

Marketplaces Webhook

FunctionsApp Service

DEMO 1 : IoT

DocumentDB

IoT Hub

Functions

Capteurs

IoT : Ingestion, traitement et stockage des trames

DEMO 1 : IOT

IoT : Ingestion, traitement et stockage des trames

Création d’une Azure Function« mysmarthome-functionapp »

Configuration d’Azure Function : IoT Hub (EventHub)

Configuration d’Azure Function : IoT Hub (EventHub)

Configuration d’Azure Function : Bindings

Le code

{"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 :

Stockage dans Azure Documetdb.

DEMO 2 : API

DocumentDB

IoT Hub

Functions

Functions

Capteurs

Application

Mobile

API : Restitution des trames pour les applications

DEMO 2 : API Restitution des trames pour les applications

Creation d’Azure Function : HTTP Trigger

Les bindings

Le code

Creation Azure Function Proxy

https://mysmarthome-functionapp.azurewebsites.net/frames/device_3

API :

DEMO 3 : E-commerce E-commerce : analyse des commentaires clients sur les produits

DocumentDBLogic App

Cognitives

Services

PowerBI

Marketplaces Webhook

DEMO 3 : E-COMMERCE E-commerce : analyse des commentaires clients

sur les produits

Workflow Logic Apps

Appel (HTTP) du Logic App

Stockage des commentaires dans DocumentDb

Dashboard Realtime PowerBI

POUR ALLER PLUS LOIN

STATIC WEBSITES WITH BLOB STORAGE AND FUNCTIONS

PROXIES

• https://markheath.net/post/static-websites-

azure-blob-storage-functions-proxies

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

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/

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

CONCLUSION

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

QUESTIONS ?


Recommended