쿠버네티스

📦 OpenFaaS란?

ipxy 2025. 4. 14. 15:47
728x90

 

📦 OpenFaaS란?

OpenFaaS (Functions as a Service)서버리스(Serverless) 애플리케이션을 컨테이너 기반으로 손쉽게 구축하고 배포할 수 있게 해주는 오픈소스 플랫폼입니다.
"Docker/Kubernetes 위에 서버리스" 를 구현하는 대표적인 솔루션이라고 할 수 있습니다.

핵심 키워드:

  • 서버리스(Serverless) 아키텍처
  • 컨테이너(Container) 기반
  • 이벤트 기반 실행 (HTTP, Kafka, Cron 등 트리거 가능)
  • 멀티언어 지원 (Python, Java, Node.js, Go, Bash Script 등)
  • 자체 호스팅 가능 (완전한 On-Premise 가능)
  • 오픈소스 (Apache 2.0 라이선스)

🎯 OpenFaaS 주요 특징

컨테이너 기반 함수 작성한 함수를 컨테이너 이미지로 패키징
간단한 배포 faas-cli를 통해 매우 빠르고 쉽게 함수 배포
멀티 클러스터 지원 Kubernetes, Docker Swarm 등 다양한 클러스터 위에 설치 가능
스케일 아웃/인 자동화 요청 수에 따라 함수 인스턴스가 자동으로 늘어나거나 줄어듦
이벤트 트리거 HTTP API 호출, Kafka 메시지, CronJob 등 다양한 트리거 지원
플러그인 가능 아키텍처 인증, 로깅, 모니터링 플러그인 추가 가능
Gateway 제공 OpenFaaS Gateway가 모든 함수 관리를 중앙에서 처리
Dashboard 제공 웹 UI를 통해 함수 배포 상태, 요청 수, 에러 등 모니터링 가능
커뮤니티와 상업 지원 오픈소스 버전 + 상업용 지원(OpenFaaS Pro) 존재

🏗️ 기본 아키텍처 구성

[사용자/시스템]
    ↓ HTTP 요청
[OpenFaaS Gateway]
    ↓
[Function Watchdog + 사용자 함수 (컨테이너)]
    ↓
[Docker / Kubernetes 클러스터]

주요 컴포넌트

  • Gateway: 함수 호출을 관리하고, 오토스케일링과 인증 기능 담당
  • Watchdog: HTTP 요청을 함수 내부로 전달하고 결과를 반환하는 lightweight 프록시
  • Function Pod/Container: 실제 사용자가 작성한 비즈니스 로직 함수
  • Queue Worker (옵션): 비동기 이벤트(예: Kafka 메시지) 처리

🛠️ OpenFaaS 주요 설치 환경

 

플랫폼  설치 여부
Kubernetes O (Helm 차트 또는 YAML 배포)
Docker Swarm O
K3s O (초경량 Kubernetes)
Nomad O (HashiCorp Nomad 지원)
Standalone 실험적

🔥 OpenFaaS를 왜 쓸까?

  • 쿠버네티스 같은 복잡한 플랫폼에서도 간단하게 서버리스 환경 구축 가능
  • 직접 클러스터 통제 가능 (AWS Lambda 같은 외부 의존성 없음)
  • 컨테이너 기술을 그대로 재사용 (도커 이미지 형태로 함수 빌드)
  • 초경량 + 빠른 부팅 (따라서 엣지 컴퓨팅에도 적합)
  • Event-Driven Architecture 쉽게 구현
  • 운영/모니터링을 커스터마이징 가능 (Prometheus 통합 기본 지원)

🧩 OpenFaaS 생태계

  • faas-cli: OpenFaaS 함수 생성, 빌드, 배포, 관리 명령줄 툴
  • faas-netes: Kubernetes 환경에서 OpenFaaS 운영을 지원하는 컨트롤러
  • faas-idler: 요청이 없는 함수를 자동으로 스케일-다운 시키는 도구
  • faas-provider: 다양한 백엔드 (K8s, Docker, Nomad)에 맞춘 pluggable provider

✨ 요약

항목 내용
정의 컨테이너 기반 오픈소스 서버리스 프레임워크
주요 목적 Docker/Kubernetes 위에서 서버리스 실행 환경 제공
장점 자체 호스팅, 멀티언어, 초경량, 빠른 스케일링
사용 사례 엣지 컴퓨팅, 마이크로서비스 확장, 이벤트 기반 처리 등

 

728x90