社区首款 OAM 可视化平台发布!

头图.png

作者 | 徐运元,杭州谐云科技合伙人及资深架构师,云计算行业和 Kubernetes 生态资深从业者

导读:什么是 OAM?2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 QCon 上海 2019 重磅宣布,阿里云与微软联合推出开放应用模型 Open Application Model (OAM)开源项目。

OAM 的核心关注点

  • 关注点分离:开发者关注应用本身,运维人员关注模块化运维能力,让应用管理变得更轻松、应用交付变得更可控;
  • 平台无关与高可扩展:应用定义与平台层实现解耦,应用描述支持任意扩展和跨环境实现;
  • 模块化应用运维特征:可以自由组合和支持模块化实现的运维特征描述。

OAM 的核心模块

1. 应用组件(Components)

在 OAM 中,“应用”是由多个概念共同组合而成。第一个概念是:应用组件(Components),它是整个应用的重要组成部分。应用组件既可以包括应用运行所依赖的服务:比如 MySQL 数据库,也包括应用服务本身:比如拥有多个副本的 PHP 服务器。开发者可以把他们写的代码“打包”成一个应用组件,然后编写配置文件来描述该组件与其他服务之间的关系。

应用组件的概念让平台架构师等能够将应用分解成一个个可被复用的模块,这种模块化封装应用组成部分的思想,代表了一种构建安全、高可扩展性应用的最佳实践:通过一个完全分布式的架构模型,实现了应用组件描述和实现的解耦。

2. 应用部署配置文件(Application Configuration)

为了将这些应用组件描述变成一个真正运行起来的应用,应用运维人员会通过一个专门的、包含了所有应用组件信息的部署配置文件来实例化这个待运行的应用。这个配置文件本身也是 OAM 规范中的一个声明式 API,用来让应用运维人员能够根据开发者或者平台提交的应用描述,实例化出对应的、真正运行起来的应用。

3. 应用运维特征(Traits)

最后一个概念是一组应用运维特征(Traits),它们描述了应用在具体部署环境中的运维特征,比如应用的水平扩展的策略和 Ingress 规则,这些特征对于应用的运维来说非常重要,但它们在不同的部署环境里却往往有着截然不同的实现方式。 举一个简单的例子,同样是 Ingress,它在公有云上和本地数据中心的实现可能完全不同:前者一般是 SLB 这样的云服务,而后者则可能是一个专门的硬件。这也就意味着针对这两个环境的 Ingress 运维工作,将会有天壤之别。 但与此同时,无论是在哪个环境里,这个 Ingress 规则对于应用开发人员来说,可能是完全相同的。

应用特征的设计,让这种关注点分离成为可能:只要这两个环境在 OAM 模型下提供了对 Ingress 这个应用运维特征的实现,那么应用就可以使用统一的 Ingress 规则描述,无差别地在这两个地方运行起来。与此同时,这两个环境的基础设施供应商可以继续通过配置这些应用特征的实现,来满足它们各自的运维要求(例如:不同环境里 Ingress 实现在满足合规性和安全性上的差异)。

一个基于 OAM 的可视化实现介绍

目前该平台主要基于 OAM 的 V1 alpha1 版本实现,并且对于 OAM 的核心理念进行的抽象和封装,以更符合用户的使用习惯。在本文介绍的可视化部分背后,是完整的 OAM 格式的 yaml 文件。可视化 OAM 平台主要包含两大核心功能: 

1. 运维特征模型

运维特征模型主要是针对 OAM 的 Traits 的具体实例化,让用户可以把复杂的一些运维特性可以直接以插拔的形式直接让应用发布者去使用。目前平台已经封装了包含服务发布、日志搜集、自动伸缩、存储挂载等 8 个运维特征的封装。

1.png
图 1 运维特征模型仓库

2. OAM 应用编排

OAM 应用编排功能将 OAM 的应用发布全流程进行了可视化的实现,将应用组件添加、配置文件修改以及运维特征添加等 OAM 的核心功能进行了抽象和封装。OAM 应用编排目前包含以下核心功能:

  • 组件编排: 可视化添加平台的组件并且进行组件的参数设置;
  • 运行特征编排:在添加的平台组件基础上进行运维特征的添加和编排(也为后续开发、运维关注点分离做准备);
  • OAM 版本管理:平台会保存所有的 OAM 发布版本,并且提供升级和回滚功能。

2.png
图 2 OAM 应用编排主界面

接下来,我们会以一个典型应用(nginx+tomcat+redis)的部署来全面解析,如何在平台上进行 OAM 的可视化发布。

前置条件

