Presentation is loading. Please wait.

Presentation is loading. Please wait.

Be Whisked Away with a Raspberry PI, Java, and OpenWhisk

Similar presentations


Presentation on theme: "Be Whisked Away with a Raspberry PI, Java, and OpenWhisk"— Presentation transcript:

1 Be Whisked Away with a Raspberry PI, Java, and OpenWhisk
Luc Desrosiers Certified IT Architect Session CON2758

2 About me 20 years in IT – Development, Integration, Cloud
IT Architect who loves to write code Java enthusiast since using Servlet Express back in 1998 Cloud, IoT and Cognitive computing are areas that I am passionate about Probably lost my hair to a program that would not compile…

3 What can you expect to get from this session?
An understanding of serverless computing and OpenWhisk An early view on some usage patterns and how it can be used to complement your application design A quick way to get started experimenting with OpenWhisk And finally, A demonstration of an IoT solution integrated with OpenWhisk

4 What is OpenWhisk? OpenWhisk is a Cloud platform to execute code in response to events OpenWhisk is an Open Source project released by IBM Supports many language including Java Based on the serverless concept …

5 What is serverless ? OpenWhisk is a Cloud platform to execute code in response to events Serverless is about removing infrastructure from the equation It is about focusing on business logics, not thread pools Often associated to Function-as-a-Service

6 What if I need to scale this?
The transition from micro services… Service Discovery 1 Docker Container 1 Docker Container Microservice REST /HTTP VM REST /HTTP API VM App Servers Publish App Servers Microservice Microservice VM App Servers App Servers API Microservice Microservice Publish NodeJS instance NodeJS instance broker Subscribe What if I need to scale this? NodeJS instance Microservice NodeJS instance Microservice Microservice NodeJS instance

7 to serverless… Serverless technology handles the burst
Service Discovery 1 Docker Container 1 Docker Container Microservice REST /HTTP VM REST /HTTP API VM Publish Microservice Microservice VM API serverless container Trigger Publish Action Serverless technology handles the burst Microservice broker Trigger What if I need to scale this? Subscribe Action Microservice Microservice

8 So what does it look like ?
Event Actions are only alive for the duration of the execution! Trigger Action Trigger + Action = Rule

9 OpenWhisk Overview Language supported: NodeJS Swift Java Python Docker

10 Where does it fit ? Serverless is a piece of the puzzle… not a complete solution Triggers and Back-end Services are not necessarily serverless Someone has to hold the state after all… Back-end as a Service Event Generator Serverless components UI Components

11 Serverless and the 12 Factor App?
Twelve Factor App was created as a methodology for building SaaS… II. Dependencies Explicitly declare and isolate dependencies III. Config Store config in the environment IV. Backing services Treat backing services as attached resources VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown

12 OK, what about usage patterns ?
Serverless technologies are still new… patterns have yet to emerge Simplicity should be the focus of each function May need significant refactoring of existing code to minimize dependencies… However there are some architecture patterns where serveless fits nicely…

13 Mobile and Web Backend as a Service
Sequence Business Logic Action /whisk/push Backend Service API Gateway Trigger Web App Benefits: Clear delineation of business and controller logic Produces discreet reusable action that can be assembled as a sequence

14 The analytics platform
Data processing pipeline Cloudant DB A IoT Events Quality Control Event Persister /whisk/cloudant Trigger Change Listener Data Enrichment Cloudant DB A /whisk/weather Change Feed Benefits: Database change can trigger other actions Functionality can be extended easily

15 The DevOps pipeline Benefits: Improve communication
Sequence GitHub Business Logic Action /whisk/slack Backend Service Git Data Feed Benefits: Improve communication Clean extension to the build pipeline

16 Some considerations Avoid heavy-weight functions Harder to debug
Harder to reuse Trigger do not guarantee order of processing… Message affinity is bad… avoid it at all costs Plan how your input and output are designed to maximize reuse Ability to re-use an action depends on the assumption it is making about its input Assert aggressively!

17 Now, how can you get started?
Get familiar with the OpenWhisk command line interface Create a basic Java Action Deploy to Bluemix or locally

18 OpenWhisk Command Line
Installing OpenWhisk CLI can be found here: wsk trigger create <trigger-name> 1. Creating a trigger wsk package create <package-name> 2. Creating a package wsk action create <package>/<action> <Jar File>.jar 3. Creating an action wsk package bind /whisk.system/websocket <bind-name> -p uri ws://<url> 4. Create a binding for an action wsk rule create <rule-name> <trigger> <action> 5. Create a rue for triggering an action

19 Creating a Basic Java Action
The entry point for the Action must follow this signature Note: If the JAR file has more than one class with a main method matching required signature, the CLI tool uses the first one reported by jar -tf

20 Deploying to Bluemix

21 What is available out of the box?
Here are some of the provided package of actions and feed you can use to get started: Weather data slack github Cloudant Watson Push Notifications Alarms

22 Where does the Raspberry Pi come in?
Serverless technology Is based on triggering action based on events A robot including sensors generates lots of events Objective was to see how serverless could be integrated

23 The Anatomy of an IoT tank
Cloudant IoT-Tank Visual Recognition Send image & sensor data Change Listener Image Analysis Start & stop session Start Session IoT Tank Vision IoT Bridge Stop Session Save IoT data Watson IoT Foundation OpenWhisk

24 IoT tank – Communication Layer
Sending events: Pi4J – GPIO Control IBM Watson IoT Foundation – IoT integration Cloudant – Image persistence JRPiCam – Pi Camera Control Receiving commands:

25 Wrap-up Serverless technology is a key part of a microservices architecture OpenWhisk reduces the operational burden Patterns are still emerging but the technology works great with: Web or Mobile application Analytics DevOps pipeline Getting started is easy and quick… Try it for yourself! 

26 Thank You! Some references…
IBM Hybrid Cloud solution guide: Building a Hybrid Cloud with Bluemix Bluemix blog  Getting Started with OpenWhisk: Accessing the code: Luc Desrosiers | | Twitter: Luc_At_IBM

27 The inner-workings of OpenWhisk


Download ppt "Be Whisked Away with a Raspberry PI, Java, and OpenWhisk"

Similar presentations


Ads by Google