lablup / lablup/backend.ai

Write BEP for spec-driven multi-node deployment

Open
#12,566 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
15h 13m
Merged PRs (30d)
368

Description

Write a BEP for the spec-driven multi-node deployment approach before decomposing implementation. This Task gates the Epic's implementation work.

Starting decisions (already agreed - carry into the BEP):
- Do NOT reintroduce pyinfra. The earlier pyinfra scaffold was removed as unused (#11231) because it duplicated install logic already in context.py.
- Reuse the existing install steps in context.py (funnel through run_exec / run_shell / copy_config / sed_in_place; addresses read from InstallInfo / HalfstackConfig / ServiceConfig in types.py).
- Externalize the spec: replace the hardcoded localhost hydrate_install_info() (context.py:129 "# TODO: multi-node setup") with a spec loader; a one-node localhost spec reproduces today's single-node behavior.
- Add a RemoteContext (Context subclass overriding the 4 primitives over SSH via a thin lib such as asyncssh) so existing steps run remotely unchanged.
- Keep install/ a locked leaf component (deps: common/cli/plugin), no heavy 3rd-party orchestration dependency.

BEP must cover: deployment spec schema, step DAG / ordering, RemoteContext + SSH inventory, HA wiring (Redis Sentinel, PostgreSQL, multi-Manager, webserver failover endpoints per BA-6696/BA-6699), and the migration/coexistence story with the TUI installer.

Process: reserve a BEP number in backend.ai/proposals/README.md, draft from BEP-0000-template.md, and run the bep-guide skill inside the backend.ai worktree.

## Success Criteria
- [ ] BEP number reserved in proposals/README.md (BEP Number Registry).
- [ ] proposals/BEP-XXXX-.md drafted from the template, covering the sections above.
- [ ] PR submitted for BEP discussion.
- [ ] Once accepted, implementation Stories are derived via /bep-to-issues under BA-4407.

JIRA Issue: BA-6724

Contributor guide

Open the contributing guide

Research direction

Reserve a BEP number in backend.ai/proposals/README.md, then read BEP-0000-template.md and run the bep-guide skill in the worktree. Draft proposals/BEP-XXXX-.md covering the deployment spec, step DAG, RemoteContext and SSH inventory, HA wiring, and TUI migration; done means the BEP is complete and a discussion PR is submitted.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.