Programming/MSA

FaaS 구현을 위한 Open Source 프로젝트 OpenFaaS, Knative

armyost 2023. 11. 23. 23:29
728x90

관련링크 : https://www.cncf.io/blog/2020/04/13/serverless-open-source-frameworks-openfaas-knative-more/

 

Serverless Open-Source Frameworks: OpenFaaS, Knative, & more

Originally published on the Epsagon blog by Ran Ribenzaft, co-founder and CTO at Epsagon This article will discuss a few of the frameworks mentioned above and will go deep into OpenFaaS and Knative to…

www.cncf.io

 

지난 수년동안 Serverless Architecture는 급격히 관심받기 시작했습니다. 이러한 Serverless의 가장 큰 장점은 인프라에 대한 고려가 전혀 필요없다는 것입니다. 개발자들은 더이상 인프라에 관심을 가질 필요가 없습니다. 그들의 책임은 이제 높은 수준의 코드 작성 뿐입니다. 

 

많은 FaaS 오픈소스가 있습니다. Apache OpenWhisk, IronFunctions, Fn from Oracle, OpenFaaS, Kubeless, Knative, Project Riff, 등등. 

 

 

다시 OpenFaaS로 돌아가서..

OpenFaaS의 주 목적은 Docker container들을 이용해 단순한 Serverless Function을 구현하는 것입니다.

 

OpenFaas Design & Architecture

OpenFaaS 아키텍처는 Cloud-Native한 표준을 준수합니다. API Gateway, Function Watchdog, Kubernetes, Docker Swarm, Prometheus, Docker를 활용합니다. 개발자가 OpenFaaS에서 작업을 하면 Docker부터 API Gateway까지 OpenFaaS가 진행합니다.

 

 

API Gateway

API Gateway를 통해 모든 Function으로 라우팅됩니다. 그리고 Prometheus가 cloud-native하게 Metric을 수집합니다.

 

Function Watchdog

Watchdog 구성요소는 각각의 container에 통합되어 Serverless 어플리케이션을 지원하고, 사용자↔Function간 공통된 인터페이스를 제공합니다. Watchdog의 주요 역할은 HTTP Request를 API Gateway로 부터 받아 대상 어플리케이션을 호출하는 것입니다.

 

Prometheus

이 구성요소는 동적인 Metric변화를 늘 수집할 수 있도록 합니다. 다른 Metric과 비교하거나 시각화/텍스트 화 된 정보전달 등을 Web interface에서 제공합니다. Prometheus는 수진된 Metric은 RAM에 1차로 저장하고 최종적으로는 Disk에 씁니다. 

 

Docker Swarm and Kubernetes

Docker Swarm과 Kubernetes는 오케스트레이션의 핵심(엔진) 입니다. API Gateway, Function Watchdog, Prometheus 와 같은 구성요소를 오케스트레이션 합니다. 제품을 개발할때는 Kubernetes를 사용하는것이 Recommend 됩니다. 반면에 로컬 Function을 구축할때는 Docker Swarm이 좋습니다. 

더 나아가, 모든 발전된 Function들, Microservice들, 제품들이 OpenFaaS 플랫폼으로써의 Docker Container에 탑재됩니다.