Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lost in serverless: AWS Lambda, Google Cloud Fu...

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

AWS Lambda, Google Cloud Function, Azure Function proposent des solutions d'architectures serverless proches et en même temps de maturité différentes. Comment faire son choix parmi ces différentes solutions? Laquelle est adaptée à mes besoins ? Laquelle est a la meilleure implémentation ? Nous répondrons à ces questions au travers d'une présentation des concepts de chaque solution et des exemples de mise en œuvre.

Sébastien Moreno

November 09, 2018
Tweet

More Decks by Sébastien Moreno

Other Decks in Programming

Transcript

  1. Lost in serverless AWS Lambda, Google Cloud Function, Azure Function

    quelle solution pour mes besoins ! BDX.IO 2018
  2. 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 $
  3. 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
  4. 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 • ...
  5. 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
  6. 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)
  7. 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
  8. 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)
  9. 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)
  10. 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)”
  11. 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
  12. 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
  13. 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.
  14. 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...).
  15. 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
  16. 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)
  17. 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