iop/agent-ops/roadmap/milestones/control-plane-portal.md

3.1 KiB

Control Plane과 Portal

목표

여러 Edge를 연결하고 관찰하며 Edge 설정 변경, 명령 전달, 이벤트 수신을 담당하는 Control Plane과 Web Portal 운영면을 구축한다. Portal은 NomadCode 전용 화면이 아니라 IOP가 독립적으로 운영되기 위한 범용 운영/UX 계층으로 둔다.

단계

Control Plane과 Portal 운영

상태

계획

구현 잠금

  • 상태: 잠금
  • 이유: Control Plane, Portal, Edge wire 책임 경계를 정리하는 게이트 문서이며, 구현 가능한 세부 설계가 아직 확정되지 않았다.
  • 해제 조건:
    • Control Plane-Edge, Portal-Control Plane, proto-socket/HTTP 사용 경계가 문서화됨
    • Portal이 다룰 IOP 책임 범위와 NomadCode 전용 UX 제외 범위가 구체화됨
    • 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
  • 잠금 중 금지:
    • 코드 구현 또는 agent-task 구현 계획 생성
    • UI route/API/file 구조를 추측해 확정
    • NomadCode 전용 Project Workspace 또는 Agent Shell 요구를 IOP Portal 범위로 선확정

범위

  • Control Plane Go server의 Edge connection 관리
  • Portal-Control Plane, Control Plane-Edge IOP Wire Protocol 확장
  • Web Portal의 Runtime/Automation/Serving 운영 화면 기초
  • Edge 상태 조회, 설정 변경, 명령 전달, 이벤트 수신
  • Edge agent 생성과 bootstrap command 발급 상태 조회/관리
  • remote terminal bridge session 생성/조회/권한 확인 표면
  • IOP 책임 범위 안의 model serving, automation, session, routing, policy, history, audit 운영 UX

필수 기능

  • [edge-mediated] Control Plane은 Node를 직접 연결하거나 직접 스케줄링하지 않는다.
  • [portal-via-cp] Portal은 Control Plane을 통해 Edge 운영 상태를 조회한다.
  • [portal-boundary] Portal은 IOP 자체 운영 UI/UX이며 NomadCode에 맞춘 전용 shell로 만들지 않는다.
  • [server-bridge] 브라우저 직접 TCP가 어려운 구간은 Control Plane server-side bridge를 둔다.
  • [http-boundary] net/http는 health/readiness/bootstrap 같은 보조 endpoint 용도로 유지한다.

완료 기준

  • Control Plane이 하나 이상의 Edge 연결 상태를 조회할 수 있다.
  • Portal이 Edge/Node/agent 상태를 사용자에게 보여줄 수 있다.
  • Edge 명령 전달과 이벤트 수신 흐름이 IOP Wire Protocol 기준으로 문서화된다.
  • Control Plane과 Web의 배포/검증 절차가 docs/deploy-dev.md와 일치한다.

범위 제외

  • Control Plane을 Kubernetes식 중앙 스케줄러로 만드는 작업
  • Edge 내부 DB를 Control Plane DB로 대체
  • 모든 런타임 상태를 Control Plane 단일 원본으로 만드는 작업
  • NomadCode Agent Shell 자체 구현
  • NomadCode 전용 Project Workspace, diff/PR/branch/commit UX

작업 컨텍스트

  • 관련 앱: apps/control-plane, apps/web
  • 관련 문서: apps/control-plane/README.md, apps/web/README.md, docs/deploy-dev.md
  • 본격 구현 전 control-plane domain rule 생성 또는 갱신이 필요할 수 있다.