Skip to Content
基础设施即代码,第2版
book

基础设施即代码,第2版

by Kief Morris
May 2025
Beginner to intermediate
430 pages
4h 37m
Chinese
O'Reilly Media, Inc.
Content preview from 基础设施即代码,第2版

第 8 章 核心实践 核心实践: 持续测试和交付

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

持续测试和交付是 "基础架构即代码 "三大核心实践的第二项,其中还包括将一切定义为代码和构建小片段。测试是 Agile 软件工程的基石。极限编程(XP)强调使用 TDD 首先编写测试,并经常使用 CI 集成代码。1CD 将此扩展到在开发人员工作时测试代码的全部生产就绪状态,而不是等到他们完成一个版本的工作。2

如果在编写应用程序代码时对测试的强烈关注能带来良好的结果,那么我们有理由期待它对基础架构代码也同样有用。本章将探讨测试和交付基础架构的策略。它在很大程度上借鉴了敏捷工程的质量方法,包括 TDD、CI 和 CD。这些实践都是通过将测试嵌入代码编写过程,而不是留待以后再做,来提高系统的质量。

本章重点介绍测试基础架构的基本挑战和方法。下一章(第 9 章)将在本章的基础上,为测试基础架构栈代码提供具体指导,而第 11 章将讨论测试服务器配置代码(请参阅"测试服务器代码")

为什么要持续测试基础架构代码?

测试基础设施的变更显然是个好主意。但是,构建和维护一套测试自动化代码的必要性可能就不那么明确了。我们通常认为构建基础架构是一次性活动:构建它、测试它,然后使用它。为什么要花费精力为构建一次的东西创建自动化测试套件呢?

创建自动化测试套件是一项艰巨的工作,尤其是考虑到实施交付和测试工具及服务(Infrastructure as Code 服务器、管道、测试运行器、测试脚手架以及各种类型的扫描和验证工具)所需的工作。在开始使用 "基础架构即代码 "时,构建所有这些东西似乎比构建在其上运行的系统更费事。

"使用基础架构即代码来优化变更 "一文中我解释了实施对基础架构进行变更的系统的基本原理。概括地说,在构建基础架构后,对其进行的更改会比想象的多得多。任何非复杂系统上线后,都需要对其进行修补、升级、修复和改进。

CD 的一个主要优点是消除了铁器时代对系统生命周期中 "构建 "和 "运行 "阶段的传统区分。3与系统本身一起设计和实施交付系统,包括自动测试和代码推广。利用这一系统逐步构建基础架构,并在其整个运行周期内逐步加以改进。Go "上线 "几乎是一个任意事件,是谁在使用系统的改变,但不是系统管理方式的改变。

持续测试的含义

Agile 工程的基石之一是边工作边测试--提高质量。越早发现你编写的每一行代码是否可以用于生产,你就能越快地工作,越早地实现价值。更快地发现问题也意味着花更少的时间回头调查问题,花更少的时间修复和重写代码。持续修复问题可以避免积累技术债务。

大多数人都知道快速反馈的重要性。但真正高绩效团队的与众不同之处在于他们如何积极追求真正的持续反馈。

传统的方法是在团队实现了系统的全部功能后再进行测试。时间盒方法则更进一步。团队在开发过程中定期进行测试,例如在冲刺结束时。精益或看板团队在完成每个故事时都会进行测试。4

真正的持续测试需要比这更频繁的测试。人们一边编写代码,一边运行测试,甚至在完成一个故事之前。他们经常将代码推送到集中的自动化构建系统中,最好每天至少一次。5

人们需要在推送代码时尽快获得反馈,以便在尽可能不影响工作流程的情况下做出响应。紧密的反馈回路是持续测试的精髓。

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

构建数据集成解决方案

构建数据集成解决方案

Jay Borthen
金融领域的机器学习与数据科学蓝图

金融领域的机器学习与数据科学蓝图

Hariom Tatsat, Sahil Puri, Brad Lookabaugh
可观察性工程

可观察性工程

Charity Majors, Liz Fong-Jones, George Miranda

Publisher Resources

ISBN: 9798341658493