不管是传统瀑布式开发模式还是现如今互联网行业流行的敏捷开发模式其整个过程必不可少存在软件代码编写、代码构建、软件测试(代码静态分析、单元测试、模块测试和系统集成测试等)、软件部署等主要阶段。传统的做法往往是通过人工的投入方式一个阶段一个阶段的去执行实施,这好比传统的家庭作坊式手工生产工业品时代或劳动密集的工厂加工时代。现如今工业品的生产已逐步走向自动化生产流水线而解放出来的人力更多地是投入到自动化生产线无法替代的产品设计上。那反观软件产品的生产过程,我们会发现它在国内仍也大部分处于家庭作坊或大规模劳动密集型生产过程中。而在国外特别是科技领先的美国已经普遍实现软件研发生产过程的自动化,除了架构和代码设计的人工参与外通过自动化平台最大限度地实现构建、测试、部署的自动化,大大提高了软件产品交付速度和成本。
那为什么说这将是软件研发下一步发展趋势,首先,我们看看传统软件开发过程中的问题:
- 软件交付各阶段依赖性大发布周期长依赖于个人或小团队执行、更新状态和解决问题;
- 应对复杂的开发环境各种应用、开发流程、硬件环境和工具
- 多手工的流程不可重复、易出错、无可追溯性、不透明
- 硬件资源利用率低长期空闲或资源争夺
上述问题必然导致软件交付时间长、质量差、成本高等问题,因此解决上述问题对于平台的需求基本体现在以下几点:
- 软件开发自动化流程建模
- 分布式编译加速、并行测试加速、一键式部署
- 软件开发工具链集成实现工具自动执行、动态分析
- 软件开发相关系统集成实现全面软件配置管理
- 对现有硬件资源的统一管理和调度能力
- 软件开发过程动态监控基于同一平台自动收集和管理过程数据
- 提供持续集成、持续交付、敏捷开发和DevOps最佳实践
此类自动化平台在国外已有相当多的供应商如Electric Cloud、Teamcity、IBM等但我们比较推荐Electric Cloudwww.electric-cloud.com公司其专注于软件开发自动化领域十几年全球领先的500强公司大部分也采用了他家的解决方案。附件为其解决方案。
时间: 2024-12-20 14:40:18