SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Cloud Agnostic Serverless with
Fn Project
Todor Todorov | @totollygeek
DevOps Evangelist
Todor Todorov
@totollygeek
» .NET developer;
» clean code fanatic;
» DevOps evangelist;
» speaker;
» father of 3 boys;
» karaoke enthusiast;
The serverless explained
Credits: Matthew Gilliard
DIY Bare Metal PaaS K8s-aaS Serverless
Hardware
OS
Hypervisor
Virtual OS
Container
Orchestration
Application
Code
@totollygeek
Monolith
Microservice
Microservice
Microservice
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
@totollygeek
@totollygeek
Microservice
Monolith
Microservice
Microservice
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
@totollygeek
@totollygeek
 C#
 F#
 JavaScript
 Java (ver 2.x only)
 PowerShell (ver 2.x only)
 Python (ver 2.x only)
 TypeScript (ver 2.x only)
 some experimental
@totollygeek
 JavaScript
 Python
 Java (8, 11)
 C# (dotnetcore2.1)
 Go (1.x)
 Ruby (2.5)
@totollygeek
JavaScript
Go
Python
That’s it?!?
@totollygeek
@totollygeek
@totollygeek
What is Fn Project?
• Independent open-source
serverless compute platform
• Not tied to any cloud vendor
• Can be run on premises
• Supported by Oracle
• Containers are primitives
• Strong enterprise in mind
@totollygeek
What is a function
container?
• Sandboxed process
• Short running
• Event-driven
• Stateless (-ish)
@totollygeek
Anatomy of an Fn function
• Small chunk of code wrapped in a container
• Gets input from http-stream and environment
• Sends output to http-stream
• Logs to STDERR / syslog
@totollygeek
FDK (Function Development Kit) support
@totollygeek
Go Java Node.js Python Ruby
Officially
supported
C#
Community
supported
The Fn Server
• Runs in a container also
• Handles as an API gateway
• Exposes REST interface
• Storing logs
@totollygeek
The Fn CLI
• Of course we have a CLI!
• Used to interact with Fn Server
• Initialization
• Deployment
• Invocation
@totollygeek
Initialization of functions
• Calling fn init to create a boilerplate in a folder
• Does not do anything on the server
• Boilerplate includes: Dockerfile, func.yaml & code
@totollygeek
Invocation of functions
• From the CLI
• With HTTP request
• From the UI
@totollygeek
How deployment works
@totollygeek
1. Bumps function version
2.Builds container
3.Pushes it to registry
4.Creates or update function & trigger in server
Your code
MyFunc:0.0.2
1 & 2 3
MyFunc:0.0.2
MyFunc:0.0.2
Fn Service
4
@totollygeek
DEMO
See metrics
with
Grafana &
Prometheus
@totollygeek
@totollygeek
Source: https://fnproject.io/tutorials/grafana/
Using it in
Kubernetes
• Recommended
way of deployment
for production
• Helm chart
available on
GitHub
@totollygeek
Fn Flow
• Building scalable distributed applications out of functions
• Flows are functions also
• Support complex parallel processes with error handling, which is
testable
• Flow functions scale as normal functions
• Currently supports Java, hopefully more to come
@totollygeek
Fn Flow | Licence plate example
@totollygeek
Scraper
Plate detect
Plate detect
Plate detect
Draw
Draw
Draw
Post to
Twitter
Post to
Twitter
Post to
Twitter
Post to
Slack
Post to
Slack
Post to
Slack
Fn Flow | Licence plate example
@totollygeek
Scraper
Plate detect
Plate detect
Plate detect
Draw
Draw
Draw
Post to
Twitter
Post to
Twitter
Post to
Twitter
Post to
Slack
Post to
Slack
Post to
Slack
FlowFuture.invoke()
thenCompose()
thenCompose()
allOf()
whenComplete()
Fn Flow |
Licence
plate
example
@totollygeek
Fn Flow UI
@totollygeek
Source: https://github.com/fnproject/flow
@totollygeek
DEMO
Thank you! (●’◡’●)
Where to find me:
Todor Todorov
e: todor@todorov.bg / ttodorov@nemetschek.bg
b: www.todorov.bg
t: www.twitter.com/totollygeek
l: www.linkedin.com/in/totollygeek
g: www.github.com/totollygeek

