Lost in serverless
AWS Lambda, Google Cloud Function, Azure Function
quelle solution pour mes besoins !
BDX.IO 2018
Ippon Technologies 2018
The market for public cloud is predicted
to reach from $260 billion in 2017 to
around $411 billion in 2020.
Gartner
Plus d’un million de clients chez AWS.
Autour de ~6 millions de VM actives
chez AWS
PIB Norvège:
406 Milliards $
Ippon Technologies © 2018
About
Sébastien Moreno
@sebastienmoreno
#devops #cloud #java
#docker
Ippon Technologies © 2018
XaaS ?
Ippon Technologies © 2018
● FaaS
➔ Plateforme Cloud permettant d’exécuter des fonctions d’une application sans gérer
l’infrastructure
➔ Ex.: batch processing, stream processing, ETL, IoT services
● BaaS
➔ Middleware fournissant API et SDK pour se connecter aux services du Cloud
➔ Ex.: cloud storage, push notifications, server code, user and file management, social networking
integration, location services, user management...
● SaaS
➔ Services accessibles par le web
➔ Ex.:customer relationship management (CRM), document management, accounting, human
resource (HR) management
Cloud et Serverless
Ippon Technologies © 2018
Caractéristiques
Infrastructure
Containers
Plateforme
Fonctions
Scalabilité A la demande: pas
de serveur
coût faibleEvent-driven
Ippon Technologies © 2018
Use cases ?
● Authentification
● Transformation de fichiers
● Interrogation référentiel
● Batch processing
● Stream processing
● ETL
● IoT services
● … trigger pour d’autres FaaS
● ...
Ippon Technologies © 2018
Exemples: Alexa skills
Ippon Technologies © 2018
Exemples: e-commerce
Ippon Technologies © 2018
Exemples: Station Météo
Ippon Technologies © 2018
Exemple: traitement d’images
Ippon Technologies © 2018
Faas: du positif… et du négatif !
+ La scalabilité
+ Le coût
+ Disponibilité
+ Maintenance
+ Déploiement
- Architecture complexe
- Vendor lock-in
- Limitations techniques
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Principales plateformes FaaS
AWS Lambda
Novembre 2014
référence serverless
intégration services
Azure Functions
Novembre 2016
2 Runtimes :
1.x (Portail Azure)
2.x (.NET Core 2)
Windows/Linux (Preview)
Google Cloud Functions
alpha février 2016
(officiel juillet 2018)
HTTP (synchrone) et
Background (asynchrone)
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Langages
● .Net Core 1.0 (C#)
● .Net Core 2.0 (C#)
● .Net Core 2.1 (C#/PowerShell)
● Go 1.x
● Java 8
● Node.js 4.3
● Node.js 6.10
● Node.js 8.10
● Python 2.7
● Python 3.6
HTTP et Background functions:
● Javascript (NodeJS)
● Python
Runtimes:
● Node.js 6
● Node.js 8 (beta)
● Python 3.7 (beta)
Supported
● C# (1.x: .NET Framework 4.7)
(2.x: .NET Core 2)
● JavaScript (1.x: NodeJS
6) (2.x:NodeJS 8 & 10)
● F# (1.x: .NET Framework 4.7)
(2.x: .NET Core 2)
● Java8 (1.x:N/A) (2.x:Preview
● TypeScript (2.x)
Experimental 1.x
● Python
● TypeScript (2.x)
● PHP
● Batch (.cmd, .bat)
● Bash
● PowerShell
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Développement
● Cloud Functions Node.js
Emulator (NodeJS 6.10)
● Outils de dev classiques
pour NodeJS, Python
● From scratch / Blueprints
● Cloud9-based code editor
● Serverless Application Model
➔ SAM Template
➔ SAM CLI
● IDE:
➔ AWS Toolkit for Eclipse
➔ Toolkit for Visual Studio
IDE (Lambda .Net)
➔ IntelliJ Connector for AWS
Lambda
● SDK (Go, .Net, NodeJS…)
● OS Windows: .Net,JS,Java
● OS Linux(preview): JS,.Net,Docker
● Azure Functions Core Tools (test,
deploy)
● On-premise runtime: Azure
Functions Runtime
● Maven: Archetype, plugin(build,test
local, deploy...)
● IDE:
➔ VS Code
➔ VS IDE
➔ IntelliJ (preview)
➔ Eclipse (preview)
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
● Serverless Application Model (SAM)
● Cloudformation
● The serverless.com framework
(multi language)
● Apex (multi language)
● Chalice (Python)
● ClaudiaJS (NodeJS)
● Serverless Express(ExpressJS)
● Sparta(Go)
● Zappa(Python)
● Serverless Java Container
● SLAppForge Sigma
● Terraform
Outils déploiement
● gcloud SDK
● Terraform
● The serverless.com
framework
● SLAppForge Sigma
(bientôt)
● azure CLI
● Terraform
● The serverless.com
framework
● SLAppForge Sigma
(bientôt)
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
● Déploiement: stockage S3
● CI AWS:
➔ AWS CODESTAR
➔ AWS CODEPIPELINE
➔ AWS CODEBUILD
➔ AWS CODEDEPLOY
● Jenkins: Plugin AWS Lambda
● Autres: CloudBees, Codeship...
● Versions:
➔ Version / Aliases (DEV,
PROD)
Outils DevOps
● Déploiement: Cloud Storage
● Repository proxy: connexion
entre Github, Bitbucket et
Google Source Repository
● CI Google: Code Build
(gcloud build step)
● Jenkins: Plugin Google Cloud,
gcloud
● Versions: pas de versions
● Déploiement zip: Azure CLI
● Repositories: BitBucket,
Dropbox, GitHub et Azure
DevOps
● CI Azure: App Services
● Jenkins: plugins Azure (deploy et
App Services)
● Versions: pas de versions, mais
“Environnements slots(preview)”
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Monitoring
● Logs: CloudWatch Logs
● Monitoring: CloudWatch,
CloudTrail
● Analyser et déboguer: XRay
● Autres: IOpipe, Datadog,
Loggly, Splunk et Sumo
Logic
● Logs & Monitoring:
StackDriver
● Logs: gcloud
● Logs & Monitoring: Azure
Application Insights
➔ Logs streaming
➔ Process Explorer
➔ Metrics
➔ Alertes
● Logs
➔ Kudu
➔ Table Storage
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Triggers
• Amazon S3 Bucket
• Amazon DynamoDB
• Amazon Kinesis Data Streams
• Amazon Simple Notification Service
• Amazon Simple Email Service
• Amazon Cognito
• CloudFormation
• CloudWatch Logs / Events
• CodeCommit
• Scheduler
• Resource Configuration
• Alexa
• Lex
• HTTP
• IOT
• CloudFront
• Kinesis Data Firehose
● Firebase real-time
database
● Firebase authentication
● Firebase Analytics
● Cloud Storage
● Cloud Pub/Sub
● HTTP
● Stack driver logging
• Blob Storage
• Cosmos DB
• Event Grid
• Event Hubs
• HTTP
• Microsoft Graph
• Queue storage
• Service Bus
• Timer
• Webhooks
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Coût
Free tier par mois:
1 million de requêtes
400,000 Gb-s
Ensuite:
0,20$ par million de requête
0,000 016$/GB-s
Data In: Gratuit
Data Out: 0,05-0,09$/GB
Free tier par mois:
2 millions de requêtes
400,000 Gb-s et 200,000 GHz-s CPU
5GB of Internet egress traffic
Ensuite:
0,40$ par million de requête
0,0000025$/GB-s et 0,00001$/GHz-
s
Data In: Gratuit
Data Out: 0,12$/GB
Free tier par mois:
1 million de requêtes
400,000 Gb-s
Ensuite:
0,20$ par million de requête
0,000 016 67$/GB-s
Data In: 0,1$ 0,2$ VPC/Région
Data Out: 0,05-0,09$/GB
Les services du Cloud utilisés peuvent changer le coût global de l’architecture.
Ippon Technologies © 2018
Exemple de coût
3 Millions d’exécutions, à 512Mo (800MHz), de 1 seconde chaque:
http://serverlesscalc.com
Ne prends pas en compte trafic réseau et autres services (stockage, API...).
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Limitations
Exécutions concurrentes: 1000
Mémoire max 3008 Mo
Durée 5 minutes -> 15 minutes
Déploiement: 50 MB (zipped), 256
MB (unzipped), 3 MB (console
editor)
Exécutions concurrentes: 1000
Mémoire max 2048 Mo
Durée 9 minutes
Déploiement: 100MB
(compressed) for sources.
500MB (uncompressed) for
sources plus modules.
Exécutions concurrentes: 200
Mémoire max 1536 Mo
Durée 10 minutes
Ippon Technologies © 2018
AWS Lambda Google Cloud Functions Azure Functions
Avantages:
● Mise en oeuvre simple (HTTP,
Background)
● Capitalise sur la plateforme
mobile Firebase
● Ergonomie, Simplicité
Inconvénients:
● Juste sortie de la beta
● Basique, peu de langages
● Outillage basique
● Intégrations services limités
Conclusions
Avantages:
● Pionnier du Cloud Serverless
● Bonne maturité
● Langages
● Forte intégration avec autres
services
● Outils riches
Inconvénients:
● Complexe
● Coûts global
Avantages:
● Scénarios d’usage riches
● Ergonomie
● Outils riches
● Outillage Dev
Inconvénients:
● Intégrations services limités
● Runtimes inégaux
● Manque de maturité (previews)
Ippon Technologies © 2018
Pour aller plus loin
● Les besoins en services Cloud peuvent être déterminants
● AWS mise beaucoup sur Lambda comme feature clé
➔ Nouvelles fonctionnalités très régulières
➔ Fait sauter limitations
➔ Très large: IOT (Greengrass), Data, API, Alexa...
● Azure est challenger
➔ Fonctionnalités proches
➔ Propose fonction à base de container Docker
➔ Durable functions (états) et Webjobs functions (tâches arrière-plan)
● Google Cloud Function
➔ Mise sur simplicité, bonne intégration Firebase (mobile)
➔ Projet OSS Knative pour serverless dans Kubernetes
Merci !
Ippon Technologies 2018
Ippon.fr
contact@ippon.fr
+33 1 46 12 48 48
@IpponTech

Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle solution pour mes besoins

  • 1.
    Lost in serverless AWSLambda, Google Cloud Function, Azure Function quelle solution pour mes besoins ! BDX.IO 2018
  • 2.
    Ippon Technologies 2018 Themarket for public cloud is predicted to reach from $260 billion in 2017 to around $411 billion in 2020. Gartner Plus d’un million de clients chez AWS. Autour de ~6 millions de VM actives chez AWS PIB Norvège: 406 Milliards $
  • 3.
    Ippon Technologies ©2018 About Sébastien Moreno @sebastienmoreno #devops #cloud #java #docker
  • 4.
  • 5.
    Ippon Technologies ©2018 ● FaaS ➔ Plateforme Cloud permettant d’exécuter des fonctions d’une application sans gérer l’infrastructure ➔ Ex.: batch processing, stream processing, ETL, IoT services ● BaaS ➔ Middleware fournissant API et SDK pour se connecter aux services du Cloud ➔ Ex.: cloud storage, push notifications, server code, user and file management, social networking integration, location services, user management... ● SaaS ➔ Services accessibles par le web ➔ Ex.:customer relationship management (CRM), document management, accounting, human resource (HR) management Cloud et Serverless
  • 6.
    Ippon Technologies ©2018 Caractéristiques Infrastructure Containers Plateforme Fonctions Scalabilité A la demande: pas de serveur coût faibleEvent-driven
  • 7.
    Ippon Technologies ©2018 Use cases ? ● Authentification ● Transformation de fichiers ● Interrogation référentiel ● Batch processing ● Stream processing ● ETL ● IoT services ● … trigger pour d’autres FaaS ● ...
  • 8.
    Ippon Technologies ©2018 Exemples: Alexa skills
  • 9.
    Ippon Technologies ©2018 Exemples: e-commerce
  • 10.
    Ippon Technologies ©2018 Exemples: Station Météo
  • 11.
    Ippon Technologies ©2018 Exemple: traitement d’images
  • 12.
    Ippon Technologies ©2018 Faas: du positif… et du négatif ! + La scalabilité + Le coût + Disponibilité + Maintenance + Déploiement - Architecture complexe - Vendor lock-in - Limitations techniques
  • 13.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Principales plateformes FaaS AWS Lambda Novembre 2014 référence serverless intégration services Azure Functions Novembre 2016 2 Runtimes : 1.x (Portail Azure) 2.x (.NET Core 2) Windows/Linux (Preview) Google Cloud Functions alpha février 2016 (officiel juillet 2018) HTTP (synchrone) et Background (asynchrone)
  • 14.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Langages ● .Net Core 1.0 (C#) ● .Net Core 2.0 (C#) ● .Net Core 2.1 (C#/PowerShell) ● Go 1.x ● Java 8 ● Node.js 4.3 ● Node.js 6.10 ● Node.js 8.10 ● Python 2.7 ● Python 3.6 HTTP et Background functions: ● Javascript (NodeJS) ● Python Runtimes: ● Node.js 6 ● Node.js 8 (beta) ● Python 3.7 (beta) Supported ● C# (1.x: .NET Framework 4.7) (2.x: .NET Core 2) ● JavaScript (1.x: NodeJS 6) (2.x:NodeJS 8 & 10) ● F# (1.x: .NET Framework 4.7) (2.x: .NET Core 2) ● Java8 (1.x:N/A) (2.x:Preview ● TypeScript (2.x) Experimental 1.x ● Python ● TypeScript (2.x) ● PHP ● Batch (.cmd, .bat) ● Bash ● PowerShell
  • 15.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Développement ● Cloud Functions Node.js Emulator (NodeJS 6.10) ● Outils de dev classiques pour NodeJS, Python ● From scratch / Blueprints ● Cloud9-based code editor ● Serverless Application Model ➔ SAM Template ➔ SAM CLI ● IDE: ➔ AWS Toolkit for Eclipse ➔ Toolkit for Visual Studio IDE (Lambda .Net) ➔ IntelliJ Connector for AWS Lambda ● SDK (Go, .Net, NodeJS…) ● OS Windows: .Net,JS,Java ● OS Linux(preview): JS,.Net,Docker ● Azure Functions Core Tools (test, deploy) ● On-premise runtime: Azure Functions Runtime ● Maven: Archetype, plugin(build,test local, deploy...) ● IDE: ➔ VS Code ➔ VS IDE ➔ IntelliJ (preview) ➔ Eclipse (preview)
  • 16.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions ● Serverless Application Model (SAM) ● Cloudformation ● The serverless.com framework (multi language) ● Apex (multi language) ● Chalice (Python) ● ClaudiaJS (NodeJS) ● Serverless Express(ExpressJS) ● Sparta(Go) ● Zappa(Python) ● Serverless Java Container ● SLAppForge Sigma ● Terraform Outils déploiement ● gcloud SDK ● Terraform ● The serverless.com framework ● SLAppForge Sigma (bientôt) ● azure CLI ● Terraform ● The serverless.com framework ● SLAppForge Sigma (bientôt)
  • 17.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions ● Déploiement: stockage S3 ● CI AWS: ➔ AWS CODESTAR ➔ AWS CODEPIPELINE ➔ AWS CODEBUILD ➔ AWS CODEDEPLOY ● Jenkins: Plugin AWS Lambda ● Autres: CloudBees, Codeship... ● Versions: ➔ Version / Aliases (DEV, PROD) Outils DevOps ● Déploiement: Cloud Storage ● Repository proxy: connexion entre Github, Bitbucket et Google Source Repository ● CI Google: Code Build (gcloud build step) ● Jenkins: Plugin Google Cloud, gcloud ● Versions: pas de versions ● Déploiement zip: Azure CLI ● Repositories: BitBucket, Dropbox, GitHub et Azure DevOps ● CI Azure: App Services ● Jenkins: plugins Azure (deploy et App Services) ● Versions: pas de versions, mais “Environnements slots(preview)”
  • 18.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Monitoring ● Logs: CloudWatch Logs ● Monitoring: CloudWatch, CloudTrail ● Analyser et déboguer: XRay ● Autres: IOpipe, Datadog, Loggly, Splunk et Sumo Logic ● Logs & Monitoring: StackDriver ● Logs: gcloud ● Logs & Monitoring: Azure Application Insights ➔ Logs streaming ➔ Process Explorer ➔ Metrics ➔ Alertes ● Logs ➔ Kudu ➔ Table Storage
  • 19.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Triggers • Amazon S3 Bucket • Amazon DynamoDB • Amazon Kinesis Data Streams • Amazon Simple Notification Service • Amazon Simple Email Service • Amazon Cognito • CloudFormation • CloudWatch Logs / Events • CodeCommit • Scheduler • Resource Configuration • Alexa • Lex • HTTP • IOT • CloudFront • Kinesis Data Firehose ● Firebase real-time database ● Firebase authentication ● Firebase Analytics ● Cloud Storage ● Cloud Pub/Sub ● HTTP ● Stack driver logging • Blob Storage • Cosmos DB • Event Grid • Event Hubs • HTTP • Microsoft Graph • Queue storage • Service Bus • Timer • Webhooks
  • 20.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Coût Free tier par mois: 1 million de requêtes 400,000 Gb-s Ensuite: 0,20$ par million de requête 0,000 016$/GB-s Data In: Gratuit Data Out: 0,05-0,09$/GB Free tier par mois: 2 millions de requêtes 400,000 Gb-s et 200,000 GHz-s CPU 5GB of Internet egress traffic Ensuite: 0,40$ par million de requête 0,0000025$/GB-s et 0,00001$/GHz- s Data In: Gratuit Data Out: 0,12$/GB Free tier par mois: 1 million de requêtes 400,000 Gb-s Ensuite: 0,20$ par million de requête 0,000 016 67$/GB-s Data In: 0,1$ 0,2$ VPC/Région Data Out: 0,05-0,09$/GB Les services du Cloud utilisés peuvent changer le coût global de l’architecture.
  • 21.
    Ippon Technologies ©2018 Exemple de coût 3 Millions d’exécutions, à 512Mo (800MHz), de 1 seconde chaque: http://serverlesscalc.com Ne prends pas en compte trafic réseau et autres services (stockage, API...).
  • 22.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Limitations Exécutions concurrentes: 1000 Mémoire max 3008 Mo Durée 5 minutes -> 15 minutes Déploiement: 50 MB (zipped), 256 MB (unzipped), 3 MB (console editor) Exécutions concurrentes: 1000 Mémoire max 2048 Mo Durée 9 minutes Déploiement: 100MB (compressed) for sources. 500MB (uncompressed) for sources plus modules. Exécutions concurrentes: 200 Mémoire max 1536 Mo Durée 10 minutes
  • 23.
    Ippon Technologies ©2018 AWS Lambda Google Cloud Functions Azure Functions Avantages: ● Mise en oeuvre simple (HTTP, Background) ● Capitalise sur la plateforme mobile Firebase ● Ergonomie, Simplicité Inconvénients: ● Juste sortie de la beta ● Basique, peu de langages ● Outillage basique ● Intégrations services limités Conclusions Avantages: ● Pionnier du Cloud Serverless ● Bonne maturité ● Langages ● Forte intégration avec autres services ● Outils riches Inconvénients: ● Complexe ● Coûts global Avantages: ● Scénarios d’usage riches ● Ergonomie ● Outils riches ● Outillage Dev Inconvénients: ● Intégrations services limités ● Runtimes inégaux ● Manque de maturité (previews)
  • 24.
    Ippon Technologies ©2018 Pour aller plus loin ● Les besoins en services Cloud peuvent être déterminants ● AWS mise beaucoup sur Lambda comme feature clé ➔ Nouvelles fonctionnalités très régulières ➔ Fait sauter limitations ➔ Très large: IOT (Greengrass), Data, API, Alexa... ● Azure est challenger ➔ Fonctionnalités proches ➔ Propose fonction à base de container Docker ➔ Durable functions (états) et Webjobs functions (tâches arrière-plan) ● Google Cloud Function ➔ Mise sur simplicité, bonne intégration Firebase (mobile) ➔ Projet OSS Knative pour serverless dans Kubernetes
  • 25.
  • 26.