Skip to content

v0.1.0

Latest

Choose a tag to compare

@guowenjian90 guowenjian90 released this 09 Dec 19:43
· 40 commits to main since this release
a5dfb1b

This release is the first prod release of the project. The following components and resources are included:

Delivered Components

  • Fornax Node Agent which includes:
    • FornaxCore/NodeAgent gRPC protocol full implementation
    • A Node actor communicate with Fornax Core, use revision track and report node, pod/session resource state with FornaxCore
    • Pod actors manage Pod lifecycle using CRI Api with Containerd
    • Session actors open/close Session with Pod using Session service interface and a gRPC Session service implementation
    • Integrate with Quark container runtime to hibernate/wake up container when Open/Close session
  • Fornax Core Server which includes:
    • K8s extension API Server which expose RW api for application and session, and RO and LW api for pods and nodes
    • Node Monitor and gRPC server which talk with Fornax Node Agent
    • Node/Pod Manager which manage node and pod state reported by Fornax Node Agent
    • Application manager which create pods and bind application session on pod and auto scale pod according session request and idle session target
    • Pod Manager which manage pod state of whole cluster and Pod scheduler to assign pods to Node
    • In Memory storage to replace Etcd to save resources, provide same capability like Etcd storage to power api server

Resource model

Two RW external and Two RO internal resources are exposed in this release

  • Fornax application
    • Define application container spec and scaling targets.
  • Fornax application session
    • Application workload resource, each session has independent ingress endpoint
  • K8s Pod
    • Internal resource, read only, support LW integration
  • K8s Node
    • Internal resource, read only, support LW integration

Performance test

Real cluster test

Test cluster configuration

  • FornaxCore : 1 GCE VM with 4 core and 16GB Ram
  • Nodes: 67 GCE VMs 32 core and 128GB Ram

Session Cold start latency test result

Applications Concurrency Sessions P50(ms) P90(ms) P99(ms) startup total time(s) throughput
67 1 20100 259 346 401 81 248
67 5 20100 544 719 783 39 490

Session Warm start latency test result

Applications Concurrency Sessions P50(ms) P90(ms) P99(ms) startup total time(s) throughput
67 1 20100 5 7 8 6.8 2955
67 5 20100 13 18 26 5.4 3720

Simulation Cluster Test

Test Config

  • 1000 simulation nodes which does not implement workload.
  • 1000 application with 300 pod replicas

Test cluster configuration

  • FornaxCore : 1 VM with 4 core and 16GB Ram
  • Simulation nodes: a Laptop 12 core and 64GB Ram

App scale test result

Test Applications Pods startup total time(s) pod throughput
test-1 1000 300000 80 3750