持续部署的发展之路

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

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

下图是实施持续部署前的状态:
图片描述

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

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

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

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

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

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

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

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

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

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

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

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

 反馈 –及时的反馈很重要,因为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系统的全生命周期的开发、测试、运维及发布流程中,致力于为多个领域企业向“互联网+”转型提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,帮助企业级客户降低成本、提升效率、简化运维及产品部署,并提升系统的可靠性和安全性。

代码粉碎:持续部署与安全性的高级话题 本文介绍了如何在Java中使用Jasypt库加密属性文件中的设置,以及为了提高安全性应避免直接访问生产服务器。通过分层保护系统,使用OWASP资源来识别和防范常见的Web应用安全漏洞,最终实现了应用代码和基础设施代码的持续部署。 阅读详情

相关推荐

京峰教育jenkins 自动部署 持续集成文档

京峰教育jenkins 自动部署 持续集成文档(vip内部文档)

Jenkins持续集成、持续部署(CICD)-尚硅谷(含自己整理的前端、后端项目部署详细步骤)

Jenkins持续集成、持续部署(CICD)-尚硅谷(含自己整理的前端、后端项目部署详细步骤)

qq_52030824的博客 1万+

从原理到实践:MIPI D-PHY v1.2的HS-Deskew功能全解析(附时序图详解)

本文深入解析MIPI D-PHY v1.2的HS-Deskew功能,从技术背景到实现机制,详细介绍了其在2.5Gbps高速传输中的关键作用。通过时序图详解和实测数据,帮助工程师理解并应用这一技术,解决信号完整性问题,提升系统可靠性。

weixin_30300225的博客 308

【自动化持续集成部署平台】持续集成自动化平台发布了-技术栈(python-flask+vue3+mysql+linux)

好久没有发布作品了,最近完成了一个也有利于开发、测试同学的一个自动化部署平台,方便大家在工作中的效率,以前经常是使用jenkins发布部署项目及运行自动化项目,现在可以在平台上一键式部署发布项目啦!项目包含的技术栈:后端:python+flask(对于熟悉python的同学也可以选择Django,在这里我就是使用了flask进行开发了)

qq_36651949的博客 855

JavaScript性能优化:全链路性能优化策略

JavaScript性能优化是提升Web应用质量的核心要素,直接影响用户体验与业务成果。研究表明,页面加载延迟1秒可能导致转化率下降7%。高效的JavaScript执行能减少主线程阻塞,避免动画卡顿或操作延迟,尤其在移动端低性能设备上更为关键。优化内存管理与减少冗余计算可降低浏览器资源消耗,防止因内存泄漏导致的崩溃,提升应用稳定性。在竞争激烈的互联网环境中,性能优势已成为产品差异化的关键因素,直接影响用户留存与商业价值。因此,性能优化应作为开发全周期的核心实践,而非事后补救措施。

weixin_49707375的博客 1274

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。

m0_74808907的博客 3147

探索 RunHouse:一个高效开源的持续集成与部署平台

是一款强大的持续集成与部署(CI/CD)工具,旨在简化软件开发流程,提高团队协作效率。该项目基于现代Web技术和云原生理念构建,提供了一种直观、灵活且可扩展的方式来自动化构建、测试和发布你的代码。 ## 技术解析 ### 架构设计 RunHouse 使用微服务架构,各个组件独立运行,这样可以保证系统的高可用性和可伸缩性。核心组件包括: - **API Gateway** - 提供统一的接入

gitblog_00032的博客 431

MinerU与Docling:智能文档处理框架对比

本文对比分析了MinerU和Docling两大智能文档处理框架。MinerU专注于高精度PDF解析,采用多模态AI技术,在学术文献、金融报表等复杂文档处理上表现优异;Docling则定位企业级多格式文档处理平台,支持10+格式转换,更适合文档管理系统等场景。技术层面,MinerU基于VLM模型实现端到端处理,Docling采用插件化多后端架构。性能测试显示MinerU精度更高(95%+),但资源消耗较大;Docling处理速度更快(1-3秒/页),部署更灵活。

轩哥的个人研究和成长记录 1916

推荐一款高效持续部署平台:Inertia

