小熊科技|如何基于K8s构建下一代DevOps平台?( 四 )


小熊科技|如何基于K8s构建下一代DevOps平台?OAM Trait灵活解决资源绑定难题
启动顺序厘清之后涉及到资源绑定问题 , 一边是使用的数据库 , 另一边是Web的程序 , Web的程序绑定数据库连接串资源 。 在OAM中只需要写一个Trait就可以解决资源绑定问题 , 下图右边 , K8s通过Secret承载连接串信息 , Service Binding Trait对应一个运行的Operator , Web Hook拿到Secret后注入进数据库中 。
小熊科技|如何基于K8s构建下一代DevOps平台?Workload与Trait交互机制
大家会考虑接入OAM会不会比较麻烦 , 需不需要改代码 。 OAM设计了Workload与Trait交互机制 , OAM内部零改造 , 只需要扩展Workload和Trait 。 首先 , Component中创建Workload实例 , 再创建Trait实例 , 只需要在Trait中查看Workload的Definition , 从而配置Trait中需要的能力 。
小熊科技|如何基于K8s构建下一代DevOps平台?OAM内核零改造 , 插件式快速接入新能力
如果开发了新的能力 , 碰到冲突问题也是非常头痛的 。 在OAM框架中定义Trait时 , 可以检查哪些字段是冲突的 , 拒绝掉新的应用的创建 , 从而保障Trait之间的兼容性 , 使得运维问题可发现、可管理 。
小熊科技|如何基于K8s构建下一代DevOps平台?可发现、可管理的 Traits 系统
OAM:无限能力的DevOps平台体系
下图是DevOps平台体系 , 最下层是OAM Runtime , 一部分是Workload , 对应运行时的承载的Runtime , 如Function、Container、虚拟机、Serverless Service等 。 另一部分是Trait , 对应运维能力 , 如发布、弹性扩缩容、日志、安全等等 。 再上一层可以根据场景化组合(Application Profile)组装成不同的业务形态平台 , 不同平台可以使用不同组合的Workload和Trait , 具备不同的能力 。 通过OAM标准化的模型构建无限能力的DevOps平台 , 满足各种场景的需要 。
小熊科技|如何基于K8s构建下一代DevOps平台?【小熊科技|如何基于K8s构建下一代DevOps平台?】在用户侧 , OAM加持下的研发DevOps流程在镜像构建完成之后使用达到统一 , OAM提供了APP Config , 包含不同的Component , 每个Component包含不同的运维能力Trait , 支持不同的环境 , 如测试环境、生成环境 。 OAM配置统一 , 适合不同的云 , 可以拿到不同的集群中直接运行 。 在K8s侧 , 用户只需要装上插件 , 就可以很方便的嵌入很多丰富的能力 。
小熊科技|如何基于K8s构建下一代DevOps平台?


推荐阅读