Мне интересно, что было бы лучше всего использовать для развертывания обновлений для веб-приложения (MVC) Go. Представьте себе следующий сценарий:Лучшая практика обновления веб-приложения Go
1) Код и проверить некоторые изменения для моего веб-приложения Go
2) Deploy обновление без любого в настоящее время с помощью предыдущей версии получение прервана.
Я не знаю, как убедиться, что точка 2) может быть покрыта - когда кто-то отправляет запрос на сервер, и я перестраиваю его/перезапускаю только в этот момент, он получает ошибку - даже если запрос просто использует часть кода, который я не касался, или который обратно совместим, или если я просто добавил новый обработчик запросов.
Возможно, мне не хватает чего-то тривиального или хорошо известного шаблона, поскольку я только что участвую в процессе обучения, и мои предыдущие веб-приложения были ASP.NET- или php-приложениями, где это не было проблемой, поскольку я не необходимо перезапустить веб-сервер при изменении кода.
Это указывало мне в правильном направлении. 2 ссылки, которые я нашел, и которые, вероятно, будут полезны: https://github.com/mailgun/manners (изящное завершение работы) и, возможно, https://github.com/rcrowley/goagain (No-downtime-restart). – Compufreak
@ Симпатичные манеры выглядят красиво. Я не думаю, что я буду использовать goagain лично, но скорее Einhorn или подход LB (который я использую в настоящее время). –