Для своего любимого проекта я выбрал архитектуру на основе сервисов (да, умное слово SOA), потому что я могу масштабировать каждый сервис независимо от других, распределять их географически, где они будут использоваться больше, чем другие сервисы и т. Д.
Хитрость в том, что некоторые сервисы должны общаться в частном порядке друг с другом (и публично с конечными пользователями). Эти сервисы будут расположены в отдельных центрах обработки данных без какой-либо встроенной частной трубы между ними (я думаю, что SoftLayer имеет такие).
Меня не волнует, если связь немного медленная из-за шифрования. В основном меня волнуют атаки MITM и подслушивание. То есть я хочу, чтобы службы были уверены, что они общаются с друзьями, а не с каким-то самозванцем.
Варианты такой межсервисной связи, какой я их вижу:
- HTTP с TLS
- TCP / IP (некоторый пользовательский протокол) с TLS
- Spread Toolkit (не уверен насчет шифрования здесь)
- HTTP или пользовательский TCP / IP через SSH туннель
- создать VPN между датацентрами
- клиентские сертификаты? взаимная проверка сертификатов?
Понятно, что у меня в голове много мумбо-гиганта. Помогите! * * 1023
Что ты думаешь? Вы сделали это ранее? Каковы ваши переживания? Что "хорошо работает"?
Если вы выбираете VPN, какую VPN-систему вы порекомендуете? OpenVPN? Как временные сетевые разделы обрабатываются с такими системами VPN? Они автоматически заживают / воссоединяются?
Я полагаю, что решение VPN будет шифровать все соединения, но я просто хочу, чтобы некоторые соединения были зашифрованы. Возможно, SSH-туннель в порядке.
Спасибо за ваш совет.