运维特征(Traints)应用模型已安装,在界面上,可以快速查看有哪些运维特征应用模型,以及它们的运行状态。当前只支持系统定义的运维特征,后续会开发自定义的运维特征的生命周期管理。让用户可以编写自己的运维特征并且安装到平台进行使用。

3.png

OAM 应用创建流程

OAM 应用基本发布流程:应用创建->新增组件->应用编排->保存版本->发布应用。

  • 创建应用: 点击应用->OAM 应用菜单, 点击【创建应用】按钮,输入必填项;
  • 添加组件: 点击【新增组件】按钮,设置工作负载类型,容器配置等;

选择想要创建的工作负载类型,目前已经将 Server、Singleton Server、Task、Singleton Task、Worker 以及 Singleton Worker 等六种核心的工作负载进行了封装,用户只需要在下拉框中勾选自己想要创建的负载类型即可。

4.png

在选择完负载类型之后,用户可以以可视化的形式去选择想要发布的镜像以及容器的基本配置参数。同时,目前也支持基于多个容器的编排发布。

5.png

  • 根据我们的需求,我们依次添加 tomcat、redis、mysql 三个组件,在界面上就可以看到组件的状态,同时点击“详情”可以看到对应的 Kubernetes 资源信息;

6.png

查看组件的详细信息。

7.png

  • 应用编排:在创建完需要部署的组件之后,我们的 OAM 应用已经具备了开发的属性。

之后我们需要根据需求给每一个组件添加运维特征:点击进入应用编排界面,你可以看到刚才添加的组件已经展示在画布之上;在画布上点击单个组件,可以看到目前适合该组件的运维特征,勾选你所需要的运维特征即可快速添加;在添加完运维特征之后,会在右边栏弹出运维特征的配置参数,配置保存之后这些运维特征即可生效;

8.png

  • 在添加完所有组件的运维特征之后,我们就可以看到一个完整的编排完的 OAM 应用了。在 OAM 的 V2 版本,我们同时会再增加应用的依赖关系,用户可以通过拖拽和连线来实现应用之间的依赖编排;

9.png

  • 保存版本:最后,我们可以点击【保存当前内容为版本】按钮,输入版本号,点击【确定】;

10.png

  • 发布应用:点击【发布】按钮,发布应用

发布应用后,组件状态显示‘已实例化’。应用实例状态显示“健康”。

11.png

点击事件 tab 页,显示事件。

12.png

用户可以快速查看已经创建的 ingress,并且进行访问。

13.png
14.png

  • 用户可以通过修改 traints 信息,快速对当前的应用进行修改和升级。

点击进入应用编排界面,并且编辑 tomcat 实例数为 4。

15.png

将编辑后的版本,保存为当前版本则会直接讲修改的配置更新到当前实例。如果选择保存为新版本,则会将当前配置修改保存为模板,等待发布。我们将此修改保存为新版本。

16.png

点击更新为此版本,进行刚才修改的配置发布。发布完成之后,我们可以看到有两个版本的 OAM 应用模板。

17.png
18.png

查看详情,确认 tomcat 实例数已经变更为 4,但是由于我们同时设置了自动扩缩容的实例为 3,因此在扩容之后又迅速变回实例 3。

19.png

至此,一个完整的部署和更新 OAM 应用的可视化流程就演示完了。

总结

如今 OAM Spec 已经迭代到了 v1alpha2 版本,新版本在坚持 OAM Spec 平台无关的基础上,整体变得更 Kubernetes 友好化,很大程度上平衡了标准与可扩展性,更好的支持已有的 CRD。也就是说,如果你已经编写了现成的 CRD Operator,可以平滑的接入到 OAM 体系中,并且享受到 OAM 模型的红利。

更详细的新版本介绍可以阅读《OAM v1alpha2 新版发布:平衡标准与可扩展性,灵活接入 CRD operator》。

该可视化平台也已经在全面升级到 v1alpha2 的过程中,新版的支持可以更好的允许用户编写插件扩充平台的功能。

该平台来自于阿里云战略合作伙伴杭州谐云科技,该平台基于 OAM 实现的开源版本也已经在路上,大家敬请期待。

  • OAM 平台试用网址:http://139.196.197.117:30088/ 用户名/密码: admin/Ab123456
  • Demo 中所有的 yaml 文件请访问 github 地址查看: https://github.com/harmonycloud/oam-simple-demo

目前,OAM 规范和模型实际已解决许多现有问题,但它的路程才刚刚开始。OAM 是一个中立的开源项目,我们欢迎更多的人参与其中,共同定义云原生应用交付的未来。

