bgproxy

module
v0.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2019 License: Apache-2.0

README

bgproxy

A proxy simluates Blue-Green deploy.

Installation

$ go get github.com/theoremoon/bgproxy/cmd/bgproxy
$ go get github.com/theoremoon/bgproxy/cmd/bgproxyctl

Usage

Situation:

  • We have a blue server (php) listening on localhost:8888
  • We want to publish the service on :80
  • We may replace the server with updated one
$ sudo bgproxy -addr 0.0.0.0:80 -blue http://localhost:8888/ -stop "kill \$(ps -ao cmd,pid|grep '^php -S localhost:8888'|awk '{print \$NF}')"
bgproxy:2019/11/15 00:17:21 Start
...

(Or more simply we can use -cmd option)

$ sudo bgproxy -addr 0.0.0.0:80 -blue http://localhost:8888/ -cmd "php -S localhost:8888 -t /var/www/html/"
bgproxy:2019/11/15 00:17:21 Start

Now we are serving the blue server at :80.

Next, we want to release new server (green). Let's up the server listening on localhost:8889. And order bgproxy to set new green server.

$ bgproxyctl green -addr http://localhost:8889/ -stop "kill \$(ps -ao cmd,pid|grep '^php -S localhost:8889'|awk '{print \$NF}')"
OK

(Also bgproxyctl provides -cmd option)

$ bgproxyctl green -addr http://localhost:8889/ -cmd "php -S localhost:8889 -t /home/user/public/"
OK

Then we serves a green server at :80. However if the green server has a problem, we can roll it back.

$ bgproxyctl rollback

bgproxy automatically stops the green server and switch back to serve blue.

Or if the green sever is unhealthy, bpproxy automatically roll back.

If the green server is perfect and completely healthy until 1 hour, then bgproxy stops the blue and turn green into new blue.

...In more details, you can see help and the source code.

Author

theoremoon

LICENSE

Apache 2.0

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL