I'm no Google, but it has been holding up very well (I've never had any issue with CPU, memory or anything). My simple release strategy does come with potential downtime, but the shutdown and start up are so fast it's very minimal.
I'm no Google, but it has been holding up very well (I've never had any issue with CPU, memory or anything). My simple release strategy does come with potential downtime, but the shutdown and start up are so fast it's very minimal.
If I did, I'd keep it simple. I use Nginx in front of the Go server. I'd likely use the Nginx server as a load balancer and replace each Go service one at a time to have no downtime. It doesn't matter how many ports you use as long as Nginx knows the port range. It will distribute the incoming requests to the Go processes.
edit:
For those wondering why I use Nginx. It's where I terminate SSL and I also use it for simple gzip/compression/caching for outgoing resources.
I don't use Caddy or anything else. I've used Nginx for many years and it just... works.