CI/CD是devops的关键实践之一,它让团队能够在开发实践上保持一致,并确保有一种一致的、可靠的、自动化的方式将应用程序交付到多个计算环境。
以下是关于实现CI/CD的五个建议:
1. 确定业务和技术目标
对于大多数企业来说,CI/CD都不可能在一夜之间实现,通常会是一项渐进式的工程。这意味着大多数devops团队必须优先考虑要开发哪些实践、要自动化哪些过程以及要关注哪些平台堆栈。
值得参考的办法是查看短期业务优先级,并将devops和CI/CD目标对准它们。如果有新的应用正在开发中,那么这是聚焦它们的CI/CD管道的最佳时机。如果您正在进行上云迁移,那么标准化体系结构和为需要品牌更改的应用开发CD pipeline绝对是一个很好的起点。
2. 从持续测试开始(continuous test)
做为企业,首先要关注“基础”,如确保源代码具备单元测试,通过了静态代码分析和安全扫描。
只有不断追求高质量的代码和近乎完美的应用,交付速度才能飞速提升,也就是说,我们需要在CI/CD中加入自动化测试的环节。不仅仅是单元测试,代码分析、安全性和性能测试,都应该在每次提交至交付或生产环境时从CI/CD触发。
3. 在实现CI前对架构进行标准化
自动化的价值,在于它可以完成可靠的重复,开发团队过去需要做的——把应用部署到多种类型的开发和测试环境,以及最终的生产环境。如果这些环境的架构没有标准化,自动化带来的优势便也很难享受的到了。
我们可以考虑使用chef、puppet或者anable,或是利用docker和kubernetes来整理架构,将基础架构自动化。
4. 用CI来匹配短期业务目标
持续交付不一定适合每个业务或者应用,如果业务目标是发布一些松耦合的特性,那么使用特性分支会是一个好办法,可以分离特性跟踪并在完成时进行合并。但是,如果很长一段时间内有很多功能正在开发,那么开发团队可能会想要查看某些功能分支并做一些特性标记。
5. 让系统工程师来实现CD
CD需要编写大量脚本、对计算(云)架构以及应用有足够的了解。有些团队会安排开发人员来做CI/CD,我们一般更建议工程师来参与这项工作,肩负实现自动化的挑战。
之所以如此建议,在于工作的专注——开发人员应该集中在实现业务逻辑和代码编写,工程师应该更精通系统编程,例如IaC和CI/CD。
CI/CD应该能够推动平台合理化
CI/CD是一项大工程,从架构的标准化到流程的建立,再到支持不同语言编写代码并自动化交付应用,这不是一项一蹴而就的事情,但只要方法得当,企业会从中受益匪浅。
阅读更多
开源PaaS Rainbond提供可扩展的CI/CD,支持主流开发语言源码构建,可对接jenkins等第三方工具,进一步了解请访问Rainbond官网或免费使用公有云
网友评论