持续交付流水线设计要素包括:1、持续集成;2、自动化测试;3、交付流水线;4、环境部署。持续交付的价值体现在提升软件交付效率、统一企业的软件交付流程和规范、保证软件交付质量和降低软件发布风险等方面,所以持续交付流水线设计要遵循以上4点要素。
1、持续集成
将代码开发和集成按模块拆分成多个小阶段,每一阶段完成后都会进行集成,这在一定程度上减少了风险。 我们要求在代码提交时即触发编译。构建时会对整个应用的所有模块进行编译,并伴随单元测试以及代码质量分析。如果构建过程失败了,那么必须立即邮件告警到相关开发责任人,并责令立即修复问题,如果20分钟内无法修复,就要回退代码提交,总之,要求代码库的代码持续处于可用状态。
2、自动化测试
互联网产品要求全回归测试要快,那么,如何在保证测试质量和测试覆盖率的前提下,首先,测试执行集群是很好的思路,通过并发机制提升执行效率,其次测试策略也是一个突破口。传统软件产品的测试策略,同时采用金字塔模型,这是迈克·科恩提出的,在很长一段时间内都被认为是测试策略设计的优异实践。
3、交付流水线
交付流水线包括了从开发提交代码,触发构建,部署测试环境,测试环境自动化以及测试、准生产环境部署到测试、上线审批、自动化发布上线及测试。但流水线也不是一味追求自动化,需要自动和人工的结合。
4、环境部署
利用容器化的快速部署优势实现流水线快速推进;利用容器化高可扩展性的优势实现基于负载的自动伸缩;利用容器化更加轻量级的优势解决了应用和操作系统的强耦合问题;利于容器化高一致性的优势统一构建各环境,提高部署环境的一致性。在DB申请环节,DB也是基于容器化来实现的,统一各环境的数据库表结构,个性化各环境的独有数据,比如账户信息、商户信息等数据,并提供快速保存功能以增量的方式保存关键数据的更改。
延伸阅读:
什么是持续交付
持续交付是一种软件开发实践,通过持续交付,系统可以自动为将代码更改发布到生产环境做好准备。现代应用程序开发的支柱,持续交付通过在构建阶段后将所有代码变更部署到测试环境和/或生产环境中,实现对持续集成的扩展。在正确实施时,开发人员将始终拥有已通过标准化测试流程的部署就绪构建构件。
采用持续交付时,开发人员可以自动执行单元测试以外的测试,这样他们就可以在部署到客户环境前跨多个维度对应用程序更新进行验证。这些测试可能包括 UI 测试、负载测试、集成测试、API 可靠性测试等。这有助于开发人员更全面地验证更新并抢先发现其中的问题。借助云,开发人员可轻松高效地自动创建和复制多个用于测试的环境,而这一点以前在本地很难实现。
本文来自投稿,不代表Worktile社区立场,如若转载,请注明出处:https://worktile.com/kb/p/30515