Разделение веб-сервера и сервера обработки - PullRequest
0 голосов
/ 06 марта 2020

Я хотел бы получить совет по архитектуре.

У меня есть проект, состоящий из сервера API publi c Node.JS (обработка клиентских запросов HTTP-браузера)

Цель моего проекта - преобразовать изображение в видео (я делаю это, используя ffmpeg в качестве CLI, и это может занять некоторое время)

Рабочий процесс должен быть следующим :

1) Пользователь отправляет URL-адрес изображения и свою электронную почту (в качестве параметров POST) в API

2) API должен ответить «OK 200» и позже отправить электронное письмо, содержащее видео изображения

Вот моя идея (и то, что делает моя текущая программа):

1) API nodeJS напрямую отвечает «OK 200» клиенту

2) Сервер nodeJS асинхронно загружает изображение с использованием библиотеки npm ax ios, затем сохраняет это изображение в текущий каталог, затем асинхронно запускает тяжелый инструмент, который преобразует изображение в видео (может занять некоторое время), а затем отправляет электронное письмо клиенту.

* 1 024 * В моем дизайне все происходит на одном сервере (NodeJS API). Я думаю, что это не очень хороший дизайн, и я должен отделить Nodejs HTTP API и сервер обработки видео для тяжелых задач. Однако такое разделение означает передачу изображения с сервера на другой, и я не знаю, как это сделать.

Я думаю, что есть полезные сервисы, которые я мог бы использовать на AWS, но я не знаю какой и как.

Можно ли мне помочь в разработке этого приложения (и какие облачные сервисы я могу использовать?)

1 Ответ

1 голос
/ 06 марта 2020

Итак, вам нужен какой-то инструмент оркестровки. Вы можете посмотреть в AWS StepFunctions. Каждый шаг будет выполняться в асинхронном режиме c, и состояние будет обрабатываться. Для шага загрузки вы можете использовать любой тип контейнеров (например, ECS) и S3 для хранения. Для обработки - тем же способом, или, в случае простого преобразования формата / размера, вы можете использовать AWS Elasti c Транскодер. Отправка электронной почты может быть дона через SNS.

Это много движущихся частей, так что это не единственный способ сделать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...