由于 DevOps 方法的广泛采用以及由此产生的快速产品交付和部署,许多部门已采用更敏捷的方法来开发生命周期。在满足市场速度和规模要求的同时,设计安全的软件一直是现代 IT 公司共同面临的问题。结果,超过 52% 的组织因为担心上市速度落后而放弃了安全性。由于传统技术下的安全漏洞,生产版本也出现了延迟。
一、什么是 DevOps?
DevOps源自“Development”与“Operations”的融合,本质上是一种综合性方法论,它融合人力、流程与技术,聚焦于创造客户价值,持续推动产品价值的递增。它倡导的是一种横贯软件全生命周期的精益、敏捷开发策略,并通过实施先进技术、流程改革以及文化转型,从而推动企业达成快速交付高质量软件的能力。
DevOps开发体系的精髓在于利用工具链赋能,实现持续集成 (Continuous Integration)与交付(Continuous Delivery)的自动化流程,这不仅促进了如开发、IT、运营、质量管理等以往独立角色的协同作业,还携手打造了更优、更可靠的产物。
DevOps旨在提升效率、加速产品面市、巩固质量,并加深跨职能团队间的合作,其核心围绕持续部署展开,通过在软件开发生命周期各阶段引入自动化、智能化工具与技术,不仅增强了软件产品的质量和安全性,也成功缩减了发布周期,全方位推动了软件生产的现代化进程。
DevOps与软件生命周期关系图
二、DevOps知识体系
主要包括两方面:方法论与工具链。方法论源自敏捷开发,其实践的前提要求是基础设施即代码(Infrastructure as Code,IaC),指通过将基础设施的相关配置描述为可执行的代码,并基于此,可对其进行版本控制、代码审查和自动化部署,以此来提高基础设施的可靠性和一致性。
其实践过程强调持续交付与自动化,即通过从实践中得来的经验、自动化测试的应用和频繁部署等关键步骤的实施,加快构建、测试和发布过程,使项目团队能够在任何时候都可发布可靠的软件,从而实现以更短的周期交付软件产品的目的。由于DevOps的方法论源自敏捷开发,因此其实践过程促使不同部门的人员紧密协同工作,这破除了部署、运维和维护等活动与开发之间的隔阂,从而让项目过程更具高效性。
工具链涵盖代码托管工具(Git、SVN等)、自动化构建系统(Jenkins、Team City等)和云服务。其中代码托管工具是DevOps架构中基础设施的核心,它提供了将环境配置和代码进行版本控制的能力;自动化系统由各种类型的Build系统实现,涵盖编译、自动化测试、依赖管理、容器构建、打包、编排等操作;通过云服务可更轻松地部署、扩展和管理应用程序,为DevOps提供了可扩展性和弹性。这些工具支撑从代码管理到部署的自动化整合,实现高效、高质量的软件交付。
在DevOps的发展中,云服务是重要的推动因素。如基于容器和Kubernetes的平台提供了云原生应用的标准发布和运行环境,这解决了应用部署自动化、标准化、配置化等问题;又如基于容器的微服务架构定义了云原生应用的标准架构,减少了服务间的耦合性。这些技术的应用为软件在架构、支撑服务和支持组件、基准平台上进行了标准化,同时也解决了升级、扩容、稳定、云统一架构等问题。
三、DevOps 的优势
1. 提高交付速度和质量:
通过自动化和协作,DevOps可以显著缩短开发周期,提高交付速度。同时,通过引入持续集成和持续部署等实践,可以确保代码质量和系统稳定性。
2. 降低运维成本:
通过自动化运维流程和工具,DevOps可以降低手动操作的错误率,减少故障恢复时间,从而降低运维成本。
3. 增强安全性:DevOps强调对系统性能的实时监控和数据分析,有助于及时发现潜在的安全风险并进行修复。此外,通过引入自动化安全测试和审计工具,可以确保系统的安全性。
4. 提高客户满意度:通过快速迭代和交付高质量的产品,DevOps可以满足客户的不断变化的需求,提高客户满意度。
5. 促进创新和竞争力:DevOps鼓励团队之间的协作和创新,有助于推动组织的持续创新和竞争力提升。
四、DevOps在整车软件开发平台中的应用
汽车基础软件平台作为智能汽车软件供应链中的关键组成部分,一方面需遵循相关主机厂的产品准入管理规范,另一方面又需依据如自动驾驶系统等特有的应用场景、业务需求及技术架构,并结合各企业自身的规模与实际情况去定制化的构建安全管理体系。
但在实际应用中,企业在全面实施DevOps前,已在DevOps周期的不同阶段有所投资,如在源码管理、构建环境、自动化测试等方面,但由于关注点或实施手段的差异,导致各环节成熟度不一,这促使企业在设计DevOps方案时倾向于集成开源工具,以建立自定义的CICD自动化流程。同时,由于DevOps工具链的开源性和轻量级部署特性促使项目团队更倾向于使用少量容器资源自我管理研发测试环境。然而,这种现状伴随着高昂的人力维护成本、数据安全风险等弊端。
又鉴于智能网联汽车的安全管理体系与互联网行业广泛推行的“安全左移”理念存在特定差异,特别是在网络安全和数据安全方面遵循的是智能汽车特有的行业标准,而非简单等同于通用互联网安全要求,指迫使当前汽车企业普遍采取安全团队独立运作的安全治理模式。
基于此,为了减少企业在研发过程中的孤立角色,通过一体化DevsecOps的应用,可拉齐产品、项目管理、开发、测试、质量、安全和运维等多方角色,从而真正地提高协作研发的整体效率。
另外,在智能汽车安全治理领域需要扩展如Tara分析工具、专项网络安全扫描工具、专项数据安全扫描工具等专业工具的集成场景,而这些扩展都可通过一体化平台进行统一展示。
来源:综合网络