小熊科技|如何基于K8s构建下一代DevOps平台?( 三 )
- 难以理解 , 必须通过界面可视化透出
- 无法复用 , 几乎不具备原子化能力
- 无法协作 , 只能内部封闭生态使用
Component组件
OAM中常见的概念是Component组件 , 完全从研发角度定义的待部署单元 。 下图右侧是YAML中Component的例子 , 其中黄色部分可以灵活自定义 。 OAM中会定义标准的架构ContaineriseWorkload , 表示工作负载部分 , 里面是待部署单元的具体描述 。 这时就可以解决关注点分离的问题 , 帮助应用侧工程师去掉很多细节 , 只需要关心开发需要关注的端口号 , 镜像等等 。
应对挑战一 , 在OAM中可以定义数据库表达资源需要使用云资源 , Workload中可以根据自己的需要定义不同的组件 , 包括基于虚拟机的应用、或者老的Function应用 。 组件是应用开发者关心的 。
Trait
如果只是组件 , 组合起来就可以构建简单的应用 。 如果关心应用运维的问题 , OAM中有Trait的概念 , 指的是在原来组件的基础上附加一些特征 。 特征指的是运维的能力 , 如手动扩缩容能力、外部访问能力、发布、负载均衡 。 弹性扩缩容、基于流量的管理等等 。 通过OAM的Trait可以很灵活的得到插件化扩充能力 。 不同的component绑定不同的特征 。
Scope
Component , Trait以及所有组装起来的Application Configuration就是OAM中的三种主要的概念 。 但当多个组件共同协作时应该如何处理?OAM中有个边界Scope的概念 , 是一种特殊的Trait , 将多个Component组合在一起 , 共享一组资源组 , CPU等特征用Scope表示 , 拓展多个组件的共同特征 。
四 OAM加持下的下一代DevOps技术
OAM:以应用为中心的分层模型
OAM是以应用为中心的分层模型 , 首先需要运行在服务端的OAM解释器 , 对于YAML的读取需要通过OAM解释器 。 OAM提供Trait , Component让用户填写 , 编成APP Config 。 APP Config通过OAM解释器具备Deployment , Ingress , HPA或者云资源等能力 。 这种方法可以将研发、运维基于基础设施进行分层 , 研发关心Component , 运维关心Trait , 基础设施通过OAM解释器提供各种能力 , 与K8s紧密结合 , 对其应用概念做了补充 。
- 分层
- 模块化
- 可复用
OAM可以快速的纳入K8s生态已有的Operater能力 , 下图左边的Component中是一个CRD的实例 , 右边是Trait中的CRD的实例 , 中间表示Component底下的Workload和Trait分别对应了K8s自定义资源的能力 。 如果想要使用K8s中的某些能力 , 只需要在Trait中写入相应的字段即可 。
OAM框架解决组件依赖关系和启动顺序
OAM框架解决组件依赖关系和启动顺序 。 OAM Runtime , OAM解释器会将组件依赖关系和启动顺序处理好 , 下图中Component之间有dependency关系 , Trait与Component之间有preComponent或者postComponent等关系 。
推荐阅读
- 所持股份|万兴科技:公司控股股东、实际控制人吴太兵质押150万股
- 发布公告|数量过半!博创科技:天通股份累计减持约150万股
- 英雄科技聊数码|蔡崇信有实力买下篮网,那身价3200亿的马云,能买下几支NBA球队
- 湖人队|扎心?一张图看湖人如何应对马赛克三分雨,神龟5米范围没人理他
- 搜狐新闻|准大学生数码三件套如何选?这些元气好物值得种草
- 科技前沿阵地|涨疯了!海思安防芯片遭哄抬“围剿”
- 想好好做医生的胖子|五十岁女性经常有周身无力和疼痛的困扰!该如何应对?医生告诉您
- 儿童饮食|秋冬季如何让宝宝爱上吃水果?稍微蒸一下美味翻倍,营养价值更高
- 队员|北极科考中“遭遇”北极熊,看科考队员如何与它们和谐相处
- 中国历史发展过程|中国历史发展过程!中国游戏外挂发展史:“辅助工具”是如何成长为“苍