iop/agent-roadmap/phase/personal-edge-packaging-deployment/milestones/personal-local-edge-deployment-profiles.md

8.2 KiB

Milestone: Personal Local Edge 패키징과 배포 모드 프로파일

위치

목표

로컬용과 서버용 코어를 분기하지 않고, 같은 Edge runtime을 personal/local, server/team, fleet 배포 모드로 운용하는 방향을 스케치한다. 개인 로컬 사용자는 Node 직접 세팅이 아니라 provider를 꽂으면 localhost OpenAI-compatible endpoint가 생기는 UX를 기준으로 두고, 서버/팀 배포는 Docker, Control Plane, remote Node, fleet 운영 기능을 같은 코어의 확장 모드로 둔다. 이 Milestone은 즉시 구현이 아니라 후속 패키징, 설치, 업데이트, 기능 gate 구현을 위한 제품/운영 경계 정리를 목적으로 한다.

상태

[스케치]

승격 조건

  • personal/local, server/team, fleet 배포 모드의 이름과 책임 범위를 결정한다.
  • 같은 코어를 유지하면서 사용자 관리, Control Plane enrollment, remote Node, audit/fleet 기능을 capability gate 또는 config profile로 끄고 켜는 기준을 결정한다.
  • 개인 로컬 모드에서 Node를 embedded backend, local child process, 또는 숨겨진 loopback Node 중 어떤 방식으로 시작할지 결정한다.
  • macOS, Windows, Linux native package와 Docker/server package의 기본 배포 경로와 지원 우선순위를 결정한다.
  • 로컬 모드의 보안 기준을 localhost bind, local API token, OS keychain 또는 env secret 중 어디까지 요구할지 결정한다.
  • personal mode에서 provider catalog, route policy, usage ledger, local secrets가 어디에 저장되고 Control Plane과 어떻게 분리되는지 정리한다.
  • server/team mode로 확장할 때 기존 personal Edge 상태를 어떻게 이전하거나 enrollment할지 결정한다.
  • 후속 구현 Milestone과 SDD 필요 범위를 나눈다.

구현 잠금

  • 상태: 잠금
  • SDD: 불필요
  • SDD 문서: 없음
  • SDD 사유: 현재 Milestone은 personal/server 배포 토폴로지와 패키징 방향성 스케치이며, installer/config/update/security 계약 구현으로 승격할 때 SDD 필요 여부를 재판정한다.
  • 잠금 해제 조건: 아래 체크리스트
    • 승격 조건의 미정 항목이 사용자 검토로 해소되어 있다.
    • 구현 가능한 목표, 범위, 기능 Task, 후속 구현 Milestone 후보가 분리되어 있다.
  • 결정 필요: 아래 체크리스트
    • 초기 제품 표면을 iop-edge 단일 바이너리로 유지할지, 별도 iop-agent 또는 tray/app wrapper를 둘지 결정한다.
    • personal/local 모드의 기본 backend를 embedded, local child Node, remote Node disabled 중 어떤 조합으로 시작할지 결정한다.
    • personal/local 모드에서 multi-user 관리, 조직 RBAC, fleet audit를 완전히 끌지, minimal local identity/audit만 남길지 결정한다.
    • macOS/Windows 개인 배포에서 Docker를 보조 경로로만 둘지, 특정 provider runtime에는 Docker 옵션을 허용할지 결정한다.
    • provider credential 저장을 OS keychain, local encrypted file, env reference 중 어떤 기본값으로 둘지 결정한다.
    • personal Edge가 Control Plane에 optional enrollment될 때 로컬 상태와 provider key를 어디까지 공유하거나 공유하지 않을지 결정한다.

범위

  • 동일 코어 기반 personal/local, server/team, fleet 배포 모드 후보
  • 배포 모드별 feature gate: Control Plane, 사용자 관리, remote Node, fleet audit, provider pool, OpenAI-compatible API
  • 개인 로컬 Edge UX: provider plug-in, localhost endpoint, local route policy, local secrets, Node 세부 노출 축소
  • 서버/팀 Edge UX: Docker 또는 Linux service 배포, Control Plane enrollment, remote Node registry, fleet 운영 기능
  • macOS, Windows, Linux native package와 Docker image/package의 역할 구분
  • personal mode에서 server/team mode로 확장하는 enrollment 또는 migration 후보

기능

Epic: [deploy-mode] Unified Deployment Modes

코어 분기 없이 배포 모드와 capability gate로 개인 로컬 제품과 서버/팀 운영 제품을 함께 수용하는 방향을 정리한다.

  • [mode-taxonomy] personal/local, server/team, fleet 모드의 책임과 기본 feature set 후보가 정리되어 있다.
  • [core-boundary] provider catalog, routing policy, adapter + target 실행 계약, usage ledger, OpenAI-compatible surface를 공통 코어로 유지하고 로컬/서버용 fork를 만들지 않는 경계가 정리되어 있다.
  • [feature-gates] 사용자 관리, Control Plane enrollment, remote Node, fleet audit, provider pool, OpenAI-compatible API를 capability gate 또는 config profile로 끄고 켜는 기준이 정리되어 있다.
  • [personal-ux] 개인 로컬 사용자가 Node를 직접 의식하지 않고 provider만 연결해 localhost endpoint를 쓰는 UX 기준이 정리되어 있다.
  • [node-topology] personal mode에서 embedded backend, local child Node, loopback Node, remote Node disabled의 장단점과 초기 선택 후보가 정리되어 있다.
  • [package-targets] macOS/Windows native package, Linux service, Docker/server package의 기본 배포 경로와 지원 우선순위가 정리되어 있다.
  • [local-security] localhost bind, local API token, credential storage, log/usage ledger 보존 범위 같은 personal mode 최소 보안 기준이 정리되어 있다.
  • [server-mode] server/team 배포에서 Docker, Control Plane, remote Node registry, multi-user/audit/fleet 기능을 켜는 기준이 정리되어 있다.
  • [migration] personal Edge를 server/team 모드로 enrollment하거나 상태를 이전할 때 공유/비공유할 설정과 secret 경계가 정리되어 있다.
  • [followups] installer, update plane, config schema, local security, UI/tray, provider setup wizard 같은 후속 구현 Milestone 후보가 분리되어 있다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 스케치 Milestone이며 기능 Task가 아직 충족되지 않았다.
  • 검토 항목:
    • 사용자가 동일 코어, 배포 모드, personal local UX 방향을 검토했다.
    • 승격 조건과 결정 필요 항목이 후속 구현 Milestone으로 분리되었다.
    • archive 이동을 승인했다.
  • agent-ui 상태 반영: 해당 없음
  • 리뷰 코멘트: 없음

범위 제외

  • 실제 macOS/Windows installer, tray/app, Docker image 구현
  • Edge/Node update runner, host-local manager, rollback 상태 머신 구현
  • direct/Plan/Milestone workflow 라우팅 모듈 또는 provider adapter 구현
  • 사용자 관리, 조직 RBAC, billing/chargeback, 장기 audit schema 구현
  • provider runtime 다운로드, 모델 획득, local model marketplace 구현
  • 개인 로컬 모드의 UI onboarding 구현

작업 컨텍스트

  • 관련 경로: apps/edge/**, apps/node/**, packages/go/config/**, packages/go/hostsetup/**, configs/edge.yaml, edge-local-dev-guide.md
  • 표준선(선택): 로컬용/서버용 코어를 나누지 않고 deployment mode, capability gate, config profile로 기능 표면을 조정한다.
  • 표준선(선택): personal/local mode의 사용자 경험은 Node bootstrap이 아니라 provider plug-in과 localhost OpenAI-compatible endpoint를 기본으로 둔다.
  • 표준선(선택): 개인 배포의 기본은 macOS/Windows/Linux native package이며, Docker는 서버/팀 배포와 개발/격리 실행의 우선 경로로 둔다.
  • 표준선(선택): local mode에서도 보안을 제거하지 않고 localhost bind, local API token, credential storage, 최소 usage ledger 기준을 둔다.
  • 선행 작업: Update Plane 안정 프로토콜, Host-local Manager 기반 자체 업데이트, 에이전트 작업 루프 오케스트레이션 MVP
  • 후속 작업: personal Edge installer 구현, deployment mode config schema, local provider setup wizard, Control Plane optional enrollment
  • 확인 필요: 구현 잠금 > 결정 필요 항목