Source

seamless /

Filename Size Date modified Message
49 B
48 B
204 B
1.1 KB
302 B
1.2 KB
183 B
3.3 KB
664 B

seamless is a TCP proxy that allow you to deploy new code then switch traffic to new backend without downtime.

Switching backends is done with HTTP interface (on a different port) with the following API:

/switch?backend=address
switch traffic to new backend
/current
return (in plain text) current server

Process

  • Start first backend at port 4444

  • Run

    seamless 8080 localhost:4444
    
  • Direct all traffic to port 8080 on local machine.

When you need to upgrade the backend, start a new one (with new code on a different port, say 4445). Then:

curl http://localhost:6777/switch?backend=localhost:4445

(Note that management port is different from the one we proxy).

Installing

You can download a statically linked executable at the downloads section.

Or if you have a Go development environment, you can

go get bitbucket.org/tebeka/seamless

Contact

Miki Tebeka <miki.tebeka@gmail.com> or here.

LICENSE

MIT