???? 推荐一款高效持续部署平台:Inertia 去发现同类优质开源项目:https://gitcode.com/ 在今天的软件开发环境中,持续集成和部署(CI/CD)成为了确保代码质量和提高开发效率的关键环节。今天,我要向大家介绍的是一个由UBC Launch Pad团队打造的开源项目——Inertia,它是一个自托管、易于使用的连续部署平台。 ???? 项目介绍 Inertia是一款跨平台的命令行应用与...

gitblog_00075的博客 797

关于使用CMT2300A FIFO缓存区间设置为64Byte的问题

帮助你解决在使用CMT2300A 时遇到的各种问题,若有需要,请及时与我交流

teleger的博客 1429

笔试题-2023-大疆-数字IC设计【纯净题目版】

笔试题-2023-大疆-数字IC设计【纯净题目版】

w0shishabi的博客 2513

主流的持续集成/持续部署(CI/CD)工具盘点

其中,Jenkins因其高度可扩展性、广泛的插件生态以及对多种环境的兼容性,在全球范围内得到最广泛应用。Jenkins支持从源代码编译、自动化测试、部署到生产环境的全流程CI/CD操作,是DevOps落地的中坚力量之一。/wp:image。

F36_9_的博客 3061

ESP32设备驱动-AS5600磁性旋转位置传感器

AS5600 是一款可编程的 12 位高分辨率非接触式磁性旋转位置传感器。 AS5600可以作为磁性电位器或磁性编码器使用,具有出色的可靠性和耐用性。 与传统电位器/编码器相比,AS5600具有显着优势:高精度、非接触式、旋转角度无限制。 所有这些优点使其适用于非接触式角度测量应用,例如机器人手臂、云台、电机闭环控制、机床轴定位。

视觉与物联智能 2553

软件工程中的DevOps实践:实现持续集成和持续部署的关键

1.背景介绍 在当今的快速发展和竞争激烈的软件行业中,软件开发和部署的速度和效率是非常重要的。持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)是软件工程中最常用的DevOps实践之一,它们可以帮助团队更快地发现和修复错误,提高软件质量,降低部署风险,并加快软件交付速度。在本文中,我们将讨论CI和CD的核心概念、原理、算法...

AI天才研究院 1225

Swin Transformer 与 CNN 结合实现图像分类

Swin Transformer 与 CNN 结合实现图像分类。(含swin transformer 结构讲解,cnn网络搭建,代码)

这里是Mae。 5027

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

**蓝绿部署:实践中的持续集成与持续部署策略**随着技术的快速发展,软

蓝绿部署是一种在不停机的情况下进行软件版本升级或系统优化的部署策略。它通过同时维护两个独立的环境来实现无缝切换,从而提高系统的可用性和稳定性。其中,“蓝”环境代表当前生产环境,“绿”环境代表即将升级或更新的环境。在升级过程中,新的请求会被路由到“绿”环境,而旧的请求仍然保持在“蓝”环境,确保服务的连续性。在这样的背景下,蓝绿部署作为一种有效的持续集成与持续部署策略,被广泛应用于生产环境。本文将深入探讨蓝绿部署的原理、实践以及面临的挑战,并分享一些代码样例和操作流程设计。

aichiyv1234的博客 51

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

多云持续集成与持续部署: 实现快速的软件交付

1.背景介绍 在当今的数字时代,软件开发已经成为企业竞争力的重要组成部分。为了更快地将软件产品推向市场,软件开发团队需要采用一种高效、可靠的软件交付方法。持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)是两种广泛使用的软件交付方法,它们可以帮助团队更快地发布软件,提高软件质量,降低风险。 然而,随着云计算技术的发展,企...

AI天才研究院 1072

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

**蓝绿部署:实践中的持续集成与持续部署策略**随着软件行业的快速发展,持续

首先,我们在蓝环境进行生产,绿环境用于测试。当新版本在绿环境中测试通过后,我们可以迅速切换两个环境的角色,将新版本部署到生产环境。蓝绿部署是一种高效的持续集成与持续部署策略,通过同时维护两个独立的环境,实现无缝的部署切换。蓝绿部署是一种高级的部署策略,它通过同时维护两个完全独立的系统环境——蓝环境和绿环境,来实现无缝的部署切换。在蓝绿部署中,开发团队可以在绿环境中进行新版本的测试,而蓝环境则保持生产环境的稳定运行。其中,蓝绿部署策略作为一种先进的部署技术,被广泛应用于提高系统的可靠性、稳定性和可扩展性。

