Files
fission-src/Documentation/Roadmap.md
T
Ta-Ching ChenandSoam Vasani 5f14b9b0ae Switch from ThirdPartyResources to CustomResourceDefinitions (#381)
Switch Fission's storage over to the new CustomResourceDefinitions, from the deprecated ThirdPartyResources. This allows us to be compatible with Kubernets 1.8 and onwards.

This also adds a CLI tool for dumping state from an old fission version and restoring state into new CRDs.

The storage service is unaffected by this change.
2017-11-04 14:55:16 -07:00

3.4 KiB

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)

  • CRD-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?)
  • Function service accounts

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