23
A Kubernetes deployment evalution SERVERLESS ON-EDGE National Technical University of Athens School of Electrical & Computer Engineering Embedded Systems Design - MicroLab Project by: Tzomaka Aphrodite

National Technical University of Athens School ... - Microlab

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

A Kubernetes deployment evalution

SERVERLESS ON-EDGE

National Technical University of Athens School of Electrical & Computer Engineering Embedded Systems Design - MicroLab

Project by: Tzomaka Aphrodite

TABLE OF CONTENTS

INTRODUCTION A brief overview of the

technologies we used

OUR CLUSTER Description of the topology & the

goal of this project

01

02 03

04

05

METRICS Description of the metrics we used to evaluate our deployment

TESTCASES RESULTS Results & Implications

REFERENCES & ACKNOWLEDGEMENTS Not all heroes wear capes! :)

INTRODUCTION 01 A brief overview of the technologies we used

DOES SERVERLESS MEAN NO SERVERS?

WHAT SERVERLESS MEANS IS:

● No need for server/container/OS management

● Auto – scaling

● High availability – Fault tolerance

● No idle capacity (Pay only what you use!)

Focus on app-building FASTER TIME-TO-MARKET!

EDGE COMPUTING

MANAGEMENT Distribute workloads at massive scale without needing individual

administrators

DIVERSITY

Different utilities, operating systems and architectures

SECURITY

Vulnerability in transferring sensitive data towards the cloud

Placing workload as close to where data is being created as possible

EDGE IN TERMS OF NUMBERS

150billion

15billion

Edge devices by 2025

Edge devices in 2019s marketplace

Edge devices by 2022 55billion

App

CONTAINERIZATION

Hardware Hardware Hardware

Operating System Operating System Operating System

App App App Hypervisor Container Runtime

App App App App

bin/library bin/library

OS OS Virtual Machine Virtual Machine

App App

bin/library bin/library bin/library

Container Container Container

• Resource utilization: High efficiency & density

• Apps deployed & managed dynamically due to smaller size & modularity

• Easier creation of containers images than VMs images

• Cloud & OS distribution portability

KUBERNETES

Orchestration tool that allows running & managing container-based workloads

• Service discovering & load balancing

• Storage orchestration

• Automated rollouts & rollbacks

• Self – healing

• Secret and configuration management

- We used a lightweight version of this tool, k3s.

OPENWHISK •Open source, distributed serverless platform.

•Executes functions in response to events at any scale.

•Manages the infrastructure, servers and scaling using Docker containers.

NGINX

Controller

Invoker

Invoker

Invoker

CouchDB

KAFKA

CONSUL

OUR CLUSTER 02

Binding all those stuff together

THE TOPOLOGY

Master Node Worker Node

•Ubuntu VM/Intel x86-64/4CPUs/8GB RAM •Manages the worker nodes & the pods in the cluster.

•Makes global decisions.

•Detects/responds to cluster

events.

•Raspberry Pi 4/Arm64 •Hosts the pods. •Represents the edge-node.

SETTING UP

• Installation of Helm 3, a tool to simplify the deployment & management of apps like

OpenWhisk on our k3s (lightweight Kubernetes) cluster

• Label both nodes as invokers (via kubectl)

• Creation of mycluster.yaml file to record key aspects of our k3s cluster to configure

OpenWhisk deployment

• Installation/Upgrade of our deployment via Helm CLI (helm install / helm upgrade)

• Use of docker images that correspond to the nodes architecture – multi-arch build

METRICS 03

How we chose to evaluate our cluster

METRICS

COMMUNICATION PERFORMANCE

Examine the interaction of functions that compose an application and other

cloud services.

STARTUP LATENCY

On-demand initiation & high concurrency lead to a startup latency that is hard to

reduce.

STATELESS EXECUTION

Data transmission overhead if we need to maintain states. Loss of info

that could benefit us.

PARALLELIZATION LIMITS

What is the limit of concurrency that we can exploit so as to keep throughput

high?

ServerlessBench

IBM owperf

TESTCASES RESULTS 04 Benchmarking our cluster & making some implications

STARTUP BREAKDOWN - A ‘Hello’ Java application to measure startup & execution latency (cold/warm start)

STARTUP LATENCY TESTCASE:

0 500 1000 1500 2000 2500 3000 3500 4000

3/Cold

6/Cold

10/Warm/1

10/Warm/2

VM as Invoker

Invokation

Total

0 1000 2000 3000 4000 5000 6000

3/Cold

6/Cold

10/Warm/1

10/Warm/2

Raspberry Pi as Invoker

Invokation

Total

Startup overhead holds a major percentage of the total latency making methods like prewarming a must.

Loops/Mode/Warm-up times

(msec)

(msec)

Loops/Mode/Warm-up times

DATA TRANSFER COSTS - A node.js serverless application which transfers images with different sizes

COMMUNICATION PERFORMANCE TESTCASE:

0

200

400

600

800

1000

1200

1 2 3 4 5 6 7 8 9 10 11 12

Master-Cold

Master-Warm

Worker-Cold

Worker-Warm

(KB)

Latency between subsequent functions

The latency is neglectably affected by passing small amount of data between subsequent functions.

STATELESS COSTS - A Complex Java application to examine the impact of implicit states transmission

STATELESS EXECUTION TESTCASE:

Latencies for Stateful Execution

<1

1--2

2--3

3--4

4--5

>5

Latencies for Stateless Execution

<1

1--2

2--3

3--4

4--5

>5

55%

4%

25% 16%

2%

96%

2%

The cost of sharing the implicit states between functions is minimum compared to the execution speedup that they provide.

sec

sec

sec

sec

sec

sec

sec

sec

sec

sec

sec

sec

IBM OWPERF – A benchmarking tool for warm latency/throughput measurements

PARALLELIZATION LIMITS:

3.28 2.464

0.939

4.808

6.077 5.608

6.162 6.787 6.425

2 Workers 3 Workers 4 Workers

Invocation Throughput 10 100 1000 Num. of Iterations:

High concurrency leads to lower throughput due to the complex components/building blocks OpenWhisk uses (CouchDB, Kafka, Zookeeper, etc)

REFERENCES & ACKNOWLEDGEMENTS

05 Not all heroes wear capes :)

REFERENCES ■ https://github.com/SJTU-IPADS/ServerlessBench

■ https://github.com/IBM/owperf

■ https://kubernetes.io

■ https://openwhisk.apache.org/

■ https://serverlessbench.systems/socc20-serverlessbench.pdf

ACKNOWLEDGMENTS

■ Achilleas Tzenetopoulos, Dimosthenis Masouros (Supervisors of this project - Junior Researchers @ MicroLab, NTUA) for

their helpful guidance.

■ Giannos Gavrielides, Christos Papakostopoulos, Konstantinos Stavrakakis (Undergraduate students @ ECE, NTUA who also

worked on similar projects) for the perfect cooperation.

■ Aggeliki, Nikodimos, Panagiotis for being my supportive audience at my rehersals (yes, I practiced a lot to make it with

presenting! )

Questions?

THANK YOU!

National Technical University of Athens School of Electrical & Computer Engineering Embedded Systems Design - MicroLab