Вопрос проверяет понимание различий между микросервисной архитектурой и serverless-подходом, а также умение оценивать архитектурные стили по их ключевым признакам.
Микросервисная архитектура — это не про конкретную технологию, а про принципы организации системы. Ключевые признаки: независимое развёртывание, изоляция данных, слабая связанность, отдельные команды на сервис, коммуникация по сети. AWS Lambda — это лишь вычислительная платформа (FaaS), которая может использоваться для реализации микросервисов, но сама по себе архитектуру не определяет.
// order-service/index.js
exports.createOrder = async (event) => {
const order = JSON.parse(event.body);
await dynamo.put({ TableName: 'Orders', Item: order }).promise();
await sqs.sendMessage({
QueueUrl: process.env.PAYMENT_QUEUE,
MessageBody: JSON.stringify({ orderId: order.id })
}).promise();
return { statusCode: 201, body: JSON.stringify(order) };
};
// payment-service/index.js
exports.processPayment = async (event) => {
for (const record of event.Records) {
const { orderId } = JSON.parse(record.body);
await payments.charge(orderId);
}
};Здесь два независимых сервиса: один создаёт заказ и пишет в свою таблицу, второй слушает очередь и обрабатывает оплату. У них разные репозитории, деплой и данные — это микросервисный подход, реализованный на Lambda.
Итог: AWS Lambda может быть основой микросервисной архитектуры, если соблюдены принципы изоляции доменов, данных и независимого деплоя. Если же это просто функции, связанные общей логикой и БД, — это не микросервисы, а монолит или распределённый монолит. Применять Lambda для микросервисов стоит, когда важны масштабируемость по событиям, оплата за фактическое использование и быстрый вывод новых сервисов.
Уровень
Рейтинг:
4
Сложность:
6
Навыки
Node.js
Kubernetes
Ключевые слова
Подпишись на Node.js Developer в телеграм