Отличие микросервисов от Lambda и бессерверных функций
Я просто пытался найти общее определение, каковы различия между
- Микросервисы
- Лямбда-функции
- и бессерверные функции
Моей целью было бы реализовать «настоящий» микросервис на Kyma — какие ключевые моменты были выполнены, чтобы я не «просто» реализовал функцию?
2 ответа
Микросервисы
Это плохое имя, которое начали использовать примерно в 2013-2014 годах. По сути, это означает сервисную архитектуру — у вас есть архитектура, состоящая из нескольких сервисов. Самое главное здесь то, что сервисы могут принадлежать разным командам и разрабатываться, тестироваться и развертываться независимо от других команд и сервисов.
«Функции»
Это может быть AWS Lambda , Azure Functions, Google Cloud Functions, Google Cloud Run или Kubernetes Knative . Термин «Функции» здесь в основном является маркетинговым термином. Вы можете развернуть код, состоящий из одной или нескольких функций (как и любой другой код). Но обычно он работает только в течение ограниченного времени, имеет штраф за холодный запуск, обычно он развертывается только по запросу, когда вы получаете событие, и вы обычно платите только за время работы.
«Бессерверный» — это еще один маркетинговый термин, обозначающий то же самое.
По моему скромному мнению, микросервисы и бессерверные технологии — это две антагонистические парадигмы работы в облаке (на момент написания статьи 2023 год).
Современный подход к микросервисам обычно включает Kubernetes, а для бессерверных технологий (это синоним Lambda & Functions) вы можете использовать Google Cloud Functions или AWS Lambda.