开发者生态
evening
AWS 推出 CDK Mixins:让基础设施抽象支持灵活组合
2026-06-17
1 阅读
作者: Renato Losio
AWS 近日宣布推出 CDK Mixins ",这款 AWS CDK 的新功能,允许开发者为 AWS 资源添加安全控制、监控以及配置管理等可复用能力。Mixins 可以跨不同类型的 Construct 使用,从而提升基础设施代码的灵活性和复用性。 AWS 高级软件开发工程师 Michael Kaiser " 与 AWS 解决方案架构师 Momo Kornher " 表示: CDK Mixins 代表了我们对基础设施抽象方式的一次重要转变。通过将能力与 Construct 的具体实现解耦,Mixins 让开发者能够自由组合所需的基础设施能力。无论是为了第一时间使用新的 CloudFormation 资源而选择 L1 Construct,还是为了便利性使用 L2 Construct,亦或是为了满足企业级需求而构建自定义 Construct,都可以按需组合所需功能。 AWS Cloud Development Kit "(CDK)是一个开源的基础设施即代码框架,开发者可以通过 AWS CloudFormation 来定义和部署云资源。CDK 的模块化、可复用组件体系分为三个层级:L1 Construct 与 CloudFormation 资源一一对应;L2 Construct 在此基础上提供更高级的抽象和默认配置;L3 Construct 则进一步将多个资源组合成可复用的架构模式。这种设计带来了一个长期存在的取舍:一方面,开发者希望尽快使用 AWS 新发布的能力;另一方面,又希望享受高级抽象带来的便利。因此,团队往往需要对现有 Construct 进行大量定制,甚至重新实现自己的抽象层。 虽然 Kaiser 和 Kornher 在 5 月底的 AWS 博客中表示“很高兴宣布 CDK Mixins”,但实际上 AWS 早在今年 3 月便 已正式发布了这一功能 "。 CDK Mixins 已集成到 aws-cdk-lib 中,使用方式与开发者现有的 AWS 服务导入方式保持一致,并且能够同时作用于 L1、L2 和 L3 Construct。 在解释 CDK Mixins 与 CDK Aspects " 的区别时,Kaiser 和 Kornher 写道: Mixins 与 Aspects 互为补充;Mixins 会立即将功能应用到指定 Construct 上,而 Aspects 则会在合成(synthesis)阶段对某个作用域内的所有 Construct 统一执行规则检查。一个常见的使用模式是:利用 Mixins 完成资源配置,再通过 Aspects 验证配置是否符合要求。 过去,开发团队往往不得不在两种方案之间做出选择:要么使用 L1 Construct,以便第一时间获得 AWS 新功能支持;要么使用 L2 Construct,享受更完善的抽象能力和默认配置。但无论选择哪种方式,通常都还需要额外进行定制,才能满足安全和合规要求。ReeVo 超大规模云运营负责人 Monica Colangelo 解释了 Mixins 带来的变化 ": 想想 AWS 发布一个新功能时会发生什么。L1 Construct(例如 CfnBucket)立刻就能有支持,因为 L1 是根据 CloudFormation 规范自动生成的。而 L2 Construct(例如 Bucket)——也就是那些提供默认配置和便捷方法的高级抽象——往往要等 CDK 团队完成相应抽象实现,这一过程通常要花上几周甚至几个月 。因此,以前你只有两个选择:要么使用 L2 并干等到支持上线;要么退回到 L1,然后手动配置原本 L2 免费提供的各种能力。这显然不够理想。Mixins 改变了这一点。你可以为了第一时间使用新功能而选择 L1 Construct,再按需叠加所需行为。L1 与 L2 之间原本泾渭分明的边界,如今变得模糊得多了。 CDK Mixins 允许开发者通过 .with() 语法为 Construct 添加可复用功能和策略,从而在保持对新能力快速访问的同时,让基础设施代码更容易定制、更安全,也更易于维护。The Duckbill Group 首席云经济学家 Corey Quinn 则在自己的 新闻通讯 "中调侃道: 现在 CDK 有了 Mixins,因为显然 L1、L2 和 L3 Construct 还不足以让新手感到困惑。现在你可以在这三种 Construct 之间自由组合抽象层。听起来很棒,但等你回过神来就会发现自己是在用 TypeScript 生成 YAML,再通过 YAML 去部署 JSON,最终召唤出某种神秘存在。此时此刻,大概有 Terraform 用户正一边喝咖啡一边偷笑。 CDK Mixins 的相关文档 "目前已经发布在 GitHub 上。 查看英文原文: AWS Introduces CDK Mixins for Composable Infrastructure Abstractions - InfoQ "