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版

第 4 章 核心实践 核心实践:将一切定义为代码

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

第 1 章中,我指出了帮助你快速、可靠地更改基础架构的三个核心实践:将所有内容定义为代码、持续测试并交付所有进行中的工作,以及构建小而简单的组件。

本章将深入探讨这些核心实践中的第一项,从最普通的问题开始。为什么要将基础架构定义为代码?哪些类型的事物可以定义为代码,哪些类型的事物应该定义为代码?

乍一看,"将一切定义为代码 "在本书中似乎显而易见。但不同类型语言的特点与以下各章相关。特别是,第 5 章介绍了使用声明式语言来定义低层("低层基础架构语言")或高层堆栈("高层基础架构语言")第 16 章解释了在创建可重用代码模块和库时,声明式代码还是编程式代码最合适。

为什么要将基础架构定义为代码

比起编写大量代码然后将其输入工具,有更简单的方法来配置基础设施。Go 进入平台基于 Web 的用户界面,点击并创建一个应用服务器集群。点击提示,利用你的命令行能力,使用供应商的 CLI(命令行界面)工具来创建一个牢不可破的网络边界。

不过说真的,前面几章已经解释了为什么使用代码构建系统更好,包括可重用性、一致性和透明度(参见"核心实践:将一切定义为代码")

将系统作为代码来实施和管理,可以让您利用速度来提高质量。这是通过四个关键指标(参见"四个关键指标")衡量高性能的秘诀。

可以定义为代码的内容

每种基础架构工具都有不同的源代码名称,例如 playbooks、cookbooks、manifests 和 templates。我一般将其称为基础架构代码,有时也称为基础架构定义

基础架构代码指定了您需要的基础架构元素以及配置方式。运行基础架构工具,将代码应用到基础架构实例中。该工具可以创建新的基础架构,也可以修改现有的基础架构,使其与你在代码中定义的内容相匹配。

您应定义为代码的内容包括

  • 基础设施堆栈,是由基础设施云平台调配的元素集合。有关基础设施平台的更多信息,请参阅第 3 章;有关基础设施堆栈概念的介绍,请参阅第 5 章

  • 服务器配置的要素,如软件包、文件、用户账户和服务(第 11 章)。

  • 服务器角色是服务器元素的集合,这些元素一起应用于一个服务器实例("服务器角色")

  • 服务器映像定义可生成用于构建多个服务器实例的映像("构建服务器映像的工具")

  • 应用程序包定义了如何构建可部署的应用程序构件,包括容器(第 10 章)。

  • 交付服务的配置和脚本,包括管道和部署("交付管道软件和服务")

  • 配置运行服务,如监控检查。

  • 验证规则,包括自动测试和合规规则(第 8 章)。

选择外部化配置的工具

基础架构即代码,顾名思义,就是在基于文本的文件中指定基础架构。您可以将这些文件与用于将它们应用到系统中的工具分开管理。您可以使用任何工具阅读、编辑、分析和处理您的规范。

非代码基础架构自动化工具将基础架构定义存储为数据,您无法直接访问。相反,您只能通过使用工具本身来使用和编辑规范。工具可能有图形用户界面、应用程序接口和命令行界面的组合。

这些封闭式工具的问题在于,它们限制了你可以使用的实践和工作流程:

  • 只有当工具具有内置版本控制功能时,您才能对基础架构规范进行版本控制。

  • 只有当工具有办法在您进行更改时自动触发作业时,您才能使用 CI。

  • 只有当工具能让您轻松发布和推广基础架构规范时,您才能创建交付管道。

从软件源代码中汲取的经验教训

外部化配置模式反映了大多数软件源代码的工作方式。有些开发环境会将源代码隐藏起来,如 ...

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