AWS 的开源贡献 - Bottlerocket、Firecracker、Cedar、OpenSearch 的战略意义
解析 Bottlerocket、Firecracker、Cedar、OpenSearch 等 AWS 主导的开源项目的技术特征,以及 AWS 开源战略的独特性。
AWS 开源战略的全貌
AWS 在云厂商中展开独特的开源战略。Google 创造了 Kubernetes 和 TensorFlow 等成为行业标准的开源项目,Microsoft 通过收购 GitHub 和 .NET 开源化加强与社区的关系,而 AWS 采取的是将自身服务的基础技术作为开源公开的方式。Firecracker 支撑着 Lambda 和 Fargate,Bottlerocket 是 ECS/EKS 的推荐 OS,Cedar 是 Verified Permissions 的核心——这些都是 AWS 服务实际使用的技术被开源化的案例。
Firecracker - 支撑无服务器的轻量 VM
Firecracker 是 AWS 开发的轻量虚拟机监控器(VMM),作为 Lambda 和 Fargate 的执行基础使用。与传统 VM 相比启动时间不到 125 毫秒,内存开销也被控制到最小。在 KVM(Kernel-based Virtual Machine)上运行,兼具容器般的轻量和 VM 级别的安全隔离。Firecracker 的开源化意味着任何人都可以构建与 Lambda 相同的安全隔离执行环境。实际上 Kata Containers 等项目已经集成了 Firecracker 作为后端。
Bottlerocket - 容器专用 OS 的设计思想
Bottlerocket 是 AWS 开发的容器工作负载专用 Linux 基础 OS。与通用 OS 不同,排除了容器运行不需要的包和工具,最小化攻击面。没有包管理器,OS 更新通过整体镜像替换进行,采用不可变设计。更新时通过分区 A/B 切换,出现问题时可以立即回滚。这种设计使得安全补丁的应用可以自动化且安全地进行。Bottlerocket 的 API 驱动管理模型排除了 SSH 登录进行手动操作的需求,适合大规模容器环境的运维。
Cedar - 声明式授权策略语言
Cedar 是 AWS 开发的授权策略语言,是 Amazon Verified Permissions 的基础技术。传统的授权逻辑容易散布在应用代码中,而 Cedar 将策略从代码中分离,可以声明式地描述。策略语法设计为人类可读,以「谁」「对什么」「可以做什么」的结构清晰表达权限。Cedar 的形式化验证工具可以数学证明策略间不存在矛盾或意外的权限泄露。这种严谨性在金融和医疗等合规要求严格的领域尤为重要。
OpenSearch - 从分叉到独自进化
OpenSearch 是 2021 年 AWS 从 Elasticsearch 和 Kibana 分叉创建的项目。在 Elastic 公司将许可证变更为 SSPL 后,AWS 在 Apache 2.0 许可证下公开了 OpenSearch。分叉初期维持与 Elasticsearch 7.10 的兼容性,之后添加了独自功能(安全分析、可观测性集成、ML 推理等),作为独立项目进化。OpenSearch 的案例展示了 AWS 开源战略的另一面——当上游项目的许可证变更威胁到用户的自由时,AWS 会分叉并维护开源替代方案。这对依赖开源软件的用户来说是安全网,但也引发了关于 AWS 与开源社区关系的争议。要深入了解开源和云原生技术,相关书籍 (Amazon) 也可作为参考。
AWS 开源战略的意义
AWS 的开源战略是通过公开自身服务的基础技术来提高透明性和可信度的方式。Firecracker 和 Bottlerocket 等基础技术的开源化,为用户提供了理解 AWS 服务内部运作并在需要时在自己环境中使用相同技术的选择。另一方面,AWS 在 Elasticsearch 分叉(OpenSearch)中展示的姿态也引发了争议。批评者认为 AWS 利用开源社区的成果获利却贡献不足,支持者则认为 AWS 通过维护开源替代方案保护了用户的选择自由。无论如何,AWS 的开源项目在生产环境中经过验证的品质和持续的维护投入,是不争的事实。