持续部署的发展之路

简介: 从持续集成开始:开发和构建/测试,每次都产生一个工件。持续交付:从构建/测试到验收再到生产; 进入生产阶段是一个手动的过程,但代码是可部署的。最后,当整个流程实现自动化时,就达到持续部署的目标了。

我们无数次听到这类的抱怨:管理层不会去做、代码太过混乱、项目太大、有太多的监管障碍。由此种种,对于许多企业来说,在持续集成/持续部署的道路已步履蹒跚,但不得不说,仍有一部分企业做到了。

以Michiel Rook在2016 年的DevOps大会上的演讲为例,一起来看看关于持续部署的发展之旅。他们的项目被称为“San Diego Project”,但他们公司内部却被称为“大泥球”,因为它的代码库相当地混乱。

下图是实施持续部署前的状态:
1

该项目的压力很大。皆来源于它纯手动发布,脆弱的测试,频繁的宕机以及问题不断。这个项目团队大约由16人组成,但他们对修改现有代码并没有什么信心。

他们知道需要做什么,所以他们设定了以下目标:

 减少问题
 减少周期时间
 提高生产效率
 提高积极性

他们采取的方法是:整体修改,建立一个代理并添加一个服务,然后不断地增加服务,直到这个整体被取代。

2

他们以如下原则来指导这次持续部署之旅:

 应用strangler模式
 使用API的第一个方法
 为每个domain设置一个服务
 迁移单个页面
 建立负载平衡器后的服务
 访问遗留数据库
 实施持续部署
 运用docker
 开发前端作为服务

从持续集成开始:开发和构建/测试,每次都产生一个工件。持续交付:从构建/测试到验收再到生产; 进入生产阶段是一个手动的过程,但代码是可部署的。最后,当整个流程实现自动化时,就达到持续部署的目标了。

关于持续部署的优点有以下几点:

 小步推进
 早期反馈
 减少循环时间
 风险减低
 实验室环境
3

Michiel的项目落地后,他总结了几个实现持续部署的关键方面,如下:

 直接提交到Master。没有分支。我们都不希望延迟集成,且滥用版本控制功能分离。另外,分支上的所有内容都会增加冲突和延迟集成的风险。
 每一次提交都要投入生产。
 使用配对编码进行代码审查。这需要约束,但所有的开发人员都需要成对进行,混合搭配有经验的开发人员。
 严把质量关。确保大量测试和代码覆盖率。
 功能切换和A/B Test。确保一部分开发人员可以看到版本信息,一部分人不能看到,并促进A / B测试。但一定要把人员数量保持在一个合理的范围内。
 Dashboards。显示是部署的关键,通过它我们可以获取很多信息,比如KPI、构建时间、页面加载时间、访问者数量、A/B Test结果,等等。
 DevOps。心态是一种文化;dev和ops之间并无太多隔阂。团队内部都拥有所有权,但这并不意味着每个人都知道所有事。
 自动化可重复的事。如果同样的事你需要做两次,那说明你已经浪费了时间。
 连续测试。使用单元测试和冒烟测试来查看服务是否存在,并持续监控。探索性的测试很重要,因为你将继续测试最关键的路径。
4

 管道作为代码。自动化流水线。最后,部署起来是这样的:
5

 反馈 –及时的反馈很重要,因为DevOps是在此基础之上建立的。举个例子,Michiel这个项目上有一个闪烁的红光,这表示失败。所以不管什么时候,及时反馈都是工作中的第一要事。

Michiel的项目时间跨度有一年之久。最终,他们将每个服务的构建时间减少到不到10分钟,显著改善了页面加载时间,同时他们自己也增加了自信心和加快了速度等。明白了团队需要接受和改变的重要性的真理。同时,他们还了解到,与业务优先级一致是关键,确保拥有一定工作经验的员工亦是至关重要,限制功能切换同样至关紧要。

总的来说,Michiel和他的团队实现了持续部署。在他的演讲结束时,Michiel也提到了他的无奈,想要取代的遗留系统仍在服务中。所以持续部署这条路还很长,但值得去做。

