Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apache/openwhisk
Apache OpenWhisk is an open source serverless cloud platform
https://github.com/apache/openwhisk
apache cloud docker faas functions functions-as-a-service kubernetes openwhisk serverless serverless-architectures serverless-functions
Last synced: 5 days ago
JSON representation
Apache OpenWhisk is an open source serverless cloud platform
- Host: GitHub
- URL: https://github.com/apache/openwhisk
- Owner: apache
- License: apache-2.0
- Created: 2016-02-18T21:16:19.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T16:14:14.000Z (13 days ago)
- Last Synced: 2024-10-22T04:16:49.234Z (13 days ago)
- Topics: apache, cloud, docker, faas, functions, functions-as-a-service, kubernetes, openwhisk, serverless, serverless-architectures, serverless-functions
- Language: Scala
- Homepage: https://openwhisk.apache.org/
- Size: 66.5 MB
- Stars: 6,516
- Watchers: 231
- Forks: 1,166
- Open Issues: 412
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Security: docs/security.md
Awesome Lists containing this project
- awesome - openwhisk - Apache OpenWhisk is an open source serverless cloud platform (Scala)
- awesome - apache/openwhisk - Apache OpenWhisk is an open source serverless cloud platform (Scala)
- awesome-repositories - apache/openwhisk - Apache OpenWhisk is an open source serverless cloud platform (Scala)
- awesome-starred - apache/openwhisk - Apache OpenWhisk is an open source serverless cloud platform (kubernetes)
- awesome-docker - Apache OpenWhisk - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) (Development with Docker / Serverless)
- awesome-docker - Apache OpenWhisk - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) (Development with Docker / Serverless)
- my-awesome - apache/openwhisk - as-a-service,kubernetes,openwhisk,serverless,serverless-architectures,serverless-functions pushed_at:2024-09 star:6.5k fork:1.2k Apache OpenWhisk is an open source serverless cloud platform (Scala)
- StarryDivineSky - apache/openwhisk
README
# OpenWhisk
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![Join Slack](https://img.shields.io/badge/join-slack-9B69A0.svg)](https://openwhisk-team.slack.com/)
[![Twitter](https://img.shields.io/twitter/follow/openwhisk.svg?style=social&logo=twitter)](https://twitter.com/intent/follow?screen_name=openwhisk)[![Unit Tests](https://github.com/apache/openwhisk/actions/workflows/1-unit.yaml/badge.svg)](https://github.com/apache/openwhisk/actions/workflows/1-unit.yaml)
[![System Tests](https://github.com/apache/openwhisk/actions/workflows/2-system.yaml/badge.svg)](https://github.com/apache/openwhisk/actions/workflows/2-system.yaml)
[![MultiRuntime Tests](https://github.com/apache/openwhisk/actions/workflows/3-multi-runtime.yaml/badge.svg)](https://github.com/apache/openwhisk/actions/workflows/3-multi-runtime.yaml)
[![Standalone Tests](https://github.com/apache/openwhisk/actions/workflows/4-standalone.yaml/badge.svg)](https://github.com/apache/openwhisk/actions/workflows/4-standalone.yaml)
[![Scheduler Tests](https://github.com/apache/openwhisk/actions/workflows/5-scheduler.yaml/badge.svg)](https://github.com/apache/openwhisk/actions/workflows/5-scheduler.yaml)
[![Performance Tests](https://github.com/apache/openwhisk/actions/workflows/6-performance.yaml/badge.svg)](https://github.com/apache/openwhisk/actions/workflows/6-performance.yaml)
[![codecov](https://codecov.io/gh/apache/openwhisk/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/openwhisk)OpenWhisk is a serverless functions platform for building cloud applications.
OpenWhisk offers a rich programming model for creating serverless APIs from functions,
composing functions into serverless workflows, and connecting events to functions using rules and triggers.
Learn more at [http://openwhisk.apache.org](http://openwhisk.apache.org).* [Quick Start](#quick-start) (Deploy and Use OpenWhisk on your machine)
* [Deploy to Kubernetes](#deploy-to-kubernetes) (For development and production)
* For project contributors and Docker deployments:
* [Deploy to Docker for Mac](./tools/macos/README.md)
* [Deploy to Docker for Ubuntu](./tools/ubuntu-setup/README.md)
* [Learn Concepts and Commands](#learn-concepts-and-commands)
* [OpenWhisk Community and Support](#openwhisk-community-and-support)
* [Project Repository Structure](#project-repository-structure)### Quick Start
The easiest way to start using OpenWhisk is to install the "Standalone" OpenWhisk stack.
This is a full-featured OpenWhisk stack running as a Java process for convenience.
Serverless functions run within Docker containers. You will need [Docker](https://docs.docker.com/install),
[Java](https://java.com/en/download/help/download_options.xml) and [Node.js](https://nodejs.org) available on your machine.To get started:
```
git clone https://github.com/apache/openwhisk.git
cd openwhisk
./gradlew core:standalone:bootRun
```- When the OpenWhisk stack is up, it will open your browser to a functions [Playground](./docs/images/playground-ui.png),
typically served from http://localhost:3232. The Playground allows you create and run functions directly from your browser.- To make use of all OpenWhisk features, you will need the OpenWhisk command line tool called
`wsk` which you can download from https://s.apache.org/openwhisk-cli-download.
Please refer to the [CLI configuration](./docs/cli.md) for additional details. Typically you
configure the CLI for Standalone OpenWhisk as follows:
```
wsk property set \
--apihost 'http://localhost:3233' \
--auth '23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP'
```- Standalone OpenWhisk can be configured to deploy additional capabilities when that is desirable.
Additional resources are available [here](./core/standalone/README.md).### Deploy to Kubernetes
OpenWhisk can also be installed on a Kubernetes cluster. You can use
a managed Kubernetes cluster provisioned from a public cloud provider
(e.g., AKS, EKS, IKS, GKE), or a cluster you manage yourself.
Additionally for local development, OpenWhisk is compatible with Minikube,
and Kubernetes for Mac using the support built into Docker 18.06 (or higher).To get started:
```
git clone https://github.com/apache/openwhisk-deploy-kube.git
```Then follow the instructions in the [OpenWhisk on Kubernetes README.md](https://github.com/apache/openwhisk-deploy-kube/blob/master/README.md).
### Learn Concepts and Commands
Browse the [documentation](docs/) to learn more. Here are some topics you may be
interested in:- [System overview](docs/about.md)
- [Getting Started](docs/README.md)
- [Create and invoke actions](docs/actions.md)
- [Create triggers and rules](docs/triggers_rules.md)
- [Use and create packages](docs/packages.md)
- [Browse and use the catalog](docs/catalog.md)
- [OpenWhisk system details](docs/reference.md)
- [Implementing feeds](docs/feeds.md)
- [Developing a runtime for a new language](docs/actions-actionloop.md)### OpenWhisk Community and Support
Report bugs, ask questions and request features [here on GitHub](../../issues).
You can also join the OpenWhisk Team on Slack [https://openwhisk-team.slack.com](https://openwhisk-team.slack.com) and chat with developers. To get access to our public Slack team, request an invite [https://openwhisk.apache.org/slack.html](https://openwhisk.apache.org/slack.html).
### Project Repository Structure
The OpenWhisk system is built from a [number of components](docs/dev/modules.md). The picture below groups the components by their GitHub repos. Please open issues for a component against the appropriate repo (if in doubt just open against the main openwhisk repo).
![component/repo mapping](docs/images/components_to_repos.png)
### What happens on an invocation?
This diagram depicts the steps which take place within Openwhisk when an action is invoked by the user:
![component/repo mapping](docs/images/Openwhisk-flow-diagram.png)