Pushing Serverless to the Edge with WebAssembly Runtimes
Philipp Gackstatter, Pantelis A. Frangoudis, and Schahram Dustdar
Distributed Systems Group, TU Wien, Vienna, Austria
IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID), 2022
Motivation
2
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Motivation
3
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Motivation
4
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Apache OpenWhisk
5
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Wasm runtime
6
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
OpenWhisk
7
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
1. 사용자가 api gateway를 통해 함수 실행 요청
2. Controller는 사용자 인증을 하고 invoker에 함수 실행을 요청. 로드 밸런서의 역할도 함.
3. Invoker는 DB에서 함수 관련 소스 코드를 가져와 필요한 언어 런타임과 함께 Docker 컨테이너에 주입 후 실행.
4. 실행한 결과를 다시 db에 저장
container
db
controller
(load balancer)
Container runtime
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
8
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Executor(실행기):
Executor는 WASM 함수 생성, 초기화, 실행 및 종료 담당. 일반적인 서버리스의 컨테이너 런타임과 동등한 역할
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
9
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Invoker(호출기):
API 게이트웨이에서 요청을 받은 Invoker는 함수를 실행 준비하고 Executor와 상호 작용하여 실행을 하고 그 결과를 사용자에게 전달함
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
10
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Wasm 모듈:
서버리스 함수의 실제 Wasm 코드.
일반적인 서버리스의 컨테이너 이미지와 동등한 역할
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
11
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Function Store:
Wasm 코드가 저장됨
Wasm module을 미리 생성하여 직렬화된 상태로 저장.
모듈을 생성할 때는 메모리에 역직렬화만 하면 바로 생성가능 -> 콜드 스타트 시간 적음
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
12
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
init: 주어진 ID로 식별된 컨테이너를 초기화하고 코드를 스레드 안전한 HashMap에 저장
WASI 컨텍스트는 파일 시스템 액세스, 네트워킹, 환경 변수 및 기타 시스템 레벨 작업과 관련된 함수와 구조체 등을 포함
모듈은 파일에 액세스하려면 사전에 열려진 파일 서술자가 필요함. 따라서 래퍼는 파일을 열고 모듈에 전달해야 합
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
13
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
Run: 컨테이너 ID 및 주어진 매개변수를 입력으로 사용하여 모듈을 실행.
OpenWhisk에서 요구하는대로 매개변수는 JavaScript Object Notation (JSON) 형식의 객체
run은 컨테이너 ID로 이전에 저장된 모듈 또는 해당 바이트를 찾아 생성하고 매개변수를 전달하고 모듈을 호출
WOW: A WEBASSEMBLY CONTAINER RUNTIME FOR OPENWHISK
14
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
destroy: Wasm 컨테이너를 제거하며, 이는 모듈이 차지한 메모리를 해제하는 것을 의미
evaluation
15
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
CPU bound 함수: 이 워크로드에서는 blake3 해시 알고리즘을 사용하여 바이트 문자열을 반복적으로 해시. 해싱은 CPU 바운드이며 시스템 호출이 없으므로 이 워크로드 유형에 적합.
I/O bound 함수: 이 워크로드에서는 HTTP 요청과 같은 블록킹 작업의 영향을 측정. 그러나 WASI에서의 네트워크 기능은 개발 중으로 지원이 안됨. 대신 300ms 슬립 이용.
Mixed workload: 두개의 워크로드를 동일한 비율로 혼합
evaluation
16
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
RPi Model 3B: RPi는 1GB의 RAM을 갖추고 64비트 Raspberry Pi OS 실행
x86 64 서버: 8GB의 RAM, Intel Xeon E3-1231 v3 CPU(3.40GHz, 물리적 코어 4개 및 논리적 스레드 8개), Samsung SSD 850 EVO, Ubuntu 20.04.2 LTS OS 실행
evaluation
17
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
evaluation
18
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
cpu bound 워크로드 cold start 측정
evaluation
19
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
함수 처리량 비교
evaluation
20
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
메모리 사용량 비교
conclusion
21
2024-01-04 DDPS Seminar, Speaker Seokhyeon Kang
Distributed Data Processing System Lab, KOOKMIN UNIVERSITY
본 논문에서는 웹어셈블리 런타임을 기반으로 한 서버리스 디자인을 통해 콜드 스타트 대기 시간, 함수 처리 처리량 및 메모리 소비에 대해 여러 방면으로 개선을 이루어, 저렴하고 자원이 제한된 엣지 컴퓨팅 인프라에서의 서버리스 워크로드 처리를 현격히 향상시킴.
22
Thank you