An experiment by Philip Jay & Jun Wang in the ultimate user session isolation. What happens if each user session has it's very own app-server in a container?
• No Python SDK for beta service (yet..) • Couldn’t get Python in Lambda to subprocess `azure-cli` • Containers don’t delete on exit • In fact, it’s worse: containers restart on exit
HTTP Websocket Node.JS App in Docker on ECS Cluster Kinesis stream HTTP GET Lambda invoke ECS start task ∙ random uuid ENV: random uuid http://ip:port/uuid Return – ∙ Public IP : Port ∙ Random UUID
HTTP Websocket Node.JS App in Docker on ECS Cluster Kinesis stream HTTP GET Lambda invoke ECS start task ∙ rand uuid ENV: random uuid http://ip:port/uuid Return – ∙ Public IP : Port ∙ Random UUID
function” • Modified: rea-now-feed (“session handler”) – • exit server on disconnect • websocket path => uuid env var • Modified: rea-now-ui (“fancy UI”) – • alter websocket connect, to, API gateway fetch • get websocket client lib from appserver, rather than webpack compiled in
Initial container pull from repository is slow • Application is slow to start & connect to Kinesis • Chalice is awesome to work with • ECS is easy to use, smooth to transition from docker-in-EC2 style ASGs • The pattern would need more work for production workloads