Skip to Content
Java 开发人员的 DevOps 工具
book

Java 开发人员的 DevOps 工具

by Stephen Chin, Melissa McKay, Ixchel Ruiz, Baruch Sadogursky
July 2025
Intermediate to advanced
344 pages
4h 17m
Chinese
O'Reilly Media, Inc.
Content preview from Java 开发人员的 DevOps 工具

第 2 章 真理体系 真理体系

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

一个复杂而有效的系统总是从一个简单而有效的系统演变而来的

约翰-盖尔(盖尔定律)

要建立有效的 DevOps 流水线,必须拥有 单一的真相系统,以了解哪些比特和字节被部署到生产中。通常,这要从源代码管理系统开始,该系统包含编译和构建到生产部署中的所有源代码。通过追溯生产部署到源代码控制中的特定修订,可以对错误、安全漏洞和性能问题进行根本原因分析。

源代码管理解决了软件交付生命周期中的几个关键问题:

协作

如果没有有效的源代码管理,在单一代码库 上工作的大型团队就会不断相互阻挠,随着团队规模的扩大而降低工作效率。

版本控制

源代码系统可让您跟踪代码的 版本,以确定哪些版本被部署到生产中或发布给客户。

历史

通过按时间顺序记录软件开发过程中的所有版本 ,就有可能恢复到旧版本的代码,或识别导致退步的具体变更。

归属

了解谁对 中的特定文件进行了修改,就可以在进行修改时确定所有权、评估领域专业知识和风险。

依赖关系

源代码已成为项目其他关键元数据(如对其他软件包的依赖性)的典型源 。

质量

源代码管理系统可以在修改被接受之前,方便地对修改进行 同行评审,从而提高软件的整体质量。

既然源代码管理在软件开发中扮演着如此关键的角色,那么了解它的工作原理并选择一个最能满足企业需求和理想 DevOps 工作流程的系统就显得尤为重要。

三代源代码管理

协作是软件开发的重要组成部分, ,随着团队规模的扩大,在共享代码库上进行有效协作的能力往往会成为制约开发人员工作效率的瓶颈。此外,系统的复杂性往往会增加,因此需要大规模更新以完成全系统变更和重构的源代码文件已不再是管理十几个文件或几个模块,而是数以千计。

为了满足代码库协作的需要,源代码管理 (SCM)系统应运而生。 第一代 SCM 系统通过文件锁定来处理协作 。例如 SCCS 和 RCS,它们要求在编辑前锁定文件,完成修改后再释放锁定,以便其他人员进行贡献。这似乎消除了两个开发人员进行冲突修改的可能性,但有两个主要缺点:

  • 由于在编辑之前必须等待其他开发人员完成修改,因此工作效率仍然会受到影响。 在文件较大的系统中,这可能会有效地限制并发性,一次只能有一个开发人员。

  • 但这并不能解决跨文件冲突的问题,两个开发人员仍有可能修改相互依赖的不同文件,并通过引入冲突的更改来制造错误或不稳定的系统。

从 Dick Grune 创建的并发版本系统(CVS)开始,第二代 版本控制系统做出了重大改进。CVS 在文件锁定(或不锁定)方面具有革命性的意义。 它不是阻止你修改文件,而是允许多个开发人员同时对同一文件进行修改(可能是冲突的)。 后来通过文件合并解决了这一问题:通过差异(diff)算法分析冲突文件,并将任何冲突的修改提交给用户解决。

通过将冲突变更的解决延迟到签入,CVS 允许多个开发人员自由修改和重构大型代码库,而不会因相同文件的其他变更而受阻。 这不仅提高了开发人员的工作效率,还可以对大型功能进行单独隔离和测试,之后再将其合并到集成代码库中。

目前最流行的第二代 SCM 是 Apache Subversion,它是作为 CVS 的直接替代品而设计的。与 CVS 相比,它有几个优点,包括将提交作为单个修订版进行跟踪,从而避免了文件更新碰撞,以免破坏 CVS 版本库状态。

第三代版本控制系统是 分布式版本控制系统(DVCS)。在 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Pro Java Microservices with Quarkus and Kubernetes: A Hands-on Guide

Pro Java Microservices with Quarkus and Kubernetes: A Hands-on Guide

Nebrass Lamouchi

Publisher Resources

ISBN: 9798341662933