콘텐츠로 이동

windforce

git으로 배포한 코드를 안전하게 실행하는 멀티테넌트 SaaS 워커 플랫폼.

windforce에서는 콘솔에서 코드를 쓰거나 자기 git 저장소를 연결하고 Deploy를 누르면, 그 코드가 격리된 워커에서 실행되고 결과·로그가 감사 가능한 형태로 남는다. 트리거(HTTP·webhook·schedule)로 호출하고, 잡(job)의 결과를 받아 간다.

  • 함수를 만들고 호출한다 — 앱(Application Project) 안에 액션(Action)을 정의하고, main(ctx) 한 함수를 작성한다. TypeScript·Python·Go를 한 플랫폼에서 실행한다.
  • 안전하게 실행된다 — 모든 잡은 2계층 샌드박스(호스트 커널 경계 + 테넌트 간 격리)에서 돌아간다. 비신뢰 코드도 받을 수 있게 설계됐다.
  • 운영할 수 있다 — Kubernetes 위에서 워커 그룹·스케일·멀티테넌시·관측·시크릿·배포를 GitOps로 운영한다.

어디서 시작할까

  • 처음 오셨나요?


    설치하고 첫 잡을 5분 안에 돌려 본다. 핵심 개념(Workspace·App·Action·Job)도 여기서.

    빠른 시작 · 핵심 개념

  • windforce로 만드는 분 (사용자)


    앱·액션을 만들고, 액션 코드를 작성하고, 트리거로 호출하고, 잡 결과를 받는 법.

    사용자 가이드

  • windforce를 운영하는 분 (운영자)


    Kubernetes 배포, 워커 그룹·스케일, 멀티테넌시, 시크릿, 관측, CI/CD.

    운영자 가이드

  • 내부가 궁금하신 분


    3 평면 + PG 큐, 큐 스파인의 정확성 불변식, 2계층 샌드박싱, 재현성.

    아키텍처 & 내부 동작


한눈에

windforce는 세 평면(Control Plane · Trigger Plane · Worker) + 그것들을 잇는 하나의 PG 큐로 구성된다. "일을 만드는 모든 것은 enqueue하고, 워커는 consume한다"가 전체 설계의 한 줄 요약이다.

windforce 아키텍처 개요

영역 무엇
언어/스택 Go 단일 정적 바이너리(server/worker/standalone) · Postgres 큐(외부 브로커 없음)
지원 언어 TypeScript(정본) · Python · Go — 한 워커가 모두 실행
격리 gVisor(호스트 커널 경계) + per-job bubblewrap(테넌트 간 격리) 2계층
재현성 잡이 실행 메타(commit·entrypoint·스키마·timeout)를 자기 자신에 self-pin
멀티테넌시 워크스페이스별 envelope 암호화 + 사용량 측정·테넌트 quota
배포 릴리스 태그 → 인클러스터 CI → Flux GitOps

이 문서 사이트에 대해

이 사이트는 windforce를 사용·운영하는 사람을 위한 가이드다. 설계 결정의 근거(왜 이렇게 했나)는 레포의 엔지니어링 문서(아키텍처 정본·결정 기록·전체 명세)에 정리돼 있고, 이 사이트의 "아키텍처 & 내부 동작" 섹션은 운영에 필요한 만큼을 압축해 설명하고 더 깊은 원문으로 링크한다.