SlideShare uma empresa Scribd logo
1 de 24
Your Journey into the Serverless World
Introduction to Serverless
bit.ly/faas-tutorial
https://learn.openshift.com/serverless
Who am I ?
● Active Open Source Contributor
○ OpenWhisk
○ Eclipse Che
○ fabric8 Platform https://fabric8.io/
● Creator vert.x-maven-plugin →
https://vmp.fabric8.io/
kameshsampath
Kamesh Sampath
Director of Developer Experience at Red Hat
@kamesh_sampath
kamesh.sampath@hotmail.com
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.
https://www.cncf.io/blog/2018/02/14/cncf-takes-first-step-towards-serverless-computing
Good and Bad about Serverless
● Automatic Scalability
● Automatic Cost Reduction
● Quicker and Easier
Development
● Better Capacity planning
● Delivery speed
● Debugging
● Deployment and
Architectural complexity
● Deep learning curve
● Vendor Lock-in
● Monitoring
https://hackernoon.com/serverless-survey-77-delivery-speed-4-dev-workdays-mo-saved-26-aws-monthly-bill-d99174f70663
Apache OpenWhisk
● Open Source incubating under Apache
● A Cloud platform to execute functions
written in:
○ JavaScript
○ Swift
○ Java
○ Python
○ PHP
○ Docker
○ Go
● Deployable on
○ Any platform where docker can be run
○ Kubernetes/OpenShift
Some theory
● Actions
○ A stateless code snippet that gets executed
● Package
○ A bundle of actions and feeds synonymous to Java Packages
● Feeds
○ Acts as Interface between external Event Sources and OpenWhisk
Actions
● Triggers
○ Stimulus of external Events via Feeds
● Rules
○ Ties one or more Triggers to an Action or vice-versa
● Activation
○ Records the output/response of Running/Ran actions
Tooling
● wsk
○ The core command line interface to work OpenWhisk
● wskdeploy
○ The command line tool to allow deploying OpenWhisk actions, functions etc., using YAML base
manifest
● Maven (only for Java)
○ Generate OpenWhisk Java Functions
● Serverless Framework
○ JavaScript based template framework
○ Support for generating OpenWhisk Templated project
○ Ability to deploy functions to OpenWhisk
Invocation Patterns
ASYNCHRONOUS SYNCHRONOUS
SCHEDULED
Apache OpenWhisk - How does it work ?
Controller
Kafka
nginx
Invoker Invoker
Get the feel
Java Actions
Plain Old Function (POF)
● Pros
○ Java POJO
○ Simple and straightforward to understand
● Cons
○ Not portable across serverless providers
○ Dependencies need to bundled as an uberjar
○ Uses third-party libs e.g Google Gson for OpenWhisk
Java Actions
Spring Cloud Functions (SCF)
● Pros
○ Uses standard and popular Spring Programming model
○ Standard Spring Boot Application Signature
■ No extension of specific provider e.g. AWS Lambda
○ Uses Java Function Model
■ Functions (Event Sinks)
● Suppliers
● Consumer
○ Adapters for major serverless providers OpenWhisk, AWS, Azure
■ Increases portability
● Cons
○ Heavy and Fat for serverless functional app
○ Startup time is longer owing to start the standard Spring Boot Application
○ Uses thin-jar for basic application and dependency resolution happens at runtime
○ Customization is not possible as some serverless providers might not allow custom docker
images
WebAction
● Any action could be made web action
○ via annotation
● Web Action has URLS wsk -i action get myaction --url
● Any HTTP Verb could be used
● Automatic Content type detection via prefixing the url
○ E.g. https://some-url.json
● Can be invoked via URL
○ Query Parameters will be Action Parameter JSON
○ Request Body will be Action Parameter JSON
● If Content-Type header is ignored then the request body will be base64
encoded string
● It's NOT SYNCHRONOUS
● Some resources require authentication
Demo - Web Action
Action Chaining
● Actions can be chained
● Pre-defined chain of actions
○ Sequences
● Action Chaining could also be determined at runtime
○ Conductors
● Only first function in Sequence can accept parameter
○ The output of previous step(Action) is input to next
Demo - Action Chaining
Event Driven Capabilities
● OpenWhisk functions can respond to Events
● Events could be
○ Another function
○ External event source called as Feed Provider
● Event Action is OpenWhisk Function that’s invoked for a Trigger
● Event Actions are invoked via Triggers
○ Rules tie Actions to Triggers
● Trigger can be registered to Event Provider via Feeds (Stream of Events)
○ Feed can be:
■ Polling
■ Webhook
■ Persistent Connection
Cloud Events
● Define specification for Cloud Events
○ Effort via CNCF’s Serverless Working
Group
● Major Cloud Providers, SaaS providers are
part of working committee
● https://cloudevents.io/
Feed the Trigger to Rule your Action
Demo - Feeds and Events
Thank you
bit.ly/faas-tutorial
https://learn.openshift.com/serverless
@kamesh_sampathkamesh.sampath@hotmail.com