Weitere ähnliche Inhalte

Was ist angesagt?

Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 
Jenkins djangovillage
Jenkins djangovillageJenkins djangovillage
Jenkins djangovillage
Lucio Grenzi
 

Was ist angesagt? (20)

Flex and .NET Integration
Flex and .NET IntegrationFlex and .NET Integration
Flex and .NET Integration
 
Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Juc boston2014.pptx
Juc boston2014.pptxJuc boston2014.pptx
Juc boston2014.pptx
 
How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issues
 
Git & Github
Git & GithubGit & Github
Git & Github
 
Up GitLab Presentation 2015
Up GitLab Presentation 2015Up GitLab Presentation 2015
Up GitLab Presentation 2015
 
Thomson Reuters, TMS: Workflow in GitLab
Thomson Reuters, TMS: Workflow in GitLabThomson Reuters, TMS: Workflow in GitLab
Thomson Reuters, TMS: Workflow in GitLab
 
Devops.pptx
Devops.pptxDevops.pptx
Devops.pptx
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Jenkins djangovillage
Jenkins djangovillageJenkins djangovillage
Jenkins djangovillage
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 GolangCOSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 

Ähnlich wie Cloud agnostic serverless with fn project

Testing Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade WorkflowTesting Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade Workflow
Pantheon
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 

Ähnlich wie Cloud agnostic serverless with fn project (20)

KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Building a Kubernetes Powered Central Go Modules Repository
Building a Kubernetes Powered Central Go Modules RepositoryBuilding a Kubernetes Powered Central Go Modules Repository
Building a Kubernetes Powered Central Go Modules Repository
 
Github
GithubGithub
Github
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHP
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VM
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT Agents
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 
Introduction to jenkins for the net developer
Introduction to jenkins for the net developerIntroduction to jenkins for the net developer
Introduction to jenkins for the net developer
 
Testing Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade WorkflowTesting Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade Workflow
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 

Kürzlich hochgeladen

%+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
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Kürzlich hochgeladen (20)

%+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...
 
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 Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
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
 

Cloud agnostic serverless with fn project

Hinweis der Redaktion

  1. This is me My tagline from twitter I know what you ask yourself – aren’t you 20? I am 24 years and 120 months old.
  2. You saw that in every serverless session Because the Gods of serverless demand that explanation You pay just for execution
  3. Generally you have a Monolith, you break to Microservices Microservices are broken to functions I don’t completely agree, but that is the idea Different mindset
  4. Most likely this is what you have Face it – monoliths are not going anywhere any time soon This is OK
  5. When you think about it, it is a bit frustrating
  6. When you think about it, it is a bit frustrating
  7. DISCLAIMER: I do not work for Oracle I am not affiliated with Oracle in any way shape or form Views are my own
  8. Apache 2 Licensed, so you can use it however you want Running bit of your code on demand, based on triggers Anything that is a Linux process can be containerized and used as a function Why reinvent the wheel, when you can use already established tools and libraries For example use a NuGet package in a Function in Google cloud? Or ruby gem in a function in Azure?
  9. How many of you use containers on daily basis ? In production ? Hidden by other processes by a kernel namespacing mechanism You can run long running containers
  10. Used to use STDIN and STDOUT, but that was not easily supported by all
  11. FDKs handle the IN, OUT and Hot function support Recently added C# Still not “official”
  12. Used to use STDIN and STDOUT, but that was not easily supported by all
  13. Used to use STDIN and STDOUT, but that was not easily supported by all
  14. Used to use STDIN and STDOUT, but that was not easily supported by all
  15. Used to use STDIN and STDOUT, but that was not easily supported by all
  16. Show fn start Fn Init Fn Deploy Fn Invoke Fn UI
  17. Completable Future Used for Asynchronous programming in Java Kinda like task based programming in C#
  18. THANK YOU