Skip to Content
寻求 SRE
book

寻求 SRE

by David N. Blank-Edelman
July 2025
Intermediate to advanced
590 pages
6h 21m
Chinese
O'Reilly Media, Inc.
Content preview from 寻求 SRE

第 13 章. Facebook 的生产工程

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

大卫:什么是生产工程?

佩德罗从哲学上讲,生产工程源于这样一种信念,即运营问题应通过软件解决方案来解决,而实际构建软件的工程师是在生产中操作该软件的最佳人选。

在软件发展的早期,编写代码的开发人员也会调试和修复代码。有时,他们甚至不得不深入研究硬件问题。多年来,随着远程软件系统、互联网和大型数据中心的出现,这种做法发生了巨大变化。如今,软件工程师编写和开发应用程序,然后将代码交给质量保证团队进行测试,再交给另一个团队进行部署和调试,这样的情况仍然很常见。在某些环境中,发布工程团队负责部署代码,运营团队负责确保系统稳定并响应警报。当质量保证和运营团队掌握了解决问题所需的知识,并且团队之间的反馈回路健康时,这种方法就能很好地发挥作用。如果情况并非如此,修复和/或调试生产问题的工作就需要反馈给软件工程师,而这种工作流程可能会大大延误问题的修复。在 Facebook,我们的生产工程 [PE] 团队只是将软件工程 [SWE] 和运营整合的概念带了回来。

几年前,我们开始采用 PE 模式,专注于在软件工程和运营团队之间建立更具协作性的文化。我们的目标是确保 Facebook 基础设施的健康,确保我们强大的用户社区能够随时访问平台。PE 团队是实现这一目标的重要组成部分,他们通过自动化、编写新工具让每个人都能更轻松地进行操作、进行性能分析、进行核心系统调试、在必要时进行灭火,以及教其他人如何自己运行系统来实现这一目标。Facebook 工程部门建立了通用的基础架构,每个人都用它来构建和部署软件。多年来,Facebook 的基础设施实现了有机增长,虽然我相信我们会解决今天的许多运行问题,但我们仍然没有解决这些问题。生产工程师帮助弥补了这一差距,确保团队能够回到解决我们所面临的棘手软件问题上,并尽可能减少在运营问题上花费的时间。

PE 团队不仅要编写代码,最大限度地降低运营复杂性,还要调试实时生产中的硬问题,这些问题影响着全球数十亿人--从 Facebook 的 Hadoop 数据仓库等后端服务,到 News Feed 等前端服务,再到缓存、负载均衡和部署系统等基础设施组件。PE 与 SWE 并肩工作,保证了 Facebook 的正常运行。该团队还帮助软件工程师了解他们的软件如何与环境互动。

将生产工程视为大规模制造(硬件、汽车、工业等)、专家工程和良好运营管理的交叉点。生产工程师通常拥有丰富的工程实践知识,并了解与生产运营相关的挑战。生产工程师的目标是确保生产以最顺畅的方式运行。我们的角色可以形象地比喻为制造汽车的生产线。一个设计师团队负责设计汽车,一个工程师团队负责制造硬件,而另一个团队则负责将这一切组装在一起的自动化设备。当这一流程出现问题时,生产工程师就会介入,因为他们了解生产线的整个流程,包括上游和下游的所有环节。他们了解汽车是如何设计的,应该如何运行,以及用于制造汽车的软件应该做什么。有了这些知识,生产工程师就能在必要时排除故障、诊断和解决问题,他们还能与整个团队合作,防止问题在未来发生。

在 Facebook,生产工程师不是生产线操作员,但他们确实了解生产线上所有设备的实际运行情况。例如,当软件响应用户流量时,甚至当软件出现故障时,生产工程师往往是最了解代码如何与环境交互、如何修复和改进代码以及如何使代码长期保持高性能的人。 ...

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

设计数据密集型应用程序

设计数据密集型应用程序

Martin Kleppmann
云数据湖

云数据湖

Rukmani Gopalan
软件工程基础

软件工程基础

Nathaniel Schutta, Dan Vega

Publisher Resources

ISBN: 9798341663169