diff --git a/Documentation/Roadmap.md b/Documentation/Roadmap.md index f936f340..891b70cf 100644 --- a/Documentation/Roadmap.md +++ b/Documentation/Roadmap.md @@ -2,106 +2,104 @@ ## 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 +- 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 +- 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 +- 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? +- 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 +- 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) +- 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 +- 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 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?) +- 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. +- 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 +- 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 +- 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 +- 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 +- 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