Apache OpenWhisk logo

Apache OpenWhisk

Run event‑driven functions at scale with Docker and Kubernetes

Apache OpenWhisk provides a serverless platform to create, compose, and trigger functions using Docker containers, with standalone and Kubernetes deployment options, plus a CLI for management.

Apache OpenWhisk banner

Overview

Overview

Apache OpenWhisk is a serverless platform that lets developers create actions, compose them into workflows, and bind them to events through triggers and rules. Functions run inside isolated Docker containers, supporting many runtimes such as Java, JavaScript, Python, Swift, and more.

Deployment Options

For quick experimentation, the Standalone stack runs as a single Java process and opens a web Playground at http://localhost:3232. Production workloads can be deployed on any Kubernetes cluster—managed services like AKS, EKS, GKE, or local Minikube—using the openwhisk‑deploy‑kube repository. The wsk CLI provides full lifecycle management of actions, packages, and triggers.

Community and Extensibility

The project is governed by the Apache Software Foundation and backed by an active community on GitHub and Slack. Recent migration to the Apache Pekko framework introduces a breaking change that requires redeploying clusters and updating configuration overrides, with a 3.x branch planned for transition.

Highlights

Rich programming model with actions, triggers, rules, and workflows
Runs functions in isolated Docker containers supporting many runtimes
Standalone Java process for quick local development
Kubernetes‑native deployment for production clusters

Pros

  • Language‑agnostic runtime support
  • Flexible deployment options (standalone, Docker, Kubernetes)
  • Mature ecosystem and active community
  • Scalable event‑driven architecture

Considerations

  • Requires Docker and Java runtime setup
  • Migration to Apache Pekko may need config changes
  • Learning curve for triggers and rules model
  • Not a fully managed SaaS; you operate the platform

Managed products teams compare with

When teams consider Apache OpenWhisk, these hosted platforms usually appear on the same shortlist.

AWS Lambda logo

AWS Lambda

Serverless compute service that runs code in response to events without provisioning or managing servers

Azure Functions logo

Azure Functions

Serverless compute service in Azure for running event-driven code without managing infrastructure

Google Cloud Functions logo

Google Cloud Functions

Event‑driven serverless compute for running code on demand

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Teams building microservices with event‑driven functions
  • Organizations needing on‑premise serverless control
  • Developers wanting to experiment locally before scaling
  • Enterprises integrating with existing Kubernetes clusters

Not ideal when

  • Users seeking a fully hosted serverless service
  • Projects with minimal ops resources for cluster management
  • Simple scripts that don’t require scaling or orchestration
  • Environments where Docker is prohibited

How teams use it

API Backend with Dynamic Scaling

Deploy HTTP‑triggered actions that auto‑scale based on request volume, reducing infrastructure costs.

Data Processing Pipelines

Chain actions via triggers and rules to process streaming data in real time.

CI/CD Automation

Invoke build and test actions from Git events, integrating with existing DevOps workflows.

Edge Computing Prototype

Run lightweight functions in Docker containers on edge nodes managed through Kubernetes.

Tech snapshot

Scala89%
JavaScript4%
Python2%
Shell2%
Java1%
Jinja1%

Tags

functionskubernetesserverless-functionsapacheserverless-architecturescloudfaasfunctions-as-a-serviceserverlessopenwhiskdocker

Frequently asked questions

What runtimes are supported?

OpenWhisk can execute actions written in Java, JavaScript, Python, Swift, Go, and many other languages via Docker images.

Can OpenWhisk run on a managed Kubernetes service?

Yes, you can deploy the platform to AKS, EKS, GKE, or any compatible Kubernetes cluster using the openwhisk-deploy-kube repository.

What is the impact of the recent migration to Apache Pekko?

The master branch now uses Pekko; you must redeploy clusters and update any Akka configuration overrides to their Pekko equivalents.

Project at a glance

Active
Stars
6,744
Watchers
6,744
Forks
1,173
LicenseApache-2.0
Repo age9 years old
Last commitlast month
Primary languageScala

Last synced 11 hours ago