Serverless Framework - фигня для новичков. Подкупает тем, что минимальный пример реально маленький и просто заводится сходу. Ну и механизм автогенерации через serverless.ts тоже интересный.
Но, так как, во-первых, они скатились в говно, а также во-вторых если проект не игрушечный и-или заботится о безопасности и-или у вас джуны не умеющие в генерацию - то красивый серверлес-ямл скатывается в неподдерживаемые простыни CloudFormation.
AWS Amplify - тоже фигня для новичков. Подкупает тем, что не говорит, как работает, и можно тупо, не вникая в детали, прокликать туториал и сделать фулстек с TypeScript, Vue, GraphQL и шлюхами. Но на дистанции превращается в необходимость хакать нагенерированные простыни CloudFormation/CDK и в то что ваши разрабы так и не понимают как оно работает. «Какая-то магия». Одни идентификаторы окружений и спаривание с гитлабом чего стоят.
AWS SAM выглядит просто как «Serverless Framework, только от AWS». Те же недостатки, но зато поддерживается вендором и насколько можно судить ни в какое говно не скатывается.
AWS CDK во всем этом выглядит как единственно возможная альтернатива:
- Не простыни. Есть встроенные «конструкты» (VPC так конфетка вместо 18+ ресурсов) плюс можно лепить свое
- Поддерживается вендором
- Вендор поддерживает паритет фич с CloudFormation
- Из недостатков - это такое метапрограммирование, полумагический compile-time JavaScript, и разрабам придется научиться в phase distinction.
В-общем теперь стоит задача перенести все что сделано в проектах на Serverless и Amplify в CDK и посмотреть как оно будет на уровне PoC.
Из альтернатив только голый CloudFormation да Terraform. Но по ощущениям Terraform застрял в мире EC2 и контейнеров. так что наше serverless future там second-class.