Если этот вопрос кажется основным для более ИТ-ориентированных людей, то я заранее извиняюсь.Я не уверен, что он относится к домену ServerFault, но поправьте меня, если я ошибаюсь ...
Этот вопрос касается некоторых серверных операций веб-приложения, размещенного в облачной среде (Google).Я пытаюсь оценить варианты координации наших различных виртуальных машин.Я опишу то, что у нас есть на данный момент, и те, кто «в курсе», могут предложить лучший способ (я надеюсь!).
В нашем приложении существует ряд различных анализов, каждый из которых имеет свои требования к оборудованию.Как правило, они очень большие, и мы НЕ хотим, чтобы они выполнялись на сервере приложений (обозначается app_server
ниже).
С этой целью, когда мы запускаем один из этих анализов, app_server
запустит новую виртуальную машину (назовите это VM1
).Для некоторых из этих анализов нам нужен только VM1
;он выполняет анализ и отправляет HTTP-запрос POST обратно на app_server
, чтобы сообщить, что работа завершена.
Для других анализов VM1
, в свою очередь, запустит несколько рабочих машин (worker-1
, ..., worker-N
), которые параллельно выполняют очень похожие задачи.Когда задание для одного работника (например, worker-K
) выполнено, оно должно сообщить VM1
: «Эй, это работник-K, и я готов!».Как только все рабочие (worker-1
, ..., worker-N
) завершены, VM1
выполняет некоторые операции слияния и, наконец, возвращается к app_server
.
Мой вопрос: Помимо запуска веб-сервера на VM1
, который прослушивает POST-запросы от рабочих (worker-1
, ..), каковы потенциальные механизмыэти рабочие общаются с VM1
?Существуют ли не-веб-серверы способы прослушивания запросов HTTP POST и что-то с этим делать?
Следует отметить, что все мои виртуальные машины работают в одном регионе / зоне на GCE, поэтому они могут обмениваться данными.через внутренние IP-адреса без каких-либо специальных правил брандмауэра и т. д. (например, работает $ ping <other VM's IP addr>
работает).Очевидно, я не хочу, чтобы какая-либо из этих виртуальных машин (VM1
, worker-1
, ..., worker-N
) была открыта для доступа в Интернет.
Спасибо!