SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
Free the Functions!
Ewan Slater
@ewanslater
Agenda
● Serverless
○ What it is
○ Why it matters
● Choose Your Platform Wisely
● Fn Project
Cloud Architect
Solve Problems
Simplicity
Abstraction
Serverless
What is “Serverless”?
“Serverless computing refers to the concept of building and
running applications that do not require server management.
It describes a finer-grained deployment model where applications,
bundled as one or more functions, are uploaded to a platform
and then executed, scaled, and billed in response to the exact
demand needed at the moment.”
- CNCF Serverless Whitepaper
What is “Serverless”?
● Serverless is an abstraction of infrastructure and its operations
including provisioning, scaling, patching, etc.
● Serverless architecture is when an app is built entirely on
serverless components (compute, storage, networking)
● Functions (or Functions as a Service) is the compute
component in a serverless architecture
FaaS
● Write small functions
● Do one thing well
● Easy to Understand
● Easy to Maintain
● Run on Serverless platform (i.e. abstracted infrastructure)
“Researchers have been attracted to Serverless
Computing, and especially to Cloud Functions because it is
a new, general purpose compute abstraction that promises
to become the future of cloud computing”
University of Berkeley,
Technical Report No. UCB/EECS-2019-3
“Customers benefit from increased programming productivity
and in many scenarios can enjoy cost savings as well.”
University of Berkeley,
Technical Report No. UCB/EECS-2019-3
Avoid
Serverless Upsides
● Make development easier
● Improve developer productivity
● Increased agility (Dev & Business)
● Reduce costs (Dev & Operations)
Serverless Downsides
● Shiny
● Lock - in
● Restricted choice
○ Language
○ Run - time environment
○ Unit of abstraction
Freedom
● Language(s)
● Runtime
● Level of abstraction
● Vendor independence
● Portability (multi - cloud / on premises)
● Decentralisation
● Privacy
Free The Functions!
Open Source Serverless
The Fn Project (fnproject.io)
● Open-source serverless compute platform
● Can be deployed to any cloud or on - premises
● Containers are primitives
● Active w/ large core team, 3500+ commits, 75+ contributors
● Native CloudEvents support
● Independently governed with representation at CNCF
● Language-based Workflow (Fn Flow)
Functions as Containers
● Function + dependencies
● Single - purpose
● Self - Contained
● Stateless
● Ephemeral
● Run on Demand
An Fn Function
● Small chunk of code wrapped into a container image
● Gets input via http-stream and environment
● Produces output to http-stream
● Logs to STDERR / syslog
Anatomy of a Function
Fn CLI
● fn init --runtime ruby myfunc
● fn deploy --app myapp
● fn invoke myapp myfunc
→ http://localhost:8080/invoke/01CW8VDK3BNG8G00GZJ000008S
fn deploy details
1. Build container (multi-stage) + bump version
2. Push container to registry
3. Create/update function endpoint(s) (servers lazy load images)
MyFunc:0.0.2
MyFunc:0.0.2 MyFunc:0.0.2
Your code
Fn Service
myfunc →
/invoke/01CW8V...
1 2 3
Function Development Kits (FDKs)
● Makes it a lot easier to write functions
● Developer includes FDK package / library / gem
● Developer writes function to the FDK’s interface
● FDK
○ Provides input data to function
○ Writes output & errors
Community
.Net core FDK
Ruby FDK
● Opens a socket in function container
○ (Fn Server connects to socket)
● Parses input from http-stream
● Executes function
○ Input
○ Context
● Sends back output on http-stream
No FDK, no problem!
Hot functions
● Run at least once
● Wait before terminating
○ Default timeout 30 seconds
○ Configurable
● Potentially reusable
○ FDK handles multiple invocations
○ Stateless remember!?
Endpoints
● Fn deploy creates default endpoint:
○ http://localhost:8080/invoke/01CW8VDK3BNG8G00GZJ000008S
○ Used by CLI
● A bit unfriendly
● Only one per function deployment
Triggers
● Meaningful URLs
○ http://localhost:8080/t/jotb/speaker-trigger
○ http://localhost:8080/t/jotb/delegate-trigger
● Multiple endpoints
○ e.g internal / external
● Creation:
○ CLI
○ func.yaml
Fn Server
● “API Gateway”
● Manages apps and functions
○ app ⇒ group of functions (“namespace”)
● Handles function invocations
● Runs as a Container
● Hosts function containers using Docker - in - Docker
Docker in Docker
● Limited “blast radius”
○ Doesn’t affect outer VM
○ Kill Fn container & restart
● Docker version independence
○ (inner can differ from outer)
● Reduce chance of container name collisions
Architecture
Request Process
Orchestration
Flow
● Promises based Orchestration
○ No new “special” language
○ Composable
○ Flexible
● A Flow is...
○ ...written in code
○ ...written as a function
○ ...deployed as a function (within an application)
Saga Pattern
● Problem
○ Business Transaction across multiple services
○ Need to maintain transaction integrity
○ No 2 Phase Commit
● Saga
○ Business Transaction = set of local (service level) transactions
○ Each local transaction triggers next event
○ On failure compensate (undo) previous transactions
Travel Saga
book flight
if fail →stop else book hotel
if fail → cancel flight else book car
if fail → cancel hotel & flight else pack bag :-)
Flow
● Language Support:
○ Java
○ Python
○ Node
● In the works:
○ Go
● To - do:
○ Ruby
Summary #1
● Serverless
○ Simplicity
○ Developer productivity
○ Lower costs
○ Future of Cloud Computing
● Choose your platform with care
Summary #2
● Fn Project ⇒ Serverless Platform
○ Open Source
○ Portable
○ Language Agnostic
○ Multiple FDKs
● Feedback and contributions welcome!
Get Involved
● Learn more: fnproject.io
● Join the conversation
○ Slack: slack.fnproject.io
○ Twitter: @fnproject
● Contribute: fnproject
Thank you!
Ewan Slater
@ewanslater

