Приготовление пищи с луком: OnionBalance

Это первая часть из серии статей, которые призваны осветить различные интересные события в Onion-пространстве. Данные пост посвящен технике эффективного масштабирования скрытых сервисов.

Необходимость масштабирования

Технология скрытых сервисов существует мало времени. Но в течение последних лет на основе этой технологии были развернуты серьезные сайты, такие как новостные издания (Washington Post), поисковые системы (DuckDuckGo) и серверы ключей PGP. Это была прекрасная возможность для нас, команды разработчиков, так как наш код был подвергнут закалке и протестирован большим количеством клиентов, которые используют его каждый день.

Широкое использование технологии скрытых сервисов дало нам более полное представление о том, с какими проблемами масштабируемости сталкиваются владельцы сайтов, когда пытаются вывести свои ресурсы на новый уровень. Чем больше пользователей, тем больше нагрузка на оборудование. В последнее время мы сделали много нового в области масштабируемости, выпустив инструмент под названием OnionBalance.

Так что же такое OnionBalance?

OnionBalance, это программное обеспечение, разработанное Доннчей О’Керрол, как часть Summer of Privacy 2015. Это позволяет распределять запросы к одному сайту по нескольким машинам. За счет этого достигается более высокая доступность сайта. Это как Round robin DNS только для Tor.

OnionBalance набирает популярность среди владельцев скрытых сервисов. Например, проект Debian.

onionbalance

Как OnionBalance работает?

Рассмотрим Алису, которая хочет распределить нагрузку на ее сайт с помощью OnionBalance.

Сначала она создает несколько идентичных экземпляров сайта на нескольких машинах. Затем Алиса создает список адресов сайта и передает его OnionBalance. Балансировщик извлекает дескрипторы сайтов и создает супер-дескриптор, содержащий все их точки входа. Теперь Алиса использует адрес супер-дескриптора. Для обеспечения избыточности можно запустить несколько экземпляров OnionBalance.

Когда Боб хочет посетить сайт Алисы, то его браузер случайным образом выбирает точку входа из супер-дескриптора и использует ее для подключения. Таким образом достигается распределение нагрузки.

С OnionBalance, секретный ключ вашего сервиса может храниться в более изолированном месте, уменьшая риск компрометации.

Для получения информации о том, как настроить OnionBalance, пожалуйста, обратитесь к следующей статье: http://onionbalance.readthedocs.io/

Вывод

OnionBalance это удобный инструмент для распределения нагрузки. Его легко установить и настроить.

До следующей статьи 🙂