Persistent AppProxy Port (Elastic Port)
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
## Motivation
Allocating pool of AppProxy ports to each user, which later will be used to model service or session app to start the app, will let users have their own persistent port - just like AWS do with elastic IP.
## Objective
- Bundle interactive app’s handshake
- [Backend.AI](http://Backend.AI) entity to manage elastic ports
- Maximum number of ports occupied at once must be tolerated by user resource policy.
- When asked to occupy range of ports, [Backend.AI](http://Backend.AI) manager will then ask AppProxy to occupy the actual ports. AppProxy should return series of ports (or subdomains) as well as a unique token referencing each slots.
- [Backend.AI](http://Backend.AI) Manager should keep track of both ports and tokens and later send token to the client so that it can communicate with AppProxy.
- Interactive App Management
- Before calling `/session/start-service` API, client should associate the designated elastic port with the session (the API to achieve this will be addressed later on manager sub-issue). The association API will then return the ID generated by AppProxy.
- Interactive apps associated with elastic port will have infinite lifetime - the app will not be closed regardless of the idleness.
- Elastic port’s disassociation will be completed either when session is terminated or
-
- Inference App (Model Service) Management
- For inference apps, elastic port decouple will be achieved only by removing the model service.
-
##
JIRA Issue: BA-1512
Contributor guide
Assessment
This issue has not been assessed yet.