Download presentation
Presentation is loading. Please wait.
Published byChristine Little Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.