with Apache OpenWhisk, an open source, distributed Serverless platform
Upkar Lidder
@lidderupk
ulidder@us.ibm.com
Workshop - http://bit.ly/serverless-think-labs
IBM CLI - http://bit.ly/ibmcloudcli-standalone
Pre-requisites
IBM Cloud sign up - https://ibm.biz/BdqrPf
@lidderupk
IBM Developer
1. Create IBM Cloud Account using THIS URL
3. If you already have an account, use the above URL to sign into your IBM Cloud account.
2. Check your email and activate your account. Once activated, log back into your IBM Cloud account using the link above.
https://ibm.biz/BdqrPf
@lidderupk
IBM Developer
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.
It refers to the idea that consumers of serverless computing no longer need to spend time and resources on server provisioning, maintenance, updates, scaling, and capacity planning. Instead, all of these tasks and capabilities are handled by a serverless platform and are completely abstracted away from the developers.
Cloud Native Computing Foundation
https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
Entry point
Object In
Object Out
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
Workshop - http://bit.ly/serverless-think-labs
IBM CLI - http://bit.ly/ibmcloudcli-standalone
IBM Cloud sign up - https://ibm.biz/BdqcDL
@lidderupk
IBM Developer
https://github.com/cncf/landscape#serverless
@lidderupk
IBM Developer
Amazon Lambda
•Node.js, Python, Java, C# and Go
IBM Cloud Functions
•Node.js 8, Node.js 6, Python 3.6.4, Python 3.6.1, PHP 7.1, PHP 7.2, and Swift 4, Swift 3.1.1, Ruby 2.5, Docker
•Recent change – 2GB max memory and 10 minutes run limit.
Microsoft Azure
•C#, F#, Node.js (in GA), Java, Python, PHP, TypeScript, Bash, PowerShell (experimental mode)
Google Cloud Function
•Node.js, Python
This space is constantly changing !
@lidderupk
IBM Developer
Apache OpenWhisk is an open source, distributed Serverless platform that supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run (with Rules) in response to associated events (via Triggers) from external sources ( Feeds) or from HTTP requests.
@lidderupk
IBM Developer
Packages
@lidderupk
IBM Developer
Leverages existing opensource solutions
@lidderupk
IBM Developer
Leverages existing opensource solutions
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
wsk action create helloJava target/hello-world-java.jar --main com.example.FunctionApp
@lidderupk
IBM Developer
wsk action invoke --result helloJava --param name World
@lidderupk
IBM Developer
1user registers
2tail logs
3SMS
4email
@lidderupk
IBM Developer
@lidderupk
IBM Cloud - http://bit.ly/serverless-think-labs
https://github.com/lidderupk/openwhisk-registration/tree/master/javascript
@lidderupk
IBM Developer
CONDITION Action Name
Code
THEN Action Name
Code
ELSE Action Name
Code
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
Upkar Lidder, IBM
@lidderupk
https://github.com/lidderupk/
ulidder@us.ibm.com
@lidderupk
IBM Developer
@lidderupk
IBM Developer
Entry point
JsonObject In
JsonObject Out
@lidderupk
IBM Developer
JsonObject In
Fat JAR
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
Entry point
Dictionary
Dictionary
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
@lidderupk
IBM Developer
1
2
3
4
@lidderupk
IBM Developer
@lidderupk
IBM Developer
1
2
3
4
5
@lidderupk
IBM Developer
@lidderupk
IBM Developer