目录
会使CI/CD流水线变慢的原因可以分为三大类:软件交付速度慢,缺乏治理以及孤立的可见性和洞察力。
在实施CI/CD流程后,许多组织面临着三个重大挑战,这使他们无法始终如一,安全,快速地交付软件。
- 软件交付速度慢:即使使用自动流水线,对生产服务和应用程序的更改仍需要很长时间才能从开发环境过渡到生产环境。
- 缺乏治理:难以监控。
- 孤立的可见性和洞察力:缺乏对软件交付过程的可见性,并且很少在团队之间共享最佳实践。
为了解决这些问题,你需要添加一层智能,以在整个团队和工具的CI/CD流程中提供帮助。这些工具能够执行自动验证,风险评估,诊断,决策和治理。
缓慢的软件交付:人为决定会减慢CI/CD流程
“我们实施了现代的CI和CD工具,但是我们的过程仍然很慢且成本很高。”
一家大型企业(《财富》100强)的DevOps负责人,领导着一个工程师团队,负责提供世界上最受欢迎的网站之一,每月有2亿以上的访问量,但他们仍在快速交付软件上面临挑战。
我们来考虑一个简单的软件交付流水线(如上图所示)。即使部署了自动部署,该过程也会在特定决策点停止。这些会在流程等待决策的流水线中造成瓶颈:是继续进行部署还是重新开始该部署。
在每个决策点,工作人员通过分析收集的数据以评估风险并将其与以前的类似更改进行比较。此外,他们验证是否遵守了所有策略,并建议是否将其提升到产品开发的下一个阶段。
每个阶段的决策过程在概念上相似,但功能不同。例如,在“测试阶段”之后,数据将来自自动测试和手动测试,并且可能包括基本系统指标,决策者可能是质量检查领导者。在“部署阶段”之后,数据来自Jira,性能测试工具,APM工具甚至其他工具,通常,DevOps或运营负责人会评估数据。
如果在每个决策点上,都要权衡进行变更的风险与变更的收益,对于部署少量更改时,此延迟很小,并且该过程运行正常。当你进行许多更改时,等待对于发布过程来说是致命的。
谨慎而明智的决策至关重要,因为生产系统中的错误会损害公司的品牌和形象。但是,缓慢的软件交付也会影响公司的效益。组织应该根据具体情况具体分析,在持续交付中不是越多的审查越好。
缺乏监控
必须遵守治理规则。如果没有智能系统来自动化管理和执行过程,则几乎不可能遵守当前的软件交付策略。
大型组织可以制定成千上万的策略。某些合规性规则因地理位置,应用程序或团队而异。一些准则和法规经常更改,从而使合规变得困难。
合规的类型包括:
- 建议采用最佳实践(Best practices),以减少错误或提高成本效益。示例包括针对特定云中特定应用程序的正确基础架构模板的准则,或要部署的系统软件版本的配置规范。
- 操作限制(Operational constraints),例如,在停电期间无法部署。
- 安全性约束(Security constraints),例如,在部署到灰度环境或生产环境之前需要进行安全扫描,或者对可以使用的开源库的限制,或者有关谁可以将系统部署到生产环境的策略。
- 外部法规(External regulations),例如,SOX要求的职责分离,其中的更改必须由实施更改的人以外的其他人批准。
除了遵守必需的策略外,组织还必须证明遵守了这些策略。除了使治理规则本身自动化之外,这还强制要求进行审核。
孤立的可见性和洞察力
除了加快将每个变更交付给每个应用程序的速度外,运行良好的自动化的持续交付解决方案还具有整体性。通过对比使用的所有CD工具,可以发现CD过程中的趋势(好的和坏的),并在整个组织中共享最佳实践。
如果没有建立可提供最高级别可见性的系统,则组织将在单个级别上进行优化,并且会错过大幅改善的机会。由于大多数组织都将使用多个CD系统,因此挑战变得更加困难,并且跨所有工具收集数据更加困难。
任何解决方案中,通常都以仪表板显示高级视图,该视图使团队能够随着时间的推移识别给定流水线中的特定问题,发现团队和工具之间的趋势,并找到可以在团队之间共享的最佳实践。
译文链接: https://dzone.com/articles/what-is-slowing-down-your-cicd-pipeline