Mais conteúdo relacionado

Mais procurados

Tupperware: Containerized Deployment at FB
Tupperware: Containerized Deployment at FBTupperware: Containerized Deployment at FB
Tupperware: Containerized Deployment at FB
Docker, Inc.
 

Mais procurados (20)

Back to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy ApplicationsBack to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy Applications
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016
 
Tupperware: Containerized Deployment at FB
Tupperware: Containerized Deployment at FBTupperware: Containerized Deployment at FB
Tupperware: Containerized Deployment at FB
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
 
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java ApplicationsAutomating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
 
Introduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes TrainingIntroduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes Training
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
4K–Kubernetes with Knative, Kafka and Kamel
4K–Kubernetes with Knative, Kafka and Kamel 4K–Kubernetes with Knative, Kafka and Kamel
4K–Kubernetes with Knative, Kafka and Kamel
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Advanced Access Control with Docker EE
Advanced Access Control with Docker EEAdvanced Access Control with Docker EE
Advanced Access Control with Docker EE
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
 
Microservices in GO - Massimiliano Dessì - Codemotion Rome 2017
Microservices in GO - Massimiliano Dessì - Codemotion Rome 2017Microservices in GO - Massimiliano Dessì - Codemotion Rome 2017
Microservices in GO - Massimiliano Dessì - Codemotion Rome 2017
 
In-Cluster Continuous Testing Framework for Docker Containers
In-Cluster Continuous Testing Framework for Docker ContainersIn-Cluster Continuous Testing Framework for Docker Containers
In-Cluster Continuous Testing Framework for Docker Containers
 
The Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build ScriptThe Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build Script
 

Semelhante a Your journey into the serverless world

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
 
Next Generation Automation in Ruckus Wireless
Next Generation Automation in Ruckus WirelessNext Generation Automation in Ruckus Wireless
Next Generation Automation in Ruckus Wireless
David Ko
 
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
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 

Semelhante a Your journey into the serverless world (20)

Your Java Journey into the Serverless World
Your Java Journey into the Serverless WorldYour Java Journey into the Serverless World
Your Java Journey into the Serverless World
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless world
 
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
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
Next Generation Automation in Ruckus Wireless
Next Generation Automation in Ruckus WirelessNext Generation Automation in Ruckus Wireless
Next Generation Automation in Ruckus Wireless
 
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
 
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
 
Advanced Web Technology.pptx
Advanced Web Technology.pptxAdvanced Web Technology.pptx
Advanced Web Technology.pptx
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with Gatling
 
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
 
Nodejs
NodejsNodejs
Nodejs
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
Exposing Lambda Functions as Managed APIs
Exposing Lambda Functions as Managed APIsExposing Lambda Functions as Managed APIs
Exposing Lambda Functions as Managed APIs
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
 
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
 
BaseX user-group-talk XML Prague 2013
BaseX user-group-talk XML Prague 2013BaseX user-group-talk XML Prague 2013
BaseX user-group-talk XML Prague 2013
 
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
 
Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEAN
 
Run Apache Spark on Kubernetes in Large Scale_ Challenges and Solutions-2.pdf
Run Apache Spark on Kubernetes in Large Scale_ Challenges and Solutions-2.pdfRun Apache Spark on Kubernetes in Large Scale_ Challenges and Solutions-2.pdf
Run Apache Spark on Kubernetes in Large Scale_ Challenges and Solutions-2.pdf
 

Mais de Red Hat Developers

Mais de Red Hat Developers (20)

DevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOpsDevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOps
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
 
GitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech TalkGitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech Talk
 
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech TalkQuinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
 
Extra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech TalkExtra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech Talk
 
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
 
Integrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech TalkIntegrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech Talk
 
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...
 
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
 
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
 
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkA Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
 
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
 
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech TalkTo the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
 
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
 
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
 
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech TalkLevel-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
 

Último

