What is Apache OpenWhisk?
Apache OpenWhisk 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
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 and OpenShift, and Compose. In general, the community endorses deployment on Kubernetes using Helm charts since it provides many easy and convenient implementations for both Devlopers and Operators alike.
Write functions in any language
Work with what you know and love. OpenWhisk supports a growing list of your favorite languages such as Go, Java, NodeJS, .NET, PHP, Python, Ruby, Rust, Scala, Swift. There is also an experimental runtime for Deno in-development.
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 a tutorial for Rust and a completed project for 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
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.
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.
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.
For more information: https://openwhisk.apache.org/