Open Source Serverless Cloud Platform

Executes functions in response to events at any scale

What is Apache OpenWhisk?

Apache OpenWhisk (Incubating) is an open source, distributed Serverless platform that executes functions (fx) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications.

The OpenWhisk platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources (Feeds) or from HTTP requests. The project includes a REST API-based Command Line Interface (CLI) along with other tooling to support packaging, catalog services and many popular container deployment options.

Create Your Local Playground
Events trigger the Apache OpenWhisk platform to run Actions or functions in various supported languages.
Apache OpenWhisk can deploy on your favorite Cloud container framework.

Deploys anywhere

Since Apache OpenWhisk builds its components using containers it easily supports many deployment options both locally and within Cloud infrastructures. Options include many of today's popular Container frameworks such as Kubernetes, Mesos and Compose. Recent contributions even include deployment options such as Minikube and OpenShift.

Write functions in any language

Work with what you know and love. OpenWhisk supports a growing list of your favorite languages such as NodeJS, Swift, Java, Go, Scala, Python, PHP.

If you need languages or libraries the current "out-of-the-box" runtimes do not support, you can create and customize your own executables as Zip Actions which run on the Docker runtime by using the Docker SDK. Some examples of how to support other languages using Docker Actions include Rust, and Haskell.

Once you have your function written, use the wsk CLI, to target your Apache OpenWhisk instance, and run your first action in seconds.

Create Your First Action
Node Runtime
OpenWhisk's out-of-box packages easily integrate with our own services

Integrate easily with many popular services

OpenWhisk makes it simple for developers to integrate their Actions with many popular services using Packages that are provided either as independently developed projects under the OpenWhisk family or as part of our default catalog.

Packages offer integrations with general services such as Kafka message queues, databases including Cloudant, Push Notifications from mobile applications, Slack messaging, and RSS feeds. Development pipelines can take advantage of integrations with GitHub, JIRA, or easily connect with custom data services from IBM Watson for Translation or Speech-to-Text, as well as the Weather company.

You can even use the Alarms package to schedule times or recurring intervals to run your Actions.

Combine your functions into rich compositions

Code in different languages like JavaScript/NodeJS, Swift, Python, Java or run custom logic by packaging code with Docker. Invoke your code synchronously, asynchronously, or on a schedule. Use higher-level programming constructs like sequences to declaratively chain together multiple actions. Use parameter binding to avoid hardcoding service credentials in your code. And also, debug your code in realtime using variety of Development Tools.

OpenWhiks allows you to create compositions from Actions in any supported language.
Apache OpenWhisk automatically scales and maximizes and server utilization as events trigger action functions.

Scaling Per-Request & Optimal Utilization

Run your action ten thousand times in a fraction of a second, or once a week. Action instances scale to meet demand as needed, then disappear. Enjoy optimal utilization where you don't pay for idle resources.

Join a vibrant open source community

Play a critical part in building game-changing cloud technology. Share your actions and triggers with the community, add your Runtimes, Package integrations and plug-ins to the Apache OpenWhisk ecosystem, or join our community of developers to make Apache OpenWhisk the best open source Serverless platform.

Join the OpenWhisk Community