摘要: 通过RDC和容器服务的集成,很好的解决了从代码提交到发布上线,及多环境流水线部署等问题
容器服务
阿里云容器服务提供了从容器构建到部署的服务。再此基础之上还提供了一系列的阿里云其它服务的集成和扩展,比如监控、日志、负载均衡等。
Devops解决方案
先探讨一下我们期望的Devops研发流程是什么样子。
Devops需求
对于一个应用A(非容器服务中的应用,而是RDC中的应用的概念),会考虑下面的点:
- 在进行镜像构建时,我希望运行测试;对于Java之类的编译型语言,我还需要打包。但我不希望把运行测试和进行构建的依赖(比如maven),放入镜像中。目前容器服务提供的构建服务仅支持
docker build
命令,因此无法在镜像构建之外再做上述的工作。 - 多套环境的需求,比如
testing
,staging
,production
三个环境。容器服务本身并没有环境的概念。一种可能的方式是创建三个集群,分别对应上述的三个环境。但是这个环境是集群级别的,而不是服务级别的(通常一次发布是更新一个服务)。 - 对于正常的开发流程(hot fix另说)而言,我希望某个镜像先上
testing
,验证通过之后上staging
,再验证通过之后上production
。需要有一个CD流水线来现实化这个过程。 - 如果发布出了问题,我也希望可以快速的把某个服务回滚到之前的版本。容器服务没有回滚的概念,只有变更应用配置的概念。也就是说,用户需要记得(或者通过操作日志查询)上一次发布的镜像版本是什么,然后通过变更应用配置的入口,进行操作。
- 我希望在不同环境使用同一个镜像,通过环境变量来区分不同的环境。容器服务是支持的,详见查看服务详情中的配置部分
可以看到对于上述的点,单用容器服务,有些无法很好的解决。下面看看结合了RDC之后是如何解决这些问题的:
基于RDC和容器服务的Devops模式
创建应用
为了满足Devops需求中的第四点,目前需要选择自由模式
和Git Flow模式
。分支模式
后续也会支持。关于这几种模式的区别,可以参看研发模式 。
发布流水线
创建好应用,进入发布页面后,可以看到RDC预置了三个环境(日常,预发,部署),并且在正常的开发流程中,每次代码变更需要依次经过这三个环境。在这个流水线中,可以在独立的环境中进行软件包构建及单元测试等。详见:构建配置和容器构建配置 。
第一个stage
(版本制作),将三个环境的包和镜像都打出来。目前还不支持多个环境打一个镜像,后续RDC会支持。不过可以通过配置让三个环境的打包方式一模一样,从而达到多个镜像,但内容相同的效果。
RDC和容器服务的概念映射
RDC中有应用和环境的概念,容器服务中有集群、应用和服务的概念。这里明确一下它们之间的对应关系。
容器服务中的集群和服务在RDC中没有对应概念。
RDC中的应用(后面均称为RDC应用
),是一个可以独立提供服务的应用程序及其相关信息的结合。“独立提供服务的应用”这个概念与容器服务中的服务相对应,但又不是完全匹配,事实上和容器服务的一个服务对应的是RDC中的一个环境。在RDC中这种关联关系是通过环境的部署配置完成的。如图:
更多信息,详见容器构建和部署中的部署配置
。
回滚
在流水线的右上角有一个回滚按钮,点击之后,就可以针对特定的环境进行回滚。至于该环境具体对应到哪个集群的哪个应用的哪个服务,只需要一次性配置好,之后就不需要关心了,只关注container-test-rdc
这个RDC应用
的不同环境的发布即可。RDC会记住某个环境的某次发布所对应的镜像地址是什么,并在回滚时,自动替换掉模板中对应服务的镜像地址,进行一次重新部署。
基于RDC和容器服务的Devops模式的一些限制
可以看到,通过RDC和容器服务的集成,很好的解决了从代码提交到发布上线,及多环境流水线部署等问题。但目前还存在一些局限,这些局限会很快解决掉。
- 对于发布,只支持普通发布,不支持蓝绿发布。
- 对于应用,只支持通过模板创建的应用,不支持通过镜像创建的应用。
- 不支持多个环境打一个镜像。
其它Devops方案
基于容器 HUB 的持续交付和基于 Jenkins 的持续交付。
查看详细容器构建和部署详细操作,点此查看
作者:阿里云RDC的持续交付技术专家 崔力强(怀虎
相关推荐
标签“rdc”和“远程桌面”进一步强调了该软件的主要功能,即远程桌面连接服务。RDC是微软的远程桌面协议(Remote Desktop Protocol)的缩写,这是一种高效且安全的协议,用于传输音频、视频和键盘/鼠标输入,确保...
RDC8820指的是一款16位RISC微控制器,这意味着它具备精简指令集计算机(RISC)的特性,能够提供指令集和执行效率优化的功能。RISC微控制器通常被设计用于提供较快的执行速度和较高的代码密度,适用于多种控制应用。...
"rdc for Mac" 是一款专为苹果Mac操作系统设计的远程桌面连接工具,它允许用户通过网络连接并控制其他计算机,通常...同时,对于企业环境,管理员还需要考虑如何部署和管理远程桌面服务,以保证组织内部的安全和效率。
而“AP32720_Dsadc_Rdc_TC27xC_Openloop.zip”可能是一个包含源代码和配置文件的工程包,用于在开放环路条件下执行DSADC的RDC功能。这个工程可以为用户提供了实践DSADC模块和RDC功能的平台,帮助开发者理解如何将...
本文将详细探讨“MAC FOR RDC”这款专为Mac用户设计的免费远程桌面连接工具,以及其核心功能和使用方法。 标题中的“MAC FOR RDC”指的是Mac版本的Remote Desktop Connection(RDC),它允许用户从苹果操作系统远程...
### 如何利用Aurix的DSADC模块来完成RDC功能 #### 一、概述 在现代电机控制领域,特别是高精度伺服系统中,对于旋转角度的精确测量至关重要。旋转变压器(Resolver)作为传统且可靠的角度检测元件,在诸多行业中...
总的来说,“简单的Java窗体设计(RDC计算程序)”提供了一个很好的起点,让Java初学者能够逐步掌握如何构建和操作GUI应用程序。通过实践这个项目,不仅可以提升Java编程技能,还可以对Java Swing和事件处理有更深入...
在《如何利用Aurix的DSADC模块来完成RDC功能.pdf》文档中,会详细阐述这些概念和实施步骤,并可能包含实际示例代码、电路设计和调试技巧,帮助读者更好地理解和应用Aurix的DSADC功能于RDC系统中。
Microsoft Remote Desktop Management(RDC Management),通常称为RDCMan,是一款由微软开发的强大工具,专为IT专业人员设计,用于集中管理和控制多台远程桌面连接。 **RDCMan的特点和功能** 1. **集中式管理**: ...
RDO+RDC 远程管理工具
RDC-DD(充电桩A+6标准) 62955(1)
标题与描述概述的知识点主要涉及巴西最新的药品生产质量管理规范(GMP)标准——决议RDC N°17,于2010年4月16日发布。此标准旨在为药品制造设定最低要求,以标准化卫生监督过程中的GMP合规性检查。以下是对标题、...
- 持续集成/持续部署(CI/CD):在构建和部署过程中,使用RDC进行代码、配置文件等的版本控制和同步。 - 分布式系统中的数据交换:在多节点、多区域的环境中,通过RDC实现节点间的数据交换。 Python库的使用通常涉及...
自动重连功能和以会话为单位的时间区支持也大大提升了用户体验。 2. **打印优化**:所有VC流量现在都经过压缩,内核模式打印机驱动器被锁定,确保打印效率和质量。此外,所有服务器SKU中的远程桌面都支持远程管理...
【瑞萨RDC旋变应用笔记】主要针对RH850/C1M-A微控制器中的R/D(Resolver/Digital)转换器(RDC3A...在实际应用中,结合笔记的指导,工程师可以更好地利用RDC3A的功能,优化系统性能,满足高性能定位和运动控制的需求。
在该方案中,重点介绍了基于RDC芯片的解码电路,包括其外围电路设计和激励驱动电路的设计,以及如何处理检测数据。利用Multisim软件对电路进行了仿真测试,仿真结果表明,该方案可提供一种有效的高精度、高可靠性...
在AD2S1210中,RDC模块实现了对电阻式编码器的高效读取,提供了优于传统模拟方法的精度和稳定性。 这篇资料集包含了关于AD2S1210的详细信息,包括数据手册、应用笔记和技术文档等,对于理解和使用这款器件至关重要...
企业级持续交付的目标是让整个团队快速地细化用户(产品经理)提出的想法,并按照增量的方式快速迭代,安全、迅速地将新的功能发布上线。这种方式可以让企业快速响应市场变化,提高产品的竞争力。 RDC:企业级持续...
RDC是一种集仓储、配送、流通加工、信息管理、客户服务等为一体的综合物流中心,旨在提高库存集约化、降低运输成本、加快产业资本的周转率、提高对客户的服务水平等方面的效益。 在物流系统中,RDC的选址是一个具有...