首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP+Go 开发仿简书,实战高并发高可用微服务架构-完整分享

核心代码,注释必读

// download:3w 52xueit com

vue 2.x 响应式

Object.defineProperty

爱学it学无止境

简化的含义为:一种能够使得软件在较短的循环中可靠地发布的软件工程方法。

与持续集成相比,持续交付的侧重点在于 交付,其核心对象不在于代码,而在于可交付的产物。

由于持续集成仅仅针对于新旧代码的集成过程执行了一定的测试,其变动到持续交付后还需要一些额外的流程。

解读上图,可以看到与持续集成相比较,持续交付添加了 Test->Staging->Production 的流程,也就是为新增的代码添加了一个保证:确保新增的代码在生产环境中是可用的。

代码提交(CI已包括)

单元测试(CI已包括)

合入代码(CI已包括)

测试(Test):接口或UI自动化测试、集成测试、系统测试,代替人工测试

部署到预发环境(预生产环境Staging):在预发环境进行产品的主流程验证,验证通过再执行下一步

预生产环境 Staging:尽可能地对真实的网络拓扑、数据库数据以及硬件设备等资源进行模拟,从而为测试人员反馈代码在生成环境中的可能表现。

手动部署到生产环境(Production):开发手动部署

流程中每一个环节的执行结果都会对开发人员进行反馈,每一个出现的错误都会导致版本的回滚。当测试完毕确认无误之后,将由相关人员对其进行 手动部署到生产环境。

2.2 持续交付小结

持续交付是持续集成的延伸,将集成后的代码部署到类生产环境,确保以可持续的方式快速向客户发布新的更改

经过持续交付,即可手动部署到生产环境

持续集成的重点是集成代码,但持续交付的重点是可交付的产品。可交付的产品一定要有达标的质量,确保产品在生产环境没问题,所以在CI集成代码之后,还需要进行自动化测试、集成测试。

3. 持续部署(Continuous Deployment)

3.1 什么是持续部署

Continuous Deployment:持续部署,简称CD,它是在持续交付的基础上打通最后一公里的工作,就是把手动部署到生产环境的方式升级为自动部署。看下图和上图在最后部署到生产环境中的区别。

简化的含义为:通过自动化部署的手段将软件功能频繁地进行交付。

与持续交付以及持续集成相比,持续部署强调了通过 automated deployment 的手段,对新的软件功能进行集成。

解读上图,与第二张持续交付的图片对比后,发现只有一点差别,就是自动化部署生产(Production)环境

所以说,持续部署与持续交付之间的差异就是前者将部署自动化,开发人员提交代码到编译、测试、部署的全流程都不需要人工干预,完全自动化执行。

3.2 持续部署好处

这一策略加快了代码提交到功能上线的速度,保证新的功能能够第一时间部署到生产环境并被使用。

4. 为什么要使用CI/CD

总结CI/CD是为了实现以下几个目的:

快速交付:CI/CD 自动化流程可以使软件交付过程更快、更频繁,减少了手动操作和人工干预的时间。这样可以更快地将新功能、修复和改进的代码交付给用户,满足市场需求并保持竞争优势。

提高质量:持续集成通过频繁地集成和构建代码,并进行自动化测试和静态代码分析,有助于发现和解决问题。通过尽早发现和修复缺陷,可以提高软件的质量和稳定性。

自动化部署:持续交付将部署过程自动化,从而减少了手动部署的错误和风险。通过自动化部署流程,可以确保软件在不同环境中的一致性,并减少了部署时间和工作量。

可靠性和可重复性:CI/CD 强调自动化和标准化的流程,使软件交付过程变得可靠和可重复。每次构建、测试和部署都是基于相同的流程和环境,减少了人为因素的影响,提高了软件交付的一致性和可靠性。

团队协作与反馈:CI/CD 促进了团队成员之间的协作和沟通。通过频繁地集成和交付,团队成员可以及时了解彼此的工作进展和变更,减少代码冲突和集成问题,并能够更好地合作解决出现的问题。

可追溯性和回滚能力:由于 CI/CD 自动化流程的记录和版本控制,可以轻松追踪每个构建和部署的结果。这样,在出现问题时可以快速定位和回滚到之前的可用版本,减少了故障修复时间和影响范围。

总而言之,CI/CD 提供了一种高效、可靠和可持续的软件交付方法。它可以加速软件开发和交付的速度,提高软件质量和可靠性,并促进团队之间的协作和反馈。通过使用 CI/CD,组织可以更好地适应市场需求,降低软件交付的风险,并实现持续创新和改进。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O2KisZ85zu2fIjdM6bKBA1tw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券