...
CNCF Projects to integrate with
Data Plane
Candidates:
- Envoy
- Nginx
Requirements for Data Plane:
- Invoke an authN/authZ service, reusing the existing authN/authZ implementation in OpenWhisk
- it may be possible to implement this inside the proxy itself. i.e. NGINX supports extensibility through lua thanks to Openresty.
- Routing
- Throttling
- Respect namespace limits
- Respect Action level concurrency
- Caching the response, based on what the action returns. I.e. an action that validates an OAuth token could instruct the system to cache the response for that token until the token expiration time.
- Support for Observability: Metrics, activation info, tracing, etc
Control Plane
Candidates:
- TBD
Control Plane concerns:
- Cold-start actions - allocate resource
- Garbage Collect idle actions - de-allocate resources
The Control Plane should be used by the Data Plane only when cold-starting new actions.
Cold-start
When allocating resources, Placement Strategies should consider CPU, MEM, GPU, Network, and other resources an action might consume.
GC
When de-allocating resources GC should consider fragmentation. This is particularly important when scaling down the nodes running actions
Management Plane
It can reuse the OpenWhisk implementation.
Previous discussions
Provide support for integration with Kubernetes. One approach could be to deploy and run the components on a Kubernetes provider as we do for Vagrant, Docker, Docker-Compose, and OpenStack.
...