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 验证配置是否符合要求。
过去,www.jpbara.com开发团队往往不得不在两种方案之间做出选择:要么使用 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 用户正一边喝咖啡一边偷笑。
AWS推出CDK Mixins让基础设施抽象支持灵活组合
张小明
前端开发工程师
如何用Video2X三步将模糊视频无损升级到4K?AI视频增强完全指南
如何用Video2X三步将模糊视频无损升级到4K?AI视频增强完全指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/…
【文献速递】焦耳热驱动CuZn合金合成:98.4%法拉第效率开启自供能制氨新纪元
🏆 基本信息 📅 发表时间:2025年3月3日 📜 发表期刊:Nano Energy(IF31.077) 🎓 文章标题:Coupling Layered Spraying with Joule Heating to Achieve Efficient CuZn Alloy Synthe…
Spark性能分析器深度解析:Minecraft服务器性能监控的架构设计与实战应用
Spark性能分析器深度解析:Minecraft服务器性能监控的架构设计与实战应用 【免费下载链接】spark A performance profiler for Minecraft clients, servers, and proxies. 项目地址: https://gitcode.com/gh_mirrors/spark6/spark Spark作为一款专为Minecraft…
Bingsu/adetailer YOLOv8检测模型:针对人脸、人体与服装的多场景视觉解决方案
Bingsu/adetailer YOLOv8检测模型:针对人脸、人体与服装的多场景视觉解决方案 【免费下载链接】adetailer 项目地址: https://ai.gitcode.com/hf_mirrors/Bingsu/adetailer 在计算机视觉应用开发中,目标检测模型的性能与适用性直接影响最终系统的…
命令行工具自省:从黑盒调试到系统透视的必备技能
1. 项目概述:什么是命令行工具自省?如果你在终端里敲过命令,那你肯定用过命令行工具。但“自省”这个词听起来有点玄乎,它到底是什么意思?简单来说,命令行工具的自省,就是让工具自己“照镜子”&…
Pandas多维聚合实战:从SQL搬运工到业务解题者
1. 项目概述:为什么“多维聚合”不是Pandas进阶技巧,而是业务分析的生存技能我在银行风控部门干了七年,从刚毕业写SQL查数的分析师,到带三个人小团队做反欺诈模型的数据架构师。这七年里,我亲手重构过四套核心报表系统…