106 lines
2.6 KiB
Markdown
106 lines
2.6 KiB
Markdown
# Fission Roadmap
|
|
|
|
## Function features (area-func)
|
|
|
|
- Secrets, configmaps, env vars
|
|
- Volumes
|
|
- Mem requests and limits
|
|
- Function exec time deadline
|
|
- Expose a regular K8s Service for a function
|
|
|
|
## Fission API (area-api)
|
|
|
|
- TPR-based controller
|
|
- API authentication
|
|
- Aggregated API server
|
|
|
|
## Development Workflows (area-dev)
|
|
|
|
- Function Versioning
|
|
- Versioning for a group of functions
|
|
- Rolling upgrades
|
|
- for one function
|
|
- for multiple functions
|
|
- for functions + other kubernetes deployments
|
|
- Unit testing
|
|
|
|
## API Gateway / Ingress features (area-ingress)
|
|
|
|
- Function authn hooks
|
|
- K8s Ingress flag
|
|
- Bundle an ingress controller?
|
|
|
|
## Workflows and Function composition (area-composition)
|
|
|
|
- Simple Composition - Sync
|
|
- Simple Composition - Async
|
|
- Hooks (pre, post, on-error)
|
|
- Workflows
|
|
- Testing in the presence of function composition
|
|
|
|
## Events (area-events)
|
|
|
|
- NATS
|
|
- Kafka
|
|
- AWS: SNS, SQS
|
|
- Google PubSub
|
|
- RabbitMQ
|
|
- Other event sources
|
|
|
|
- Bundle an event queue (NATS streaming, most probably)
|
|
|
|
## Operability (area-ops)
|
|
|
|
### Fission Install/Upgrade (area-install)
|
|
|
|
- Helm Installer for Fission
|
|
- Helm installation for fission functions
|
|
- CLI installer/upgrader? ("fission upgrade")
|
|
- Upgrade checker/reminder (like minikube does)
|
|
- CLI auto-upgrader
|
|
|
|
### Function observation (area-observe)
|
|
|
|
- Function Logging
|
|
- Tracing -- Opentracing
|
|
- Metrics -- Prometheus
|
|
- Function exception tracking
|
|
- Logging function load errors
|
|
- Tracing fission overheads for each function
|
|
|
|
## Function Security
|
|
|
|
- Function isolation (is authz hook sufficient or do we need something like mutual TLS?)
|
|
|
|
## UX, especially for beginners (area-ux)
|
|
|
|
- Fission CLI should include a tutorial
|
|
- Fission CLI should have a way to drop you into the UI
|
|
- Eliminate FISSION_URL, just use kube client to find fission url. Also useful to grab credentials.
|
|
|
|
## Documentation (area-doc)
|
|
|
|
- Installation guide improvements
|
|
- Troubleshooting guide for common problems
|
|
- FAQ
|
|
- Performance overview
|
|
- Render docs nicely to fission.io
|
|
|
|
## Web UI (tracked separately in the fission-ui repo)
|
|
|
|
## Performance and Scalability (area-perf)
|
|
|
|
- Autoscaling
|
|
- Cold-start optimization -- optimistically choose from pool, save about ~20msec
|
|
- Cold-start optimization -- preload funcs in fetcher
|
|
- Cold-start optimization -- preload libraries in envs (v2) -- mem vs. speed tradeoff
|
|
|
|
## Function extensibility (area-ext)
|
|
|
|
- Env v2: easy addition of dependencies etc.
|
|
- Integration with Service Broker
|
|
|
|
## Multi-area stuff
|
|
|
|
- Execution strategies: cold-start pool vs create-pod-on-cold-start -- one size doesn't fit all, at least with current tech; abstract over execution strategies according to requirements
|