Weitere ähnliche Inhalte

Was ist angesagt?

Clang Analyzer Tool Review
Clang Analyzer Tool ReviewClang Analyzer Tool Review
Clang Analyzer Tool Review
Doug Schuster
 

Was ist angesagt? (20)

A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsA New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEs
 
Kubernetes: The Very Hard Way
Kubernetes: The Very Hard WayKubernetes: The Very Hard Way
Kubernetes: The Very Hard Way
 
Openshift service broker and catalog ocp-meetup july 2018
Openshift service broker and catalog  ocp-meetup july 2018Openshift service broker and catalog  ocp-meetup july 2018
Openshift service broker and catalog ocp-meetup july 2018
 
Clang Analyzer Tool Review
Clang Analyzer Tool ReviewClang Analyzer Tool Review
Clang Analyzer Tool Review
 
Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介
 
An Introduction to Core 4
An Introduction to Core 4An Introduction to Core 4
An Introduction to Core 4
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
Os final project
Os final projectOs final project
Os final project
 
Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14
 
Functional Programming With Elixir
Functional Programming With ElixirFunctional Programming With Elixir
Functional Programming With Elixir
 
Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker services
 
Cross Community CI project
Cross Community CI projectCross Community CI project
Cross Community CI project
 
Eclipse demo camp 2016 Toronto
Eclipse demo camp 2016 TorontoEclipse demo camp 2016 Toronto
Eclipse demo camp 2016 Toronto
 
Building Applications on Avalanche
Building Applications on AvalancheBuilding Applications on Avalanche
Building Applications on Avalanche
 
Node Architecture.pptx
Node Architecture.pptxNode Architecture.pptx
Node Architecture.pptx
 
LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話
 
KVO implementation
KVO implementationKVO implementation
KVO implementation
 
Php : Why and When!
Php : Why and When!Php : Why and When!
Php : Why and When!
 
Marriage with docker
Marriage with dockerMarriage with docker
Marriage with docker
 

Ähnlich wie Free the Functions with Fn project!

Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
Matthias Luebken
 

Ähnlich wie Free the Functions with Fn project! (20)

The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)
 
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
 
Azure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAzure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutes
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Serverless design with Fn project
Serverless design with Fn projectServerless design with Fn project
Serverless design with Fn project
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
Netty training
Netty trainingNetty training
Netty training
 