yang1201209h的博客 73

持续集成与持续部署(七)01-扩展——自动化流程的发展趋势 & 复杂的DevOps相关工具

持续集成与持续部署(七)01-扩展——自动化流程的发展趋势 & 复杂的DevOps相关工具 自动化流程的发展趋势 集中化 以集群为基础,服务采用Saas方式进行交付。所有折构建、测试、发布全集中进行管理。 微服务+无服务的应用模式 应用程序执行环境的管理被新的编程模型和平台取代后,团队的交付生产率得到了进一步的提升。一方面它免去了很多环境管理的工作,包括设备、网络、主机以及对应的软件和配置工作,使得软件运行时环境更加稳定。另一方面,它大大降低了团队采用DevOps的技术门槛。 **无服务器风

weixin_44867717的博客 1349

平台治理开发中的持续部署优化

1.背景介绍 在当今的快速发展中,平台治理开发已经成为一种必须掌握的技能。随着技术的不断发展,持续部署(CD)也变得越来越重要。然而,在平台治理开发中,如何优化持续部署,以提高软件开发效率和质量,成为了一个重要的问题。 在本文中,我们将从以下几个方面进行讨论: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模型公式详细讲解 具体代码实例和详细解释说明 未来发展趋势与挑战 附录...

AI天才研究院 939

**蓝绿部署:实践中的持续集成与持续部署策略**随着技术的快速发展,

首先,我们搭建好蓝环境和绿环境,并将新版本的代码部署到绿环境。最后,在验证绿环境稳定后,我们将全部用户流量切换至绿环境,正式对外提供服务。在实际应用中,我们需要根据业务需求和系统特点选择合适的部署策略,并不断优化流程,提高交付效率。通过同时维护两个环境:蓝环境和绿环境,实现在线应用平滑迁移,有效避免单点故障,提高系统的可用性和稳定性。其中,蓝环境代表当前生产环境,而绿环境是新版本或更新后的环境。在这样的背景下,蓝绿部署作为一种有效的持续集成与持续部署策略,被广泛应用于生产环境。

hai1234yang的博客 54

DevOps持续部署实战

本文详细阐述了DevOps持续部署的实战应用,从核心概念、实践方法、实践优势等方面进行了深入探讨。通过DevOps持续部署,企业可以提高开发效率、缩短上市时间、提高系统稳定性,并促进团队协作。在未来,DevOps持续部署将进一步完善和发展。随着人工智能、云计算等技术的发展,持续部署将更加智能化、自动化。加强自动化测试和代码审查,提高代码质量。探索新的部署策略,降低部署风险。深入挖掘数据,优化持续部署流程。加强团队培训和技能提升,提高DevOps实践效果。

2501_92489014的博客 472

DevOps实践指南:持续部署与监控

DevOps是一种软件开发和运维的结合方式,旨在提高软件开发、发布和运维的效率。它强调自动化、协作和持续改进,以实现快速、可靠的软件开发和部署。本文详细阐述了DevOps在持续部署与监控方面的实践方法和策略。通过实施DevOps,企业可以提高软件开发效率、降低故障率、增强团队协作。为了实现持续部署和监控,企业需要选择合适的自动化工具、制定合理的部署策略、监控关键指标。同时,成功实施DevOps的企业案例为我们提供了宝贵的经验。在未来的发展中,DevOps将继续引领软件开发和运维的变革。

2501_92489105的博客 314

实现高效的持续部署:DevOps工具与策略比较

1.背景介绍 持续部署(Continuous Deployment, CD)是一种软件交付的最佳实践,它旨在在软件开发过程中实现持续的集成、测试、部署和交付。持续部署的目的是提高软件开发的速度和质量,降低风险,并减少人工干预的时间。DevOps 是一种软件开发和运维的方法,它强调跨团队的协作和集成,以实现更快的交付和更高的质量。 在本文中,我们将讨论如何实现高效的持续部署,以及 DevOps ...

AI天才研究院 828
上一篇: 【行业观点】如何为微服务选择正确的数据库
下一篇: 持续部署的发展之路
ghostcloud精灵云
博客等级 码龄11年 81粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值