持续部署的发展之路

34 篇文章 0 订阅
33 篇文章 0 订阅

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenEMS 是一款开源的能源管理系统,它能够帮助用户实现高层面上的分布式电力管理和监控,包含能源采集、处理、可视化等功能,可以应用于各种各样的场景,如建筑、智能家居、工厂等地方。 在部署 OpenEMS 能耗管理系统时,首先需要进行系统架构设计和硬件调配,包括服务器、网关、传感器和各种设备。然后根据实际需求进行软件配置和定制化开发,例如配置通讯协议,实现数据采集和处理、报警提示等功能。在正式使用前还需要进行系统测试和故障排查,确保系统正常运行。 在部署过程,还需注意系统的可扩展性和兼容性,确保支持多种不同的数据格式和设备类型。同时还需要考虑数据的安全性和隐私保护,例如加密传输和访问控制等措施。最后,为了充分发挥 OpenEMS 的功能和效益,还需进行系统定期维护和升级,以保证系统的长期稳定性和可用性。 总之,OpenEMS 能耗管理系统的部署是一个复杂的过程,需要经验丰富的技术人员和先进的设备技术支持,但通过这样一个系统的建立,可以有效地提高能源管理效率,降低能源成本,帮助企业和用户实现可持续发展的目标。 ### 回答2: OpenEMS是一个开源的能耗管理平台,由于其开放性和高度可配置性,可用于任何地方的能源管理需求。 OpenEMS的部署过程通常涉及安装OpenEMS软件和设置相应的传感器和测量设备。 OpenEMS软件支持多种操作系统和编程语言,包括Java,Python,和C。安装OpenEMS需要相应的服务器和数据库,建议采用Linux操作系统和PostgreSQL数据库。OpenEMS还支持Docker容器的部署方式,方便快捷。 为了开始OpenEMS能耗管理,需要设置相关的传感器和测量设备,这些设备可以根据不同的需求添加,以测量电能、水、气体、温度、湿度等信息。管理人员可以使用OpenEMS的控制面板来跟踪能源使用情况、诊断问题并执行调整操作以及优化能源消耗。 总之,OpenEMS是一个功能强大的能源管理平台,支持多种设备和编程语言,以及高度灵活的部署选项。通过使用OpenEMS,机构和企业可以轻松地实现能源效率和成本控制目标。 ### 回答3: OpenEMS是一个开源的能源管理系统,在能源使用领域有着广泛的应用。该系统可以帮助用户实现对能源使用的监控、计量、优化、控制和管理。 OpenEMS的能耗管理部署需要考虑以下几个方面: 1.安装:OpenEMS可以在不同的硬件和操作系统上运行,用户可以选择根据自己的需求进行安装。安装过程需要进行配置,包括建立数据库、设置通信协议等。 2.采集数据:OpenEMS支持多种传感器和设备,可以实时采集能源数据(如温度、湿度、电流、电压等)。这些数据可以在系统进行分析和处理,并提供详细的报表和图表。 3. 数据分析和控制:OpenEMS分析数据后可以提供实时的控制策略,通过自动或手动控制来优化能源的使用。例如,在夏季的高峰时段,系统可以自动关闭空调等设备,从而降低能源的消耗。 4.监控和报告:OpenEMS提供了各种实用的监控和报告功能,可以帮助用户随时掌握能源使用情况。用户可以通过Web界面或移动应用程序来访问这些功能,同时系统也支持邮件或短信通知功能。 OpenEMS的能耗管理部署可以实现能源使用过程的智能化控制,从而达到降低能源消耗的目的。因此,这一领域的应用前景非常广阔,特别是在大型企业和机构的能耗管理方面具有广泛的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值