Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Compute Modules 개요

Compute Module은 Docker 이미지로 묶은 코드를 Palantir 플랫폼에서 실행하는 기능입니다. 기존 코드의 언어와 라이브러리를 유지하면서 앱의 함수 호출을 처리하거나 데이터 파이프라인을 실행할 수 있습니다. 사용자가 개별 서버를 직접 운영하지 않으며 요청 부하에 따라 복제본 수를 늘리고 줄입니다.

앱이 보이지 않으면 플랫폼 관리자에게 Control Panel의 애플리케이션 접근 설정에서 Compute Modules를 활성화하도록 요청합니다. 모듈 안의 Documentation 탭에도 개발 및 게시 안내가 있습니다.

사용할 수 있는 작업

  • Workshop 또는 Slate에서 사용자 컨테이너의 계산 함수를 호출합니다.
  • 외부 소스에서 데이터를 가져와 스트림, 데이터셋 또는 미디어 집합에 넣습니다.
  • 사용자 모델이나 오픈 소스 모델을 컨테이너에 올리고 Foundry 앱에서 질의합니다.

기존 업무 코드를 다른 언어로 다시 작성하기 어렵거나 사용하는 의존성이 플랫폼의 기본 함수 런타임과 다를 때 컨테이너로 실행할 수 있습니다. Python, Java와 TypeScript SDK를 사용할 수 있으며 다른 언어는 사용자 클라이언트 프로토콜을 구현합니다.

실행 모드

Functions 모드는 함수 호출을 처리합니다. Foundry에 접근하지 않는 No platform permissions 또는 서비스 사용자로 데이터에 접근하는 Application permissions를 선택합니다.

Pipeline 모드는 빌드 시스템에 입력과 출력을 선언하고 범위가 제한된 작업 토큰으로 데이터를 처리합니다. 사용자가 직접 Query를 보내지 않는 비대화형 실행이며 Data Lineage에서 입력과 출력의 계보를 확인할 수 있습니다.

복제본과 컨테이너

모듈에는 같은 컨테이너 구성을 가진 복제본이 있습니다. 복제본 하나에 컨테이너를 하나 또는 여러 개 넣을 수 있습니다.

일반 Functions 모듈에서는 진입점 컨테이너의 SDK 또는 사용자 클라이언트가 작업을 계속 조회하고 결과를 전송합니다. Experimental HTTP 서버 연동은 OpenAPI 명세를 통해 서버에 직접 연결하는 경로이며, Pipeline은 쿼리 클라이언트 없이 입력 처리를 실행합니다.

같은 복제본 안의 컨테이너는 네트워크 프로토콜이나 공유 볼륨으로 데이터를 주고받을 수 있습니다. 여러 컨테이너의 통신 및 준비 조건은 앱이 구성해야 합니다. 서로 다른 복제본의 로컬 볼륨은 공유되지 않으며 복제본 간 직접 통신이나 복제본 로컬 상태의 지속성에 의존하지 않습니다.

확장과 자원 크기

복제본 수는 현재 부하와 과거 부하 예측을 바탕으로 조절합니다. 최소/최대 복제본, 동시성 한도와 확장 지연을 설정하여 응답 준비 상태와 사용량을 조절할 수 있습니다.

복제본 하나의 CPU, 메모리와 GPU 규모는 수동 구성합니다. 한 요청의 크기가 1 MB에서 100 GB처럼 크게 달라질 때 자원을 자동으로 수직 확장하는 기능은 아닙니다. 서로 다른 자원 크기의 모듈을 여러 개 만들고 요청을 분배하는 구성은 가능하지만 그 라우팅과 운영을 별도로 구현해야 합니다.

Foundry가 이미 제공하는 기능을 컨테이너에서 다시 구현하면 설정과 운영 부담이 늘 수 있으므로 필요한 처리와 기본 기능의 지원 범위를 먼저 비교합니다.

개발과 등록

실행 설정과 운영

  • 실행 모드: 권한, 입력/출력 별칭과 빌드 토큰
  • 컨테이너: 이미지 조건, 로그 수집과 예약 환경 변수
  • 소스: 네트워크 정책, 비밀 및 설정 변경 반영
  • 볼륨: 같은 복제본의 임시 파일 공유
  • Probe: readiness와 liveness 검사
  • 수평 확장: 임계값, 예측 및 시간대별 override
  • 진단: 상태, 시작 실패와 배포 교체
  • 이력: 구성 버전과 과거 복제본의 로그/지표
  • 사용량: CPU/메모리/GPU 및 복제본 실행 시간에 따른 계산