推荐阅读:
如何为微服务选择正确的数据库
为什么你的DevOps会失败?

关于Ghostcloud
Ghostcloud(中文名:精灵云)坐落于成都天府软件园,是成都高新区重点扶持企业,国内首批从事容器虚拟化研发的企业,是西南地区唯一一家基于Docker的云计算服务商,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务。
Ghostcloud因容器技术而生,以最新容器技术Docker为基础,为适应不同行业客户需求,全自主研发了一套调度引擎框架Newben,且全方位适配Kubernetes主流开源调度引擎,也是国内率先实现双调度引擎的企业,是一流的企业级容器云服务专家。Ghostcloud推出了企业级容器云PaaS/CaaS平台,命名为EcOS(EnterpriseContainer Operation System)。Ghostcloud将EcOS平台与微服务/DevOps相融合,运用至企业IT系统的全生命周期的开发、测试、运维及发布流程中,致力于为多个领域企业向“互联网+”转型提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,帮助企业级客户降低成本、提升效率、简化运维及产品部署,并提升系统的可靠性和安全性。

目录
相关文章
|
6月前
|
传感器 监控 Cloud Native
开源与可持续发展:环境友好的技术选择
开源与可持续发展:环境友好的技术选择
39 0
|
运维 监控 前端开发
好的持续部署实践,如何规模化落地|学习笔记
快速学习好的持续部署实践,如何规模化落地
235 0
好的持续部署实践,如何规模化落地|学习笔记
|
运维 监控 Cloud Native
好的持续部署实践,如何规模化落地 | 学习笔记
快速学习好的持续部署实践,如何规模化落地
196 0
好的持续部署实践,如何规模化落地 | 学习笔记
|
机器学习/深度学习 vr&ar
通过探索颠覆性技术的实验交付业务结果
企业需要为其创新实践取得理想的结果,首先要确定商业驱动的机会,以快速、廉价、让客户满意的方式探索颠覆性技术。并将重点放在工作范围,创新实践的位置以及与业务合作伙伴互动的过程上。
101 0
|
人工智能 运维 监控
编排自动化成为2021年云计算十大趋势,对RPA有哪些影响?
编排自动化成为2021年云计算十大趋势,对RPA有哪些影响? 从2021年云计算十大趋势,看IT运维中的RPA发展机会
227 0
编排自动化成为2021年云计算十大趋势,对RPA有哪些影响?
|
弹性计算 运维 Ubuntu
CloudIaC正式开源!推动环境即服务在企业落地
对于运维来说,管理IT基础设施是一项艰巨的体力劳动,从最原始的用Excel记录维护配置信息,到开发CMDB系统来进行资源的配置管理,从传统上,运维的任务就是管理和配置所有的软件和硬件,这些配置信息对于保证基础架构中的应用程序平稳运行至关重要,但这始终是一个漫长的过程。
1332 1
|
云计算 敏捷开发 搜索推荐
APaaS平台催生大规模定制时代来临,你做好准备了吗?
APaaS的出现并逐渐成熟,伴随着产业信息化阶段的到来,被业界认为将带来一波全新的浪潮,预示着中国云计算信息技术应用的大规模定制时代来临。
APaaS平台催生大规模定制时代来临,你做好准备了吗?
|
机器人 测试技术
阿里云RPA成功实施落地的关键因素详解(中)
2019年RPA市场迎来大爆发,以uipath为代表的公司估值30亿美金,国内市场以阿里云为代表深耕了RPA多年,本文章分为由浅入深上中下三部分以阿里云RPA为例,全面讲解如何成功实施RPA自动化解决方案。
|
安全 云计算
成功or失败?云计算部署中不容忽视的3点
本文讲的是成功or失败?云计算部署中不容忽视的3点【IT168 编译】目前来看,许多公司已经通过云计算获取了巨大的成功,云计算的市场也将因此持续扩容,但是,伴随着新技术的风起云涌,部署和实施云计算的道路也愈发艰难,很多项目会面临很多风险,在众多的云计算部署失败案例中,以下三个问题会经常出现……
1270 0

热门文章

最新文章