Serverless Python Serverless Python Michael Bright , Trainer @mjbright Consulting , Trainer @mjbright Consulting Michael Bright 15 November 2018, PyParis, EPITA 15 November 2018, PyParis, EPITA These slides online at These slides online at https://mjbright.github.io https://mjbright.github.io /Talks/2018-Nov-15- /Talks/2018-Nov-15- PyParis_Serverless PyParis_Serverless github.com/mjbright @mjbright
About Myself About Myself British - living in Grenoble, in the French Alps British - living in Grenoble, in the French Alps Cloud Native Trainer @mjbright @mjbright Cloud Native Trainer Docker Community Lead Docker Community Lead Python User Group Creator Python User Group Creator Kubernetes CKA Kubernetes CKA Crazy about Open Source and Cloud Technologies Crazy about Open Source and Cloud Technologies github.com/mjbright @mjbright
Serverless Computing 1. . 1 What Is Serverless? What Is Serverless? 2. . 2 Review of Cloud Provider Offerings Review of Cloud Provider Offerings +CNCF Serverless WG +CNCF Serverless WG 3 3. . Open Source Tools Open Source Tools Demo of Chalice/Lambda Demo of Chalice/Lambda 4. . 4 Open Source Platforms Open Source Platforms Demo of OpenFaaS Demo of OpenFaaS github.com/mjbright @mjbright
What Is Serverless? What Is Serverless? Serverless FaaS + BaaS Serverless FaaS + BaaS - No more servers ?! - Functions as a Service - No more servers ?! - Functions as a Service - The ultimate - Back-ends as a Service - The ultimate - Back-ends as a Service "Cloud Native" ? - Functions glue together API-based "Cloud Native" ? - Functions glue together API-based back-end services back-end services Serverless: a paradigm Serverless: a paradigm - & a company - & a company - & a tool - & a tool github.com/mjbright @mjbright
Serverless - What Is it? Serverless - What Is it? At the peak of the Hype Cycle!! At the peak of the Hype Cycle!! NOT CARING ABOUT SERVERS NOT CARING ABOUT SERVERS PAY AS YOU GO PAY AS YOU GO AGILE AGILE Developers focus on Developers focus on apps - (*)Pay for real (fn) - Short time to market apps - (*)Pay for real (fn) - Short time to market Platform provider usage - Enables innovation Platform provider usage - Enables innovation - Provisions - (*)No initial - (*)Massive scale on - Provisions - (*)No initial - (*)Massive scale on - Auto-scales investment demand - Auto-scales investment demand - Maintains - (*)High availability for - Maintains - (*)High availability for free free - Great for startups - Great for startups * - These are the promises of Serverless * - These are the promises of Serverless github.com/mjbright @mjbright
Serverless - The making of ... VIRTUAL MACHINES BAREMETAL github.com/mjbright @mjbright
Serverless - an Event Driven Architecture FaaS + BaaS browser DB API webhooks files functions Gateway scheduled msg SMS begin .... end github.com/mjbright @mjbright
Serverless - Cloud Providers Serverless - Cloud Providers github.com/mjbright @mjbright
Serverless - Main Cloud Provider Offerings AWS LAMBDA AZURE FUNCTIONS IBM CLOUD FUNCTIONS GOOGLE CLOUD FUNCTIONS github.com/mjbright @mjbright
AWS Lambda AWS Lambda Introduced β eta in Nov 2014 Introduced β eta in Nov 2014 Leader in developer uptake, back-end services and eco-system. Leader in developer uptake, back-end services and eco-system. Language choices: Node.js (JS), Python, Java 8, C#, VB/F# Node.js (JS), Python, Java 8, C#, VB/F# Language choices: NEW Features [Reinvent 2017] - [Reinvent 2017] - Go Go (static binaries) and (static binaries) and .Net(C#) .Net(C#) , , SAM for off-line SAM for off-line NEW Features debugging debugging Cost: Free tier: 1 mn req/mth, then $0.00001667/GBy-sec Free tier: 1 mn req/mth, then $0.00001667/GBy-sec details details Cost: Strengths: Created the space, enormous ecosystem, Cloud9 IDE? Created the space, enormous ecosystem, Cloud9 IDE? Strengths: Weaknesses: A little slow, limited languages, lock-in A little slow, limited languages, lock-in Weaknesses: github.com/mjbright @mjbright
Azure Functions — Introduced in 2016 Many language choices: GA: JavaScript, C#, F#, Python Exp: Python, PHP , Typescript, Batch/Bash, PowerShell, Java OpenSource runtime: https://github.com/Azure/azure-functions-host Excellent Developer Tools Azure Portal, Advisor, Visual Studio, Team Studio, DevOps github.com/mjbright @mjbright
Google Cloud Functions Google Cloud Functions — Alpha release in Feb 2016. Alpha release in Feb 2016. — Language support: Language support: Node.js/JS and Python(beta). Node.js/JS and Python(beta). github.com/mjbright @mjbright
IBM Cloud Functions IBM Cloud Functions — Experimental release in Feb 2016 Experimental release in Feb 2016 — Open Sourced as Apache OpenWhisk Open Sourced as Apache OpenWhisk https://github.com/apache/incubator-openwhisk https://github.com/apache/incubator-openwhisk Runtime support: Events support: Runtime support: Events support: github.com/mjbright @mjbright
AWS Lambda: Use Case - Smart News github.com/mjbright @mjbright
Potentially huge cost savings for your business, or not ... Source: "The hidden costs of serverless" github.com/mjbright @mjbright
The CNCF Created a Serverless WG The CNCF Created a Serverless WG We need open standards for Serverless We need open standards for Serverless The working group Resources The working group Resources de�nes/identi�es de�nes/identi�es Serverless Whitepaper Serverless Whitepaper * common terminology * common terminology Github repository Github repository * common use cases and * common use cases and patterns patterns Google group Google group * relation to PaaS and * relation to PaaS and Slack channel Slack channel container orchestration container orchestration Meeting Videos Meeting Videos Meeting Minutes Meeting Minutes github.com/mjbright @mjbright
kNative kNative Google released kNative in 2018 Google released kNative in 2018 A framework for providing common facilities to A framework for providing common facilities to Serverless platforms. Serverless platforms. Orchestrating source-to-container builds Orchestrating source-to-container builds Event binding Event binding Tra�c management Tra�c management Built on Kubernetes and Istio Built on Kubernetes and Istio github.com/mjbright @mjbright
Serverless - Open-Source Tooling Serverless - Open-Source Tooling Hundreds of Open-Source tools See Hundreds of Open-Source tools See facilitate development, testing and facilitate development, testing and deployment deployment awesome-serverless awesome-serverless Some tools seek to support multi-language, Some tools seek to support multi-language, some multi-platform or a combination ... some multi-platform or a combination ... Some Important Frameworks Some Important Frameworks Serverless(.com) Serverless(.com) apex(.com) apex(.com) Zappa, Chalice (AWS Lambda/Python) Zappa, Chalice (AWS Lambda/Python) github.com/mjbright @mjbright
A Company, a Tool, an Open-Source Project A Company, a Tool, an Open-Source Project Deploys to various Cloud Providers/Open Source Platforms: Deploys to various Cloud Providers/Open Source Platforms: AWS Lambda AWS Lambda Azure Functions Azure Functions Google Cloud Functions Google Cloud Functions OpenWhisk OpenWhisk Kubeless Kubeless SpotInst SpotInst Webtasks Webtasks github.com/mjbright @mjbright
Serverless Python !! Serverless Python !! github.com/mjbright @mjbright
Serverless Python Frameworks ... Serverless Python Frameworks ... APEX APEX CHALICE CHALICE SUPPORTS: SUPPORTS: SUPPORTS: SUPPORTS: Javascript Python Javascript Python Python / Flask-like Python / Flask-like ++ Go ++ Go github.com/mjbright @mjbright
Chalice Chalice Open sourced by AWS - Python/AWS λ — Open sourced by AWS - Python/AWS λ — pip installable module, command-line tool pip installable module, command-line tool github.com/mjbright @mjbright
Demo Time - Chalice ! github.com/mjbright @mjbright
Serverless - Open Source Platforms KUBELESS FISSION APACHE OPENWHISK OPENFAAS FN PROJECT NUCLIO SPRING CLOUD FUNCTIONS github.com/mjbright @mjbright
OpenFaaS OpenFaaS runs on Docker-Swarm or Kubernetes Bring Your Own Container Portal with Function Store faas-cli: command-line tool FaaS-Netes runs on Kubernetes A young project with a vibrant community of volunteers Easy to get started, many guides and blog posts from community Integrates Prometheus OpenFaaS Cloud initiative for GitOps — Alex Ellis, Docker Captain, *VMWare* github.com/mjbright @mjbright
OpenFaaS - Architecture github.com/mjbright @mjbright
OpenFaaS - Finnian Anderson, Colourising Video with OpenFaaS github.com/mjbright @mjbright
Demo Time - OpenFaaS ! github.com/mjbright @mjbright
Recommend
More recommend