an open source, distributed Serverless platform
Upkar Lidder
Developer Advocate, IBM
> ulidder@us.ibm.com
> @lidderupk
> upkar.dev
@lidderupk
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
Short duration, focused, asynchronous
Infrequent or has sporadic demand
Stateless
Highly dynamic
Cloud Native Computing Foundation
@lidderupk
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
Packages
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
Entry point
Object In
Object Out
@lidderupk
@lidderupk
[API Gateway ➸ Functions ➸ db]
GET /cat ➸ cat-get
POST /cat ➸ cat-post
PUT /cat ➸ cat-put
DELETE /cat ➸ cat-delete
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
CONDITION Action Name
Code
THEN Action Name
Code
ELSE Action Name
Code
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
> ulidder@us.ibm.com
> @lidderupk
> upkarlidder.com
@lidderupk
Upkar Lidder
Developer Advocate, IBM
@lidderupk
@lidderupk
@lidderupk
@lidderupk
Leverages existing opensource solutions
@lidderupk
1
2
3
4
5
@lidderupk
Entry point
Dictionary
Dictionary
@lidderupk
@lidderupk
@lidderupk
@lidderupk
@lidderupk
Entry point
Object In
Object Out
@lidderupk
1
2
3
4
5
@lidderupk
CONDITION Action Name
Code
THEN Action Name
Code
ELSE Action Name
Code
@lidderupk
@lidderupk
Entry point
JsonObject In
JsonObject Out
@lidderupk
JsonObject In
Fat JAR
@lidderupk
@lidderupk
1
2
3
4
@lidderupk
@lidderupk
wsk action create helloJava target/hello-world-java.jar
--main com.example.FunctionApp
@lidderupk
wsk action invoke --result helloJava --param name "Upkar Lidder"
@lidderupk
@lidderupk