diff --git a/Documentation/Roadmap.md b/Documentation/Roadmap.md new file mode 100644 index 00000000..f936f340 --- /dev/null +++ b/Documentation/Roadmap.md @@ -0,0 +1,107 @@ +# 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