Мне нужна обратная связь по поводу этого частично серверного дизайна архитектуры

Наполовину безсерверный блог с реагирующим интерфейсом

Я хочу разместить масштабируемый блог или приложение такого рода в nodeJS на AWS, используя технологии AWS. Идея здесь состоит в том, чтобы иметь небольшой сервер EC2, который не отвечает за обслуживание сайта, а только за запуск CMS/ админ-панели. Хотя эти операции могут быть и безсерверными, я думаю, что выделенный небольшой экземпляр VM EC2 может быть более эффективным и лучше работать с существующими платформами и т. Д.

На моей диаграмме выше вы можете видеть, что есть два типа пользователей audiences а также admin/writers, Операции Admin CRUD также вызывают запуск лямбды. Лямбда генерирует статический сайт после изменений администратора, который доставляется на S3. Пользователи направляются на статический сайт, размещенный в S3. Только администраторы / авторы имеют доступ к серверной части сайта.

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

Это кажется беспроигрышным для меня. Обратная связь?

1 ответ

Это должен быть комментарий, а не ответ, но так как мне не хватает очков...

Есть несколько других соображений для этой архитектуры. Лямбда-функции отлично подходят для горизонтального масштабирования микросервисов, причем каждая маленькая функция выполняется параллельно десятки или сотни раз. Генерация статического сайта, как правило, представляет собой однопотоковую операцию, поэтому вы можете не увидеть ожидаемого выигрыша, вам также нужно следить за периодом ожидания (максимум 300 секунд в настоящее время) и убедиться, что вы можете создать сайт за это время. Конечно, если вы не используете лямбда-код, с вас не взимается плата.

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

Удачи с проектом.

Другие вопросы по тегам