Slide 1

Slide 1 text

Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle solution pour mes besoins ! BDX.IO 2018

Slide 2

Slide 2 text

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 $

Slide 3

Slide 3 text

Ippon Technologies © 2018 About Sébastien Moreno @sebastienmoreno #devops #cloud #java #docker

Slide 4

Slide 4 text

Ippon Technologies © 2018 XaaS ?

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Ippon Technologies © 2018 Caractéristiques Infrastructure Containers Plateforme Fonctions Scalabilité A la demande: pas de serveur coût faible Event-driven

Slide 7

Slide 7 text

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 ● ...

Slide 8

Slide 8 text

Ippon Technologies © 2018 Exemples: Alexa skills

Slide 9

Slide 9 text

Ippon Technologies © 2018 Exemples: e-commerce

Slide 10

Slide 10 text

Ippon Technologies © 2018 Exemples: Station Météo

Slide 11

Slide 11 text

Ippon Technologies © 2018 Exemple: traitement d’images

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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)

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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)

Slide 16

Slide 16 text

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)

Slide 17

Slide 17 text

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)”

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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.

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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)

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Merci !

Slide 26

Slide 26 text

Ippon Technologies 2018 Ippon.fr [email protected] +33 1 46 12 48 48 @IpponTech