openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tyson Norris <tnor...@adobe.com.INVALID>
Subject PR feedback for SPIs
Date Wed, 13 Sep 2017 05:44:39 GMT
Hi -
Following SPI PRs need feedback (in order) , as interested people have time:

- LoadBalancer SPI - https://github.com/apache/incubator-openwhisk/pull/2584 - delegates loadbalancer
creation to the SPI

- Multiple LoadBalancers SPI - https://github.com/apache/incubator-openwhisk/pull/2668 - allows
multiple load balancers, loaded via the previous SPI, resolved per action via LoadBalancerResolver;
allows either single loadbalancer (current behavior) or kind based loadbalancer (config maps
action kinds to a specific loadbalancer); this will allow things like latency sensitive actions
routing to containers directly while latency insensitive actions route via Kafka, etc. Relies
on previous

- ContainerFactory SPI - https://github.com/apache/incubator-openwhisk/pull/2659 - delegates
container instantiation to an SPI; Affected areas are InvokerReactive; also moved the dependent
classes (Container et al) to common/scala, to allow for other cases (e.g. controller causes
container launch, etc); TBD: checking maxActiveContainers and maxPoolSize should be part of
this SPI too, but currently are not.  (e.g. maxActiveContainers may be dynamic with some cluster
managers)

- LogStore SPI - https://github.com/apache/incubator-openwhisk/pull/2695 - enables log collection
to be delegated to an decoupled system (instead of consuming cycles within the invoker JVM);
Affected areas are ContainerProxy (log collection delegates to the SPI), RestAPIs (delegate
log retrieval to the SPI), and ContainerFactory impls (delegate docker run --log-opt parameters
to the SPI); still needs some cleanup (WIP). Relies on ContainerFactory, mostly since it organizes
Container classes around the ones moved to common/scala


Building on these some upcoming additions include:
- direct LoadBalancer - allow controller to route actions directly to shared containers (i.e.
to support better throughput with fewer containers, if the action supports it, via multiple
loadbalancers - one for kafka+invoker routing, and one for direct container routing)
- mesos ContainerFactory - to support launching containers in a mesos cluster (run more containers
with fewer, or just 1, invokers per cluster, since the invoker has access to the entire mesos
cluster for container launching)


Let me know via comments in PR (or on dev list) if you have questions on these.

Thanks in advance for feedback!
Best
Tyson

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message