Вопрос или проблема
Существует ли программное обеспечение, которое позволяет мне ‘соединить’ компьютеры моей локальной сети (например, рабочую станцию с высокой вычислительной мощностью) с общим хостинг-сервером и заставить их общаться довольно легко?
У меня развернуты контейнеры Docker на общедоступном сервере. Эти контейнеры имеют очень низкую вычислительную мощность. Я хочу развернуть мощную систему аналитики данных для сервера, не платя за выделенные GPU. Я хочу настроить систему, чтобы рабочая станция могла использоваться для обработки, если она доступна, в противном случае использовать сервер.
Я не уверен, что Kubernetes подходит для этой задачи, хотя могу и ошибаться. Я все время слышу об OpenStack, но не могу найти ничего конкретного об этом.
Существует ли какое-либо программное обеспечение, которое позволяет это, является открытым исходным кодом и учитывает безопасность? Кстати, я использую Python для программирования. Я мог бы использовать Python для SSH-доступа к компьютеру, обработки и возврата информации на сервер, но это не кажется хорошо интегрированным с моим стеком (контейнерами Docker) и выглядит более хакерски. Нечто, что могло бы использоваться чисто с языком программирования (в моем случае Python, даже если это просто передача JSON, как мы видим с контейнерами, kubelet и т. д.)
Настройте VPN на базе WireGuard. Это может соединить ваш VPS и локальную сеть в одну и ту же сеть, и они смогут общаться друг с другом так, как будто находятся в одной сети.
Ответ или решение
Вопрос о связывании локальных компьютеров с общедоступными серверами является важной задачей для многих организаций, особенно когда речь идет о распределении вычислительных ресурсов и интеграции программного обеспечения. Давайте рассмотрим возможные подходы и решения для вашей ситуации.
Возможные решения для связи локального компьютера с публичным сервером
-
VPN (Virtual Private Network) с использованием WireGuard:
Одним из самых простых и эффективных способов подключения вашего локального компьютера к публичному серверу является использование VPN. WireGuard — это современный VPN-протокол, который обеспечивает высокую скорость и безопасность соединений.Преимущества WireGuard:
- Простота настройки: WireGuard имеет минималистичный и понятный интерфейс.
- Высокая производительность: Он оптимизирован по сравнению с традиционными VPN-протоколами.
- Безопасность: WireGuard использует современные криптографические методы, что делает его безопасным выбором.
После настройки WireGuard ваш рабочий компьютер и публичный сервер будут находиться в одной локальной сети, что упростит взаимодействие между ними.
-
Docker и временное вычисление с помощью Python:
Поскольку вы упоминали использование Python, вы можете создать систему, которая использует ваш локальный компьютер для обработки данных при его доступности. Вы можете разработать Python-скрипт, который будет:- Подключаться к публичному серверу через API (например, REST API).
- Отправлять задачи на выполнение на локальный работающий компьютер и получать результаты обратно.
- Использовать Docker для обеспечения возможности контейнеризации вашей рабочей нагрузки, что позволяет сохранять целостность окружения ваших приложений.
-
Фреймворки для распределенных вычислений:
Рассмотрите использование фреймворков, таких как Dask или Ray, которые могут масштабироваться между локальными и удаленными ресурсами.- Dask: Позволяет вам распределять задачи и обрабатывать данные в большом масштабе. Он легко интегрируется с Python и может работать с Docker.
- Ray: Он также ориентирован на распределенные вычислительные задачи и способен выполнять высокопроизводительные анализы данных.
-
OpenStack:
Хотя OpenStack — это обширная система управления облачными ресурсами, она может оказаться избыточной для решения вашей задачи, если вам не требуется полный контролируемый облачный окружение. Однако у OpenStack есть свои плюсы, если вы впоследствии планируете развертывание и управление большими вычислительными кластерами.
Заключение
С учетом ваших потребностей, использование WireGuard для VPN-соединения между вашим локальным компьютером и публичным сервером будет хорошим началом. Это даст вам возможность безопасно передавать данные между устройствами. В дополнение, учитывая ваши навыки в Python, использование фреймворков Даск или Ray для распределения вычислительных задач может значительно повысить эффективность вашей работы, позволяя вам использовать ресурсы вашего рабочего компьютера по мере их доступности.
При выборе решения также учтите аспекты безопасности, такие как шифрование передаваемых данных и аутентификация пользователей, чтобы защитить своего рода интеграцию.
Эти решения помогут вам установить эффективное взаимодействие между вашими локальными и удаленными ресурсами и оптимизировать процесс обработки данных.