Go at uber
Go at uberGo at uber
Go at uber
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
How Sysbee Manages Infrastructures and Provides Advanced Monitoring by Using ...
How Sysbee Manages Infrastructures and Provides Advanced Monitoring by Using ...How Sysbee Manages Infrastructures and Provides Advanced Monitoring by Using ...
How Sysbee Manages Infrastructures and Provides Advanced Monitoring by Using ...
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Netty training
Netty trainingNetty training
Netty training
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applications
 
Nodejs
NodejsNodejs
Nodejs
 
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 

Mehr von J On The Beach

Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
J On The Beach
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTing
J On The Beach
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The Monkeys
J On The Beach
 
Machine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesMachine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind Libraries
J On The Beach
 

Mehr von J On The Beach (20)

Massively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard wayMassively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard way
 
Big Data On Data You Don’t Have
Big Data On Data You Don’t HaveBig Data On Data You Don’t Have
Big Data On Data You Don’t Have
 
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
 
Pushing it to the edge in IoT
Pushing it to the edge in IoTPushing it to the edge in IoT
Pushing it to the edge in IoT
 
Drinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actorsDrinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actors
 
How do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server patternHow do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server pattern
 
Java, Turbocharged
Java, TurbochargedJava, Turbocharged
Java, Turbocharged
 
When Cloud Native meets the Financial Sector
When Cloud Native meets the Financial SectorWhen Cloud Native meets the Financial Sector
When Cloud Native meets the Financial Sector
 
The big data Universe. Literally.
The big data Universe. Literally.The big data Universe. Literally.
The big data Universe. Literally.
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EE
 
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
 
Pushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and BlazorPushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and Blazor
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTing
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The Monkeys
 
Servers are doomed to fail
Servers are doomed to failServers are doomed to fail
Servers are doomed to fail
 
Interaction Protocols: It's all about good manners
Interaction Protocols: It's all about good mannersInteraction Protocols: It's all about good manners
Interaction Protocols: It's all about good manners
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
 
Leadership at every level
Leadership at every levelLeadership at every level
Leadership at every level
 
Machine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesMachine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind Libraries
 

Kürzlich hochgeladen

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 

