Кластеризация в Node vs Docker

#node.js #docker #cluster-computing #hardware

#node.js #docker #кластерные вычисления #аппаратное обеспечение

Вопрос:

Я хочу масштабировать свое приложение Node с помощью кластеризации.

У меня есть приложение Node, которое контейнеризовано в Docker. В Node я могу разветвлять дочерние процессы для распараллеливания приложения на уровне потоков или я могу создавать параллельные контейнеры с помощью Kubernetes или Docker Swarm.

Каковы здесь компромиссы?

Это сервер шифрования, который примет загруженный файл, зашифрует его и отправит по назначению.

Комментарии:

1. Вы также использовали Express?

2. Зависит от того, сколько ядер у вас в системе и какие ядра выделены вашему контейнеру. Разветвление в дочернем процессе кажется более простым способом, с меньшими накладными расходами (требуется меньше оперативной памяти .. и т.д.) Для обработки данных. Параллельные контейнеры с k8 .. и т.д. предоставляют вам панель управления .. и т.д. Но для работы требуется больше ресурсов, и обработка может быть медленнее, поскольку новые контейнеры необходимо развернуть для параллельной обработки по сравнению с разветвлением.

3. @ThanveerShah да. В этом приложении используется Express.

Ответ №1:

введите описание изображения здесь

Я нашел эту картинку в https://sites.google.com/site/mytechnicalcollection/cloud-computing/docker/container-vs-process . У автора есть еще несколько комментариев по этому поводу. Виртуальные машины против контейнеров против процессов.

Я пытаюсь подвести итог

A. преимущества контейнеров:

  1. swarm / kubernetes — отличный планировщик. Для запуска на нескольких хостах или в любом другом месте docker.

  2. безопасность и ограничения. контейнер обладает многими функциями, похожими на виртуальную машину. Но это быстрее и проще, чем виртуальная машина во многих аспектах.

B. преимущества процесса fork:

  1. легче контейнера.

И последнее, но не менее важное: вы можете запускать процессы fork внутри контейнера. Вы можете запускать только один контейнер на хост, и процесс внутри разветвления контейнера зависит от количества ядер его хоста. Это было бы идеально для вас.