6. Hkube is an open source framework
that allows developers focus only on
writing algorithms.
We will do the rest…
Hkube for algorithms is like
Kubernetes to dockers
10. Legend
Algorithm A
written in python
Algorithm B
written in c++
Algorithm C
written in R
Algorithm D
written in Python
Pipeline 1
Client
1
2
5
Pipeline 3
CPU 368
3
1150
After some time
Pipeline 2
. . .
What we try to solve
/500
2 X
4 X
7 X
7 X
4
3
5
1
2
11. It’s SimpleDeploy algorithm
Dockerize the
algorithm
Use CLI to add
the algorithm
to hkube
Implement a
simple
websocket api
for hkube
Run the
pipeline with
input
Register
webhooks for
result and
status
Create/store
pipeline
Run pipeline
12. User Instructions
Me
2. Split your problem to small pieces
input Classification
Me
Me Aggregation
3. Run it on Hkube
Dockerize Create Pipeline Descriptor Deploy & Run Make your boss happy
Took too long
1. ProblemInput Result
Face Detection & Cropping
find myself in a picture
X8
15. Core Modules
Api Server
- Pipeline validation
- Client Api for status
result
- Notifies via webhooks
on data changes
Pipeline Driver
- Build DAG graph based
on Pipeline descriptor
schema
- Manage the pipeline
flow
Resource Manager & Executor
- Fetch hardware and
application data
- Calculate algorithm pod
count
- Create pods
Worker
- Runs algorithm container as
a sidecar
- Functions as a bridge for
communicating between
algorithm and hkube
Queues
- Implements heuristic for
prioritizing algorithm
tasks
- Handle algorithm task
execution
16. Algorithm Queue
face detection
Resource Executer
Algorithm Queue
classification
Resource
Manager
Pipeline Driver
Queue
Api Server
Algorithm Queue
Reduce-images positions
Worker
Algorithm
Classification
Architecture
X 100
Generate Job Yaml
For each pod
Get resource data
Pipeline Driver
Instance
Legend
Worker
Algorithm
reduce-images-positions
After algorithm ends.
wait for timeout and
then finish k8s job
Worker
Algorithm
face detection
Client
Run K8s Job
18. Version 1.0 (8/18)
- Dynamic allocation
- Extend algorithm monitoring metrics
- Extend hkube cli for supporting custom storage
- Well documented landing page
- Long lasting worker
- Triggering
Roadmap
19. Roadmap
Future
- Additional adapter for common orchestrators (spark&kubeflow)
- Worker affinity (GPU, specific node)
- Code API
- Cashing for algorithms (manually/input with hash )
- Cluster scaling
- Streaming Pipelines
- Sub-pipeline: for conditional execution
- Resource allocation heuristic improvements (ML)
- Hkube Dashboard
- More built in storage support
- Public algorithm store (helm like)
- PAAS
- Developer IDE - allow for easy developing and debugging of algorithms
- Authentication & Authorization
- Simplify API to HKUBE