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

第 26 章 服务网格:微服务的管理者?

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

在过去的 5 到 10 年中,微服务已成为分布式系统设计和运营的主流。曾几何时,微服务只是最大互联网公司的基础设施,而现在,"不可变的容器调配和调度"、"持续集成和部署"、"分散控制 "和 "多语言实现 "等短语在技术圈中嗡嗡作响。诚然,微服务架构的确可以让大型开发团队以更敏捷的方式运作。然而,人们往往忽视了一个残酷的现实,那就是大型互联网公司通常都投入了数百人年的开发和运营精力,以确保分布式架构在实践中运行良好。可靠性工程师们不禁要问,在尝试摆脱我们的单体应用程序并在实践中部署这样的架构时,如何应对无数的运营问题?服务如何相互查找和通信?如何观察和调试分布式服务?如何打包和部署服务?会发生哪些复杂的故障情况?

现场的微服务实践者很快就会意识到,迁移到分布式架构时出现的大多数运行问题归根结底都集中在两个方面:Network+ 和可观察性。与单体应用程序相比,要对一组相互交织的分布式服务进行联网和调试,简直是一个巨大的问题。对于可靠性工程师来说,这一事实最终意味着什么?一个难以可靠运行的巨大混乱局面

在过去几年中,出现了一种新的模式1在过去几年中,出现了一种新的模式,最常见的就是服务网格。服务网格为那些试图构建和运行微服务架构的人提供了一个喘息的机会,因为它创建了一个通用的基底,应用程序可以在这个基底上进行通信。开发人员可以使用任何语言编写应用程序,基本上不需要考虑分布式网络是如何实现的、如何检测的,以及最重要的是如何可靠地运行的。本章将探讨引入服务网格的原因,以及微服务开发人员和可靠性工程师在架构上的优势。本章最后介绍了 Lyft 部署基于 Envoy 的服务网格的案例研究。

准备好摆脱单体了吗?

在任何人开始考虑微服务之前,他们通常已经拥有一个由以下部分组成的正常运行的单体应用程序,如图 26-1 所示:

  • 互联网负载平衡器(如亚马逊网络服务 [AWS] 弹性负载平衡器 [ELB)

  • 无状态应用堆栈(如 PHP 或 Node.js)

  • 数据库(如 MongoDB 或 MySQL)

Monolithic architecture.
图 26-1. 单体架构

非常知名的互联网应用(如 Twitter、Salesforce、Snapchat 和其他许多应用)都变得非常庞大,处理高流量负载时,只需对列表中的项目进行少量修改即可。为什么会这样?因为与完全分布式架构相比,这种架构的理解和操作要简单得多。本章并不详细讨论为什么公司最终几乎都会从单体架构转向微服务架构;关于这个话题已经写了很多。2不过,从 Network+ 和可观察性的角度来看,讨论一些即使是这种非常基本的架构也已经典型可见的运行问题还是很有启发性的。下面我们就来看看其中的一些问题:

缺乏网络可见性

图 26-1 中,客户端需要与负载平衡器通信,负载平衡器需要与应用程序通信,应用程序需要与数据库通信。因此,实际上简单的单体已经是一个分布式应用程序,具有网络和可观测性的复杂性。如果出了问题,工程师如何确定问题的根源?他们只能依靠现有的统计、日志和跟踪工具。很可能,调试工具和数据很少,很难访问,而且在所有组件中都不相同,因此诊断非常困难。

应用层连接处理效率低下 ...
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