Free the Functions with Fn project!

  • 1. Free the Functions! Ewan Slater @ewanslater
  • 2. Agenda ● Serverless ○ What it is ○ Why it matters ● Choose Your Platform Wisely ● Fn Project
  • 8. What is “Serverless”? “Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.” - CNCF Serverless Whitepaper
  • 9. What is “Serverless”? ● Serverless is an abstraction of infrastructure and its operations including provisioning, scaling, patching, etc. ● Serverless architecture is when an app is built entirely on serverless components (compute, storage, networking) ● Functions (or Functions as a Service) is the compute component in a serverless architecture
  • 10. FaaS ● Write small functions ● Do one thing well ● Easy to Understand ● Easy to Maintain ● Run on Serverless platform (i.e. abstracted infrastructure)
  • 11. “Researchers have been attracted to Serverless Computing, and especially to Cloud Functions because it is a new, general purpose compute abstraction that promises to become the future of cloud computing” University of Berkeley, Technical Report No. UCB/EECS-2019-3
  • 12. “Customers benefit from increased programming productivity and in many scenarios can enjoy cost savings as well.” University of Berkeley, Technical Report No. UCB/EECS-2019-3
  • 13. Avoid
  • 14. Serverless Upsides ● Make development easier ● Improve developer productivity ● Increased agility (Dev & Business) ● Reduce costs (Dev & Operations)
  • 15. Serverless Downsides ● Shiny ● Lock - in ● Restricted choice ○ Language ○ Run - time environment ○ Unit of abstraction
  • 16.
  • 17. Freedom ● Language(s) ● Runtime ● Level of abstraction ● Vendor independence ● Portability (multi - cloud / on premises) ● Decentralisation ● Privacy
  • 20.
  • 21. The Fn Project (fnproject.io) ● Open-source serverless compute platform ● Can be deployed to any cloud or on - premises ● Containers are primitives ● Active w/ large core team, 3500+ commits, 75+ contributors ● Native CloudEvents support ● Independently governed with representation at CNCF ● Language-based Workflow (Fn Flow)
  • 22. Functions as Containers ● Function + dependencies ● Single - purpose ● Self - Contained ● Stateless ● Ephemeral ● Run on Demand
  • 23. An Fn Function ● Small chunk of code wrapped into a container image ● Gets input via http-stream and environment ● Produces output to http-stream ● Logs to STDERR / syslog
  • 24. Anatomy of a Function
  • 25. Fn CLI ● fn init --runtime ruby myfunc ● fn deploy --app myapp ● fn invoke myapp myfunc → http://localhost:8080/invoke/01CW8VDK3BNG8G00GZJ000008S
  • 26. fn deploy details 1. Build container (multi-stage) + bump version 2. Push container to registry 3. Create/update function endpoint(s) (servers lazy load images) MyFunc:0.0.2 MyFunc:0.0.2 MyFunc:0.0.2 Your code Fn Service myfunc → /invoke/01CW8V... 1 2 3
  • 27. Function Development Kits (FDKs) ● Makes it a lot easier to write functions ● Developer includes FDK package / library / gem ● Developer writes function to the FDK’s interface ● FDK ○ Provides input data to function ○ Writes output & errors
  • 29. Ruby FDK ● Opens a socket in function container ○ (Fn Server connects to socket) ● Parses input from http-stream ● Executes function ○ Input ○ Context ● Sends back output on http-stream
  • 30. No FDK, no problem!
  • 31.
  • 32. Hot functions ● Run at least once ● Wait before terminating ○ Default timeout 30 seconds ○ Configurable ● Potentially reusable ○ FDK handles multiple invocations ○ Stateless remember!?
  • 33. Endpoints ● Fn deploy creates default endpoint: ○ http://localhost:8080/invoke/01CW8VDK3BNG8G00GZJ000008S ○ Used by CLI ● A bit unfriendly ● Only one per function deployment
  • 34. Triggers ● Meaningful URLs ○ http://localhost:8080/t/jotb/speaker-trigger ○ http://localhost:8080/t/jotb/delegate-trigger ● Multiple endpoints ○ e.g internal / external ● Creation: ○ CLI ○ func.yaml
  • 35. Fn Server ● “API Gateway” ● Manages apps and functions ○ app ⇒ group of functions (“namespace”) ● Handles function invocations ● Runs as a Container ● Hosts function containers using Docker - in - Docker
  • 36. Docker in Docker ● Limited “blast radius” ○ Doesn’t affect outer VM ○ Kill Fn container & restart ● Docker version independence ○ (inner can differ from outer) ● Reduce chance of container name collisions
  • 40. Flow ● Promises based Orchestration ○ No new “special” language ○ Composable ○ Flexible ● A Flow is... ○ ...written in code ○ ...written as a function ○ ...deployed as a function (within an application)
  • 41. Saga Pattern ● Problem ○ Business Transaction across multiple services ○ Need to maintain transaction integrity ○ No 2 Phase Commit ● Saga ○ Business Transaction = set of local (service level) transactions ○ Each local transaction triggers next event ○ On failure compensate (undo) previous transactions
  • 42.
  • 43. Travel Saga book flight if fail →stop else book hotel if fail → cancel flight else book car if fail → cancel hotel & flight else pack bag :-)
  • 44.
  • 45. Flow ● Language Support: ○ Java ○ Python ○ Node ● In the works: ○ Go ● To - do: ○ Ruby
  • 46. Summary #1 ● Serverless ○ Simplicity ○ Developer productivity ○ Lower costs ○ Future of Cloud Computing ● Choose your platform with care
  • 47. Summary #2 ● Fn Project ⇒ Serverless Platform ○ Open Source ○ Portable ○ Language Agnostic ○ Multiple FDKs ● Feedback and contributions welcome!
  • 48. Get Involved ● Learn more: fnproject.io ● Join the conversation ○ Slack: slack.fnproject.io ○ Twitter: @fnproject ● Contribute: fnproject