opensource serverless

종류

오픈소스 기반 서버리스 (serverless) 프레임워크는 대표적으로 apache OpenWhisk, OpenFaaS, Ignazio Nuclio, Platform9 Fission, bitnami Kubeless, Fn Project 등이 있다.

이 중 다양한 서비스까지 소개되고 있고 나름 든든한 지원군이 많이 편성된 것이 apache OpenWhisk (IBM Cloud Functions 에 활용) 과 Fn Project (Oracle Fn 에 활용) 이다.

serverless 란 대부분 Event Trigger, Runtime Engine, BackEnd Service 를 구성하고 있으며 docker 또는 Kubernetes 에서 Runtime 및 CLI 를 지원한다.

  지원 platform 지원 Runtime Engine
OpenWhisk Kubernetes, MESOS, docker compose, OpenShift python, go, Java, NodeJS, PHP, Ruby, Scala, Swift
OpenFaaS docker, Swarm, Kubernetes anything
Nuclio docker, Kubernetes, Azure Container, Google Container python, go, Java, .NET, NodeJS
Fission kubernetes python, go, .NET, NodeJS, PHP
Kubeless kubernetes python, go, .NET, NodeJS, Ruby, PHP, Ballerina
FN Project docker, Swarm, Kubernetes python, go, Java, NodeJS, Ruby

1) apache OpenWhisk (https://openwhisk.apache.org)

위의 그림으로 대표되는 OpenWhisk 는 docker 기반 serverless 플랫폼으로 NginX, CouchDB, Kafka, docker container 로 구성된다. 오픈소스 서버리스 중에서 가장 넓은 지원군을 가지고 있다고 생각된다. 그만큼 넓은 프로젝트로서 필요한 구성 요소들을 선택하여 사용할 수 있다. (https://openwhisk.apache.org/documentation.html#project-structure)

2) iguazio Nuclio (https://nuclio.io)

Nuclio 는 HTTP, MQ, Kafka, Kinesis 등 다양한 Event Trigger, RunTime Engine, Pluggable DataBinder 를 제공하는 특징을 가지고 있다. 그 외에 docker, Swarm, Kubernetes, Raspberry Pi 플랫폼을 지원하며 CLI Tool, UI 를 제공하는 서버리스 플랫폼이다.

3) OpenFaaS (https://www.openfaas.com)

OpenFaaS 는 docker, Kubernetes 플랫폼을 지원하고 CLI, Runtime Engine 을 제공하며 Event Trigger 로 API Gateway/Watchdog 을 지원하고, 모니터링을 위한 Prometheus 로 구성된다.

4) bitnami Kubeless (https://kubeless.io)

Kubeless 는 이름처럼 Kubernetes Less 가 아닌 Kubernetes-Native 서버리스 프레임워크의 의미를 가진다. CLI, UI, Runtime Engine, Event Tigger 로 구성되며 Kubernetes 환경에서 쉽게 설치가 가능하고 K8s 명령어를 그대로 활용할 수 있다.

5) Fn Project (http://www.fnproject.io)

Fn Project 도 다른 프레임워크와 마찬가지로 Trigger 에 해당하는 Fn LB, Runtime Engine 인 Fn Server, 데이터 처리를 위한 DataStore, MQ 등으로 구성되어 있다. 구동 환경은 docker 를 이용하고 CLI, FDK (Function Development Kit) 을 제공한다. 별도로 https://github.com/fnproject 에서도 확인가능하다.

6) Platform9 fission (https://fission.io)

Fission 은 Kubernetes-native 서버리스 프레임워크로서 CLI, HTTP/MQ/Timer 등의 Trigger, Runtime Engine 구성으로 이루어지며 Kubernetes 상에서 pod 로 구동된다.