Расскажите как на уровне инфраструктуры вы решаете проблему распределения нагрузки и надёжности для http web services?
У меня есть достаточно нагруженный сервис (сотни тысяч или миллионы запросов в сутки), который нужно выставить через http/SOAP. Он stateless, горизонтально масштабируется без проблем. Внутри java/jetty/CXF. Разворачивается в дата-центре заказчика на linux-серверах: железные боксы с несколькиими витруальными машинами на каждом.
Я бы хотел получить инфраструктуру, в которой
— инстансы сервиса можно добавлять/убирать/рестартовать/обновлять прозрачно для клиентов, с соответствующим перераспределением нагрузки на лету.
— нет single point of failure и узких мест при масштабировании
— в идеале, о перегруженности или недогруженности инстансов можно оперативно узнавать до того, как это приведёт к последствиям.
— при этом, чем проще — тем лучше
Эти пожелания выглядят вполне обычными, и я уверен, что есть готовые рецепты. Поделитесь своим опытом?