杭州谐云科技有限公司成立于 2016 年 7 月,公司核心团队来自于浙江大学 SEL 实验室,谐云团队在云计算及相关领域具备深厚的技术积淀,在全球顶级开源社区 Docker、Kubernetes、Cloud Foundry 等项目贡献累计超过 200 万行代码,排名全球第四,国内第一。团队曾著书中国第一本深度解析容器云的专业书籍《Docker 容器与容器云》,是国内为数不多掌握底层核心技术的容器云提供商。建设了目前中国最大的容器集群落地案例,支撑着国内最大的互联网电视云。

课程推荐

为了更多开发者能够享受到 Serverless 带来的红利,这一次,我们集结了 10+ 位阿里巴巴 Serverless 领域技术专家,打造出最适合开发者入门的 Serverless 公开课,让你即学即用,轻松拥抱云计算的新范式——Serverless。

点击即可免费观看课程:https://developer.aliyun.com/learning/roadmap/serverless

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux:根据关键字或日期查找日志

文章目录脚本11. 脚本描述2. 要点3. 格式4. 脚本原型5. shell脚本6. 效果图脚本22.1. 脚本描述2.2. 要点2.3. 格式2.4. 脚本原型2.5. shell脚本2.6. 效果图脚本1 1. 脚本描述 查询指定日志文件中是否包含指定的关键词的日志信息 2. 要点 包含则输出包含的关建行所在日志信息…

Go 语言成为最受欢迎的语言

<关注阿里巴巴云原生公众号&#xff0c;回复 Go 即可下载清晰知识图谱> 对 Go 语言感兴趣但又不知从何学起的同学&#xff0c;可以参考一下 Go 语言系列文章&#xff1a; 为什么你要选择 Go&#xff1f;Go 面向失败编程带着服务器编程金刚经走进 2020 年敢问路在何方&a…

如何在DevSecOps道路上快速、安全地抵达终点

作者 | 吴翔责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国近年来&#xff0c;移动互联网的迅猛发展给人们带去不少便利&#xff0c;在软件安全领域内&#xff0c;一种名为敏捷开发的模式正悄然流行&#xff0c;而可打破业务隔离、提高效率的DevOps&#xff08;开发…

构建更动态更灵活的分布式计算生态

0. 前言 作为阿里巴巴核心大数据底座&#xff0c;伏羲调度和分布式执行系统&#xff0c;支撑着阿里集团内部以及阿里云上大数据平台绝大部分的大数据计算需求&#xff0c;在其上运行的MaxCompute(ODPS) 以及PAI等多种计算引擎&#xff0c;每天为用户进行海量的数据运算。 在&q…

企业微信H5_身份验证,H5应用网页授权登录获取身份

文章目录一、调用流程1. 企业微信OAuth2接入流程2. 使用OAuth2前须知3. 构造网页授权链接4. 获取访问用户身份二、调试前准备2.1. 配置域名映射2.2. 跨域域名请求2.3. 设置可信任域名2.4. 登录企微2.5. 选择自建应用三、实战演练3.1. 前端编码触发后端api3.2. 后端构造授权链接…

Istio 网关之南北向流量管理

作者 | 王夕宁 阿里巴巴高级技术专家 参与阿里巴巴云原生公众号文末留言互动&#xff0c;有机会获得赠书福利&#xff01; 本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书&#xff0c;文章介绍将集群外部的客户端连接到集群内运行的服务&…

想在边缘运行计算机视觉程序?先来迎接挑战!

作者 | alwaysAI翻译 | 火火酱~&#xff0c;责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国人工智能可以让计算机聪明地行动&#xff0c;并且在真实环境中快速做出决策&#xff0c;同时收获相对理想的效果。当然&#xff0c;这个概括性的定义较为宽泛和模糊&#xf…

企业微信_通讯录管理,获取部门列表部门成员及详情

企业微信H5_通讯录管理,获取部门列表部门成员及详情 文章目录一、POSTMAN调试1. 获取access_token2. 获取部门列表3. 获取部门成员4. 获取部门成员详情5. 获取成员详情二、实战演练2.1. 获取部门列表2.2. 获取部门成员2.3. 获取部门成员详情2.4. 获取人员详情三、代码讲解3.1.…

【深度学习】基于 Alluxio 数据缓存的性能优化

作者 | 车漾&#xff08;阿里云高级技术专家&#xff09;、顾荣&#xff08;南京大学 副研究员&#xff09; 导读&#xff1a;Alluxio 项目诞生于 UC Berkeley AMP 实验室&#xff0c;自开源以来经过 7 年的不断开发迭代&#xff0c;支撑大数据处理场景的数据统一管理和高效缓…

企业微信H5_身份验证,PC网站企业微信扫码授权登录

企业微信H5_身份验证,PC网站企业微信扫码授权登录 文章目录一、扫码登录配置1. 企业微信扫码登录接入流程2. 企业微信扫码登录接入流程拆解3. 开启网页授权登录二、实战演练2.1. 用户发起流程2.2. 构造授权链接2.3. 显示扫码二维码2.4. 用户扫码2.5. 用户确认登录2.6. 回调前端…

深根固柢 云起磐石——移动云大云磐石服务器重磅推出

中国移动云能力中心在2020年中国移动全球合作伙伴大会移动云分论坛上&#xff0c;发布了新型自研软硬融合弹性计算架构——大云磐石服务器。该架构以自主设计的可编程芯片HyperCard和轻量级Hypervisor为核心&#xff0c;将存储、网络虚拟化能力卸载到硬件芯片&#xff0c;彻底突…

面向大数据与云计算调度挑战的阿里经济体核心调度系统

编者按 伏羲&#xff08;Fuxi&#xff09;是十年前最初创立飞天平台时的三大服务之一&#xff08;分布式存储 Pangu&#xff0c;分布式计算 MaxCompute&#xff0c;分布式调度 Fuxi&#xff09;&#xff0c;当时的设计初衷是为了解决大规模分布式资源的调度问题&#xff08;本…

企业微信_读取成员(获取用户详情)

接上一篇&#xff1a;企业微信H5_身份验证,H5应用网页授权登录获取身份 这篇获取用户详情信息,是在上一篇&#xff08;我们已经获取到用户的简要信息&#xff09;基础上做的。 文章目录一、官网文档1. 阅读官网文档2. 接口地址和参数3. 重点说明二、实战演练三、代码讲解3.1. 获…

智算中心新基建 浪潮首发智算中心操作系统

2020年11月25日&#xff0c;“远见卓实 践所未见”浪潮云海创新论坛2020在济南召开。会议分享了浪潮对于前沿科技的创新洞见&#xff0c;并以扎实可靠的落地实践为用户呈现技术的商业价值。 会上&#xff0c;浪潮全球首发智算中心操作系统&#xff0c;信通院、OIF、Globaldata…

新基建来了!5G边缘计算如何展现勃勃生机?

最近“新基建”是个热词&#xff0c;那么新基建到底是什么&#xff1f;与之紧密相关的5G何去何从&#xff1f;这给边缘计算带来了什么机遇&#xff1f;边缘计算的生态产业链条是怎样的&#xff1f;它的典型特征和经济效益是什么&#xff1f;本文将为大家带来分享。 新基建是什…

企业微信H5_网页jssdk调用,ticket签名config及示例

文章目录一、验证域名归属校验1. 阅读文档2. 配置公网域名3. 登录企业微信管控台4. 选择自建应用5. 网页授权及JS-SDK6. 填写公网域名7.下载校验文件8. 校验文件移动9. 启动前端项目10. 浏览器校验11. 域名校验12. 应用主页二、前端代码实战2.1. 引入JS文件2.2.权限验证配置三、…

十强决赛即将拉开帷幕!TECHSPARK星星之火IT创新大赛诚邀您观赛

11月28日&#xff0c;作为湾区创见网络安全大会的重磅环节&#xff0c;TECHSPARK星星之火IT创新大赛十强决赛将拉开帷幕。在本次十强决赛中&#xff0c;参赛公司将进行项目路演&#xff0c;评委将按照技术、产品、市场与客户等维度进行评分&#xff0c;并最终评选出冠亚季军。获…

阿里云容器服务发布 Knative 托管服务

作者 | 何淋波、丁海洋、陈有坤 业界要闻 阿里云容器服务发布 Knative 托管服务 Knative 是 Kubernetes 生态最流行的 Serverless 编排框架。可 Knative 的 Controller 和依赖的网关这些常驻实例需要支付额外的 IaaS 成本和运维成本&#xff0c;这给应用的 Serverless 化带来…

企业微信H5_网页jssdk调用 判断当前客户端版本是否支持指定JS接口

接上一篇&#xff1a;企业微信H5_网页jssdk调用&#xff0c;ticket签名config及示例https://gblfy.blog.csdn.net/article/details/123170569 文章目录一、接入环境1. 阅读文档2. 接入要求二、前端接入和调试2.1. 代码效果2.2. 实战演练2.3. 信息分析2.4. 真实用途三、源码分享…

Apache RocketMQ 的 Service Mesh 开源之旅

作者 | 凌楚 阿里巴巴开发工程师 导读&#xff1a;自 19 年底开始&#xff0c;支持 Apache RocketMQ 的 Network Filter 历时 4 个月的 Code Review&#xff08;Pull Request&#xff09;&#xff0c;于本月正式合入 CNCF Envoy 官方社区&#xff08;RocketMQ Proxy Filter 官…