how to contribute to serverless apache openwhisk opensource101 ncsu

37
@csantanapr Apache OpenWhisk How to contribute to Apache OpenWhisk OpenSource101 February 4 th 2017 Carlos Santana, Senior Software Architect | @csantanapr

Upload: carlos-santana

Post on 22-Jan-2018

210 views

Category:

Software


2 download

TRANSCRIPT

Page 1: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

Apache OpenWhiskHow to contribute to Apache OpenWhiskOpenSource101 February 4th 2017

Carlos Santana, Senior Software Architect | @csantanapr

Page 2: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprCarlos Santana

• IBM Cloud - Senior Software Engineer• Apache Committer (Cordova & OpenWhisk)• UPRM: BS, Electrical & Computer Engineering• NCSU: Masters, Computer Science

2

Page 3: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprApache (apache.org)

• The Apache Software Foundation (ASF)• Non-profit 501(c)(3) corporation (1999)• Provide a foundation for open, collaborative

software development projects • Create an independent legal entity to which

companies and individuals can donate resources and be assured that those resources will be used for the public benefit

• Provide a means for individual volunteers to be sheltered from legal suits directed at the Foundation's projects;

3

Page 4: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprOpenWhisk in a nutshell

„Event-action platform to execute code in response to events“

Page 5: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprServers

Swift

Application

Container VMCF

2

Polling

1b

Request

1a

• Traditional model– Always up and listening– Continuous polling due to missing event

programming model– Charged even when idling– No auto-scaling

Process & idle

Page 6: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprOpenWhisk is Serverless

• OpenWhisk– Introduces event programming model– Charges only for what is used– Auto-scales

Deploy action within millisecs,run it, free up resources

Trigger

1

Running action

Running action

Running action

3

OpenWhisk Engine

2 Pool of actions

Swift DockerJSJava Python

Page 7: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprOpenWhisk programming model concepts

7

RuleTrigger

RuleAction

Package

Page 8: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

A Action: a stateless function (event handler)

Page 9: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprAction: javascriptA

function main(params) {console.log(“Hello “ + params.name);return { msg: “Goodbye “ + params.name) };

}

Page 10: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

func main (params:[String:Any]) -> [String:Any] {var reply = [String:Any] ()if let name = params[“name”] as? String {

print(“Hello \(name)”)reply[“msg”] = “Goodbye \(name)”

}return reply

}

Action: SwiftA

Page 11: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprAction: arbitrary binary in docker containerA

a.out whisk/blackbox

Dockerfile0100100101101

0100100101101

Page 12: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprAction: sequenceA

:=

Page 13: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

T A

event event handler

R Rule: a mapping from a Trigger to an Action

Rule

Page 14: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

Quick Demo

Page 15: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

15https://www.raymondcamden.com/2017/02/02/working-with-openwhisk-triggers

rule

Event FunFunction

Page 16: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprRoles

• User• Developer• Committer• Project Management Committee (PMC) Member

• http://www.apache.org/foundation/how-it-works.html#roles

16

Page 17: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprUsers

• A user is someone that uses our software. They contribute to the Apache projects by providing feedback to developers in the form of bug reports and feature suggestions. Users participate in the Apache community by helping other users on mailing lists and user support forums.

17

Page 18: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprBug Report

18

Page 19: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprQuestions & Answers

19http://stackoverflow.com/questions/tagged/openwhisk

Page 20: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprChat

20Invite: http://slack.openwhisk.org Login: https://openwhisk-team.openwhisk.org

Page 21: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprDiscuss

21Subscribe: [email protected] Email: [email protected]

Page 22: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprDevelopers

• A developer is a user who contributes to a project in the form of code or documentation. They take extra steps to participate in a project, are active on the developer mailing list, participate in discussions, provide patches, documentation, suggestions, and criticism. Developers are also known as contributors .

22

Page 23: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPull Request: Quick Doc Update

23

Page 24: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPull Request: Open

24

Page 25: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPull Request: Propose change

25

Page 26: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprCommitters

• A committer is a developer that was given write access to the code repository and has a signed Contributor License Agreement (CLA) on file. They have an apache.org mail address. Not needing to depend on other people for the patches, they are actually making short-term decisions for the project. The PMC can (even tacitly) agree and approve it into permanency, or they can reject it. Remember that the PMC makes the decisions, not the individual committers.

26

Page 27: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPull Request: Triage by Committer

27

Page 28: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPull Request: Review & Merged

28

Page 29: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprProject repositories

29

Page 30: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprRepo Fork

30

Page 31: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprGit Guidelines (Origin vs. Upstream)

31

Page 32: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPR: WIP & CI

32

Page 33: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprPMC Member

• A PMC member is a developer or a committer that was elected due to merit for the evolution of the project and demonstration of commitment. They have write access to the code repository, an apache.org mail address, the right to vote for the community-related decisions and the right to propose an active user for committership. The PMC as a whole is the entity that controls the project, nobody else. In particular, the PMC must vote on any formal release of their project's software products.

33

Page 34: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanapr

Thank You

Page 35: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprOpenWhisk in a nutshell

• OpenWhisk…– allows you to focus on developing value-adding code– provides you with a flexible programming model for small agile teams– provides you with access to an open ecosystem of building blocks– allows you to compose powerful solutions using modern abstraction

and chaining– allows you to share and reuse what you have build– allows you to outsource load & calculation intensive tasks– only charges you for what you really use– is available as open solution in which you can participate

Page 36: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprOpenWhisk in a nutshell

Serverless deployment & operations modelWe hide infrastructural and operational complexity allowing you to focus on coding: You provide code – we execute it!

Optimal utilization, fair pricing at any scaleWe provide you exactly with the resources you need – neither less nor more - and charge you only for code really being executed

Flexible programming model & powerful toolingWe support multiple languages (incl. Swift) and even the execution of custom logic via docker containers plus tools to declaratively chain your code snippets

Open & open ecosystemOpen to run anywhere to avoid any kind of vendor lock-in and to accelerate the development of a powerful ecosystem

Page 37: How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU

@csantanaprSome usage scenariosBatch-Processing Multimedia Files like Images and Videos (using Box*, with Image Recognition or other Cognitive Services)

Reacting on Activities tied to Physical Locations (using Presence Insights, Push, Cognitive Services)

Reacting on Data (Streams) Received from the Internet of Things(using IoT Services, Cloudant & Spark)

Reacting on Keywords and Trends Detected by (Stream) Analysis (using Streaming Analytics & Insights for Twitter)

Reacting on Voice Commands(using Watson Speech-to-text)

Reacting on Monitored Data to Auto-Provision More Compute/Storage(using Monitoring. like Maximo)