Они служат разным целям. Если вы хотите иметь горизонтальную масштабируемость на уровне "ec2 / pod / container" и обрабатывать доступность самостоятельно (конечно, через k8s), перейдите на Kubernetes.
Если у вас есть прямолинейная функция, выполняющая определенную функцию, и вы не хотите беспокоить себя эксплуатационными расходами, связанными с управлением кластером или его упаковкой, то вы можете позволить Lambda справиться с этим за вас (во время писать, вы бы заплатили 20 центов США за миллион вызовов). Это просто еще одна абстракция в верхней части системы, которая, вероятно, аналогична Kubernetes, масштабирующей вашу функцию в соответствии с потребностями.
Целью всех этих технологий, предоставляемых крупными облачными провайдерами, является устранение любых накладных расходов между вами и кодом. Инфраструктура самая плохая. Безсерверность для Кубернетеса - это то же, что Кубернетес для контейнера.
Чтобы принять решение, примите во внимание следующее:
- Включает ли ваш бюджет эксплуатацию и обслуживание инфраструктуры
- Есть ли у вас опыт в Куберне
- Сколько будет стоить преобразование вашего J2EE-приложения в готовый код без сервера
- Ваш график (конечно ...)
- Исходя из ресурсов AWS, которые вы будете использовать, сколько вы экономите или нет, внедряя кластер k8s (служба базы данных ?, EBS, EC2s и т. Д.)