%+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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (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...
 
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 🔝✔️✔️
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
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 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
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
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...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
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
 
%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
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
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
 
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
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%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
 

Your journey into the serverless world

  • 1.
  • 2. Your Journey into the Serverless World Introduction to Serverless bit.ly/faas-tutorial https://learn.openshift.com/serverless
  • 3. Who am I ? ● Active Open Source Contributor ○ OpenWhisk ○ Eclipse Che ○ fabric8 Platform https://fabric8.io/ ● Creator vert.x-maven-plugin → https://vmp.fabric8.io/ kameshsampath Kamesh Sampath Director of Developer Experience at Red Hat @kamesh_sampath kamesh.sampath@hotmail.com
  • 4. 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. https://www.cncf.io/blog/2018/02/14/cncf-takes-first-step-towards-serverless-computing
  • 5.
  • 6. Good and Bad about Serverless ● Automatic Scalability ● Automatic Cost Reduction ● Quicker and Easier Development ● Better Capacity planning ● Delivery speed ● Debugging ● Deployment and Architectural complexity ● Deep learning curve ● Vendor Lock-in ● Monitoring https://hackernoon.com/serverless-survey-77-delivery-speed-4-dev-workdays-mo-saved-26-aws-monthly-bill-d99174f70663
  • 7. Apache OpenWhisk ● Open Source incubating under Apache ● A Cloud platform to execute functions written in: ○ JavaScript ○ Swift ○ Java ○ Python ○ PHP ○ Docker ○ Go ● Deployable on ○ Any platform where docker can be run ○ Kubernetes/OpenShift
  • 8. Some theory ● Actions ○ A stateless code snippet that gets executed ● Package ○ A bundle of actions and feeds synonymous to Java Packages ● Feeds ○ Acts as Interface between external Event Sources and OpenWhisk Actions ● Triggers ○ Stimulus of external Events via Feeds ● Rules ○ Ties one or more Triggers to an Action or vice-versa ● Activation ○ Records the output/response of Running/Ran actions
  • 9. Tooling ● wsk ○ The core command line interface to work OpenWhisk ● wskdeploy ○ The command line tool to allow deploying OpenWhisk actions, functions etc., using YAML base manifest ● Maven (only for Java) ○ Generate OpenWhisk Java Functions ● Serverless Framework ○ JavaScript based template framework ○ Support for generating OpenWhisk Templated project ○ Ability to deploy functions to OpenWhisk
  • 11. Apache OpenWhisk - How does it work ? Controller Kafka nginx Invoker Invoker
  • 14. Plain Old Function (POF) ● Pros ○ Java POJO ○ Simple and straightforward to understand ● Cons ○ Not portable across serverless providers ○ Dependencies need to bundled as an uberjar ○ Uses third-party libs e.g Google Gson for OpenWhisk Java Actions
  • 15. Spring Cloud Functions (SCF) ● Pros ○ Uses standard and popular Spring Programming model ○ Standard Spring Boot Application Signature ■ No extension of specific provider e.g. AWS Lambda ○ Uses Java Function Model ■ Functions (Event Sinks) ● Suppliers ● Consumer ○ Adapters for major serverless providers OpenWhisk, AWS, Azure ■ Increases portability ● Cons ○ Heavy and Fat for serverless functional app ○ Startup time is longer owing to start the standard Spring Boot Application ○ Uses thin-jar for basic application and dependency resolution happens at runtime ○ Customization is not possible as some serverless providers might not allow custom docker images
  • 16. WebAction ● Any action could be made web action ○ via annotation ● Web Action has URLS wsk -i action get myaction --url ● Any HTTP Verb could be used ● Automatic Content type detection via prefixing the url ○ E.g. https://some-url.json ● Can be invoked via URL ○ Query Parameters will be Action Parameter JSON ○ Request Body will be Action Parameter JSON ● If Content-Type header is ignored then the request body will be base64 encoded string ● It's NOT SYNCHRONOUS ● Some resources require authentication
  • 17. Demo - Web Action
  • 18. Action Chaining ● Actions can be chained ● Pre-defined chain of actions ○ Sequences ● Action Chaining could also be determined at runtime ○ Conductors ● Only first function in Sequence can accept parameter ○ The output of previous step(Action) is input to next
  • 19. Demo - Action Chaining
  • 20. Event Driven Capabilities ● OpenWhisk functions can respond to Events ● Events could be ○ Another function ○ External event source called as Feed Provider ● Event Action is OpenWhisk Function that’s invoked for a Trigger ● Event Actions are invoked via Triggers ○ Rules tie Actions to Triggers ● Trigger can be registered to Event Provider via Feeds (Stream of Events) ○ Feed can be: ■ Polling ■ Webhook ■ Persistent Connection
  • 21. Cloud Events ● Define specification for Cloud Events ○ Effort via CNCF’s Serverless Working Group ● Major Cloud Providers, SaaS providers are part of working committee ● https://cloudevents.io/
  • 22. Feed the Trigger to Rule your Action
  • 23. Demo - Feeds and Events