Awesome OpenWhisk resources and tips.
OpenWhisk is a cloud-first distributed event-based programming service. It provides a programming model to upload event handlers to a cloud service, and register the handlers to respond to various events.
Articles, tutorials and blogs on building serverless applications using OpenWhisk.
- Five minute intro to open source serverless development with OpenWhisk.
- Your business won't use a server in 5 years - Blog post from Adobe on why they got involved with the Apache OpenWhisk project.
- Squeezing the milliseconds: How to make serverless platforms blazing fast! - A follow up to "Uncovering the magic" below, this article takes a closer look at OpenWhisk performance characteristics.
- Whisking the Weather! - How and why a mobile app developer developed a unique and fun weather app called Weather Gods with OpenWhisk.
- Advanced debugging of OpenWhisk actions describes how to test an Apache OpenWhisk action locally using Docker and a helper Python script.
- Extending OpenWhisk to the IoT Edge with Node-RED, Docker and resin.io - Describes a sample application for a flexible edge platform using OpenWhisk, Node-RED and resin.io to manage provisioning and lifecycle of Docker-based applications on a fleet of IoT gateways, such as Raspberry Pi.
- OpenWhisk and The Serverless Framework - Build serverless apps with OpenWhisk and The Serverless Framework.
- Uncovering the magic: How serverless platforms really work! - A step by step guide through the inner guts of OpenWhisk.
- HTTP handlers with OpenWhisk - This blog post demonstrates the use of OpenWhisk web actions to write HTTP handlers.
- What makes serverless architectures so attractive? - Serverless is the hottest trend in cloud this year, and for good reason.
- OpenWhisk Planner Bot - Plan your conference schedule with a serverless recommendation bot
- Building a Phrase Translator - Implementing a user interface with serverless functions.
- Subscribe to RSS Feeds via OpenWhisk - Use Trigger Feeds to connect Actions to RSS Feed events.
- Exploring OpenWhisk's REST API - Details on the platform API for OpenWhisk.
- Building an MQTT Feed Provider - Walking through add a new Feed Provider for IoT integration.
- Serverless APIs with OpenWhisk and API Connect - Creating public APIs for serverless web applications.
- Monitoring Apps using OpenWhisk - Using Openwhisk to run a Python monitoring app.
- Combining Twilio with Serverless Functions - Using Twilio APIs from OpenWhisk Actions.
- Jess: Serverless & GUI-less App - Budgeting application using Twilio and OpenWhisk.
- Matos: An example of a serverless data pipeline - building a bridge between Kafka (IBM Message Hub) and OpenStack Swift API (IBM Cloud Object Storage) with OpenWhisk.
- NPM Modules in OpenWhisk - Using NPM modules in OpenWhisk Actions.
- Updates to OpenWhisk Node.js actions - Recent changes including deprecation for the GA release.
- Another OpenWhisk Cron Example - the Blog Nag - Another demo involving Cron.
- Building a Form Handler Service in OpenWhisk and Building a Form Handler Service in OpenWhisk - Part Two - two articles demonstrating using OpenWhisk to handle form submissions.
- Collecting 911 Data with OpenWhisk Cron Triggers - An example of a Cron-based service.
- Serverless and Persistence - Some thoughts on persistence in a serverless environment.
- Working with OpenWhisk Triggers - A look at trigger/rule support in OpenWhisk.
- Using Packages in OpenWhisk - A look at package support in OpenWhisk.
- Talking to your Bot in OpenWhisk - A simple bot demo for OpenWhisk.
- All My Friends are Superheroes - A demo of using the Marvel API with OpenWhisk.
- Creating Zipped Actions in OpenWhisk - How to use zipped actions with OpenWhisk.
- Quick Tip for Testing OpenWhisk Actions Locally - A simple script/method to test OpenWhisk actions locally.
- An Example of an OpenWhisk Sequence - A quick tutorial on using sequences with OpenWhisk.
- Building a Serverless API Proxy with OpenWhisk - A look at how to build an API proxy with OpenWhisk.
- Lastversion.info - An HTTP service to fetch latest stable version of OpenSource projects, written in Go and running as OpenWhisk action. See the releated blog post on how to use Docker to create a Go-based OpenWhisk action
Tutorials and other material to help you learn OpenWhisk
- Official OpenWhisk Tutorial - Interactive tutorial for learning how to use OpenWhisk.
- OpenWhisk-workshop - This workshop will help you learn OpenWhisk and introduce you to the concepts behind the platform using NodeSchool toolchain.
- 60secs Quickstart - Starting OpenWhisk in Sixty Seconds
Sample open-source projects built using the OpenWhisk platform
- Your first Action, Trigger, and Rule - Simple Hello World style demo showing OpenWhisk actions, triggers, and rules.
- Message Hub and Kafka Data Processing - Create a serverless, event-driven application with OpenWhisk that executes code in response to messages or to handle streams of data records from Apache Kafka or IBM Message Hub.
- OpenWhisk and Serverless APIs - Create a serverless, event-driven application with OpenWhisk that executes code in response to HTTP REST API calls.
- Cloudant Data Processing - Create a serverless, event-driven application with OpenWhisk that executes code in response to database changes from Apache CouchDB or IBM Cloudant.
- Transit IoT - Comprehensive example of using OpenWhisk for IoT data processing that uses Docker, Node-RED, Message Hub (Kafka based), Object Storage, Spark and Bluemix Data Science Experience services for data analytics.
- Emoting - Sample “user feedback” app that uses OpenWhisk actions via REST API with pages hosted on GitHub and database in Cloudant.
- Logistics Wizard - Enterprise-grade sample application which leverages OpenWhisk and CloudFoundry to build 12-factor style applications. It is a smart supply chain management solution that aims to simulate an environment running an ERP system. Also see related blog post.
- Web Actions - This sample shows how to use OpenWhisk to build a complete Web App. See related blog post.
- Dark vision - Application that shows how to use OpenWhisk, Cloudant, Watson Visual Recognition, Object Storage to process video frames, tag and recognize scenes.
- openwhisk-monitoring - Example of using OpenWhisk to monitor HTTP server status.
- openwhisk-publisher - Hosting static sites with Jekyll, Object Storage and OpenWhisk.
- skylink - Connect and control a DJI drone aircraft over the Internet with OpenWhisk.
- BluePic - Photo sharing application for iOS using Swift Actions for the backend.
- Conference Plan Bot - Conference planning bot built using serverless functions.
- Project OpenFridge - Improving customer service with IoT and event-driven computing.
- Project OpenChecks - Processes the deposit of checks to a bank account with object storage and OCR.
- openwhisk-nlc-action - Docker Action with IBM Watson Natural Language Classifier to classify input text.
- openwhisk-slackapp - Serverless Slack app built with Slack Events API and IBM Bluemix OpenWhisk.
- openwhisk-visionapp - Image tagging and face detection iOS app built with IBM Bluemix OpenWhisk.
- openwhisk-jq - OpenWhisk Action wrapping the JQ command-line utility for JSON filtering.
- Personality Analysis - Analysing political speeches using IBM Watson.
- Mobile Services Demo- Swift app that for analysing tone and posting to a slack channel.
- Drink Chooser- Example Swift app storing to & reading from Redis recommending a drink to consume.
- Lastversion- An HTTP service to fetch latest stable version of OpenSource projects, written in Go and running as OpenWhisk action
- Form processing with OpenWhisk - Process contact form without a backend using IBM Bluemix OpenWhisk and SendGrid. See live link here
- [Developing Serverless Applications, A Practical Introduction with Apache OpenWhisk] (https://www.oreilly.com/programming/free/developing-serverless-applications.csp) - free ebook
Podcasts, videos, presentations and other content about OpenWhisk.
- OpenWhisk YouTube Channel - Screencast demos, recorded presentations and other videos.
- Creating OpenWhisk Actions - Running Actions with OpenWhisk
- Automating Actions - Using Triggers with Actions.
- OpenWhisk Editor - Exploring the OpenWhisk visual editor.
- OpenWhisk APIs with API Connect - Building APIs using API Connect.
- Building Slack Bots with OpenWhisk - Using OpenWhisk to build a Weather Slack Bot.
- Project OpenFridge - Improving customer service with IoT and event-driven computing.
- Build a cloud native app with Apache OpenWhisk - An overview of serverless architectures, introduction to the OpenWhisk programming model, and deployment of an OpenWhisk application on IBM Bluemix.
- Using Serverless Framework & OpenWhisk - Using the framework to build OpenWhisk applications.
- RedHat Summit 2018 breakout session on OpenWhisk
- Serverless architectures built on an open source platform - Five minute IBM keynote introducing OpenWhisk at the O'Reilly Software Architecture Conference in NYC 2017.
- Event-driven and Serverless Computing with OpenWhisk - Video from Serverless Conf London 2016 by Andreas Nauerz & Michael Behrendt.
- OpenWhisk Under the Hood - Video from Serverless Conf London 2016 by Stephen Fink.
- Lightning talk introducing serverless architectures and OpenWhisk - IBM keynote at CloudNativeCon + KubeCon 2016. Video also available.
- Tech Talk about OpenWhisk - Detailed look at this new open source platform from Stephen Fink.
- The Future Of Cloud Programming - IBM Bluemix OpenWhisk Talk @ Codemotion 2016, Amsterdam.
- Serverless Applications with Cloud Foundry and OpenWhisk - Video from Cloud Foundry Summit 2016.
- Microservices Without Servers - Slides, demo videos and sample code from conference talk on building serverless applications with OpenWhisk.
- Voxxed Days Presentation - Video recording for the Microservices Without Servers talk.
- OpenWhisk - A platform for cloud native, serverless, event driven apps - Presentation from Cloud Native Day Toronto. Video also available.
- The Serverless Paradigm, OpenWhisk and FIWARE - Presentation at the FIWARE Summit by Alex Glikson (video here).
- Official OpenWhisk Slides - Presentation decks from OpenWhisk team.
- Multi-provider Serverless Apps - Presentation at Serverless LDN. Video.
- What Makes IBM OpenWhisk Different? Openness - The New Stack podcast with Andreas Nauerz and Michael Behrendt.
- The Cloudcast #252 - Interview with OpenWhisk team about the future of serverless computing.
- InfoQ Interview - Q&A with Michael Behrendt on IBM's Event-driven Programming Service.
- #vSurround: Are Serverless Architectures Ready for Primetime? - Roundtable discussion with Daniel Krook (IBM), Adam Johnson (IOpipe), David Wells (Serverless), and Ryan Scott Brown (Red Hat) about serverless definitions, use cases, and what's to come in 2017.
Links to samples, libraries and projects for running Actions using different languages.
- Java - OpenWhisk runtime for Java 8.
- Python - OpenWhisk runtime for Python 2.7
- Swift - OpenWhisk runtime for Swift.
- Docker - OpenWhisk runtime for Docker Actions using SDK.
- Scala - Example article with Github code for running OpenWhisk Actions in Scala.
- Haskell - Haskell-based OpenWhisk services
- Docker Examples - Run Clojure, Erlang, Ruby and Rust Actions on OpenWhisk using Docker.
- Go - Blog post and library for building Go language Actions.
- Rust - Blog post and library for building Rust language Actions.
- Docker Actions - Explanation of updated Docker Action runtime.
Examples of integrating OpenWhisk with external event sources.
- openwhisk-package-imap - OpenWhisk Package to expose IMAP emails as a trigger feed.
- openwhisk-package-template - This is a template to be use when creating new packages for OpenWhisk.
- openwhisk-package-iot - Package including all actions and feeds of Watson IoT Platform.
- openwhisk-mqtt-feed - MQTT package for OpenWhisk, provides a topic subscriber feed.
- openwhisk-package-mqtt-watson - OpenWhisk MQTT Package for Watson IoT service.
- openwhisk-package-aws - OpenWhisk AWS package, providing feeds for SNS topics and S3 bucket changes
- amqp-wsk-feed - OpenWhisk AMQP package, provides a feed for AMQP 1.0 topics and queues.
Tools and utilities to help you be more productive with OpenWhisk
- swagger-openwhisk - Generate a fully functional whisk package and actions from a swagger specification
- openwhisk-webpack - Demonstration of using Webpack to bundle OpenWhisk Actions.
- openwhisk-es6-action - Sample project showing how to bundle ECMAScript6 actions including unit tests and code coverage.
- hubot-ibmcloud-openwhisk - Hubot scripts for OpenWhisk.
- node-red-node-openwhisk - Node-RED nodes for interacting with OpenWhisk platform.
- openwhisk-vscode - Plugin for Visual Studio Code to provide OpenWhisk commands.
- openwhisk-apiapp - Proxies calls to OpenWhisk Actions using NGINX to enables CORS
- openwhisk-canirequire - Find out which NPM modules can be used in OpenWhisk.
- Jupyter Notebooks integration - Jupyter Notebooks as OpenWhisk Actions
- logstash-input-openwhisk - Logstash plugin to drain OpenWhisk logs to Elastic Search.
- wab (whisk activation browser) - A terminal-mode browser for inspecting OpenWhisk activations.
- Swift - Swift client SDK for OpenWhisk with support for iOS, WatchOS2, and Darwin CLI apps.
- Python - Python client library for the OpenWhisk platform.
Got stuck with OpenWhisk? Find help here…