Skip to content

Commit

Permalink
更新序言
Browse files Browse the repository at this point in the history
  • Loading branch information
isno committed Mar 4, 2024
1 parent 7065526 commit 0bff199
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

既然翻开这本书,我猜测你大概率是个互联网从业者,我还能猜出这几年你大概率被这些层出不穷的概念包围:微服务、SRE、容器、容器编排、ServiceMesh、Serverless、可观测性,当然不能遗漏了各种 Ops,DevOps、GitOps、AIOps、MLOps 等等。这些概念其实全部围绕着构建大规模分布式基础架构的几个核心要素:稳定(不出任何问题)、效率(快速响应市场需求)、成本(充分有效的利用资源)。

近几年来,云基础架构发生了翻天覆地的变化和革新,这也对如何构建上层应用产生重大的影响,分析上面这些激动人心的技术变革以及讨论如何为业务赋能之前,我们先思考引发这一波技术浪潮的核心驱动力是什么?
近几年来,互联网基础架构发生了翻天覆地的变化和革新,这也对如何构建上层应用产生重大的影响,分析上面这些激动人心的技术变革以及讨论如何为业务赋能之前,我们先思考引发这一波技术浪潮的核心驱动力是什么?

## 软件在吞噬世界

Expand Down Expand Up @@ -42,7 +42,7 @@

这样的背景下,对软件开发有了更高的要求,软件开发的方式也不得不跟随时代而变化,首当其冲的就是如何解决规模越来越大同时变更越来越快的难题。

## 时代巨变,掀起技术浪潮
## 时代巨变掀起技术浪潮

软件对各行各业的渗透和对世界的改变,以及移动互联网时代巨大的用户基数下快速变更和不断创新的需求对软件开发方式带来巨大的推动力,我们可以清晰地看到如此波澜壮阔的技术浪潮:

Expand All @@ -58,19 +58,19 @@
云计算的技术逐渐发展成为它本来该有的模样,以及与这样的云所匹配的软件架构,还有以及与这样的架构所匹配的开发流程与方法论。
:::

## 沉淀底层的原理和方法论
## 如何应对变化

视角到转回微观个体,作为技术人员,我们如何应对宏观的世界变化?
视角到转回到工程师个体,不管你是否能接受,软件行业解决问题的技术一直在变化,并且这种变化不是循环渐进的升级,而是革命性的替换。例如容器替代虚拟机、服务网格替代 SpringCloud、观测替代监控、Cilium Network Policy 替代 iptables。这种背景下,如果只专注于手头的工作,过度关注于某个技术深度和细节,大革命来临的时候,你关注的细节可能再也没有意义。

所幸,不管技术发展如何日新月异,其根本性变化并没有那么快。尝试理清它们脉络,总能找到若干贯穿其中的一些历久弥新的底层原理、方法论,比如分布式系统演进方向是 CAP 定理的权衡选择,局限于时间与空间的法则。举个例子,Kubernetes 的网络方案,Cilium、Calico、Flannel、weave 表面五花八门,但它们的基本技术和底层原理总结下来基本没什么变化,只是把这些不同的计算机基本原理、方法重新组合起来,换种形式去解决因为业务变化带来的新问题。
所以,本书很少就某个技术,而是希望能找到这些变化中的根本性,思考问题不同的解决方式,尝试看透问题的本质。找到这些历久弥新、持久不变的底层原理、方法论,例如微服务架构的演进方向是 CAP 定理的权衡选择,局限于时间与空间法则。再看容器、服务网格、Cilium、Calico,它们的基本技术和底层原理也没什么变化,只是把不同的计算机基本原理、方法重新组合起来,换种形式去解决因为业务变化带来的新问题。

所以,本书的宗旨是希望能说清楚这些问题的本质,解释清楚整个服务架构的发展历程,走过了哪些弯路,以至于今天使用了哪些技术的缘由,讨论它们背后遵循的不变的原则、知晓这些技术做的取舍、探索它们的设计选择。
最后,本书的宗旨是希望能说清楚这些问题的本质,解释清楚整个服务架构的发展历程,走过了哪些弯路,以至于今天使用了哪些技术的缘由,讨论它们背后遵循的不变的原则、知晓这些技术做的取舍、探索它们的设计选择。

善于思考总结的人总会从历史的进程中得到相关的规律,所以,**过时的不是基础的技术原理和方法,而是人的思考能力以及没有跟上节奏的对技术的认知**

## 本书适合哪些读者

本书主要针对软件工程师、软件架构师以及技术负责人等,特别是那些需要对系统架构做权衡的人,譬如需要选择一些工具去解决某个领域的特定问题。退一步,如果你不需要做这些决定,本书也可以帮助你更好地理解这些技术的优缺点。
本书主要针对软件工程师、软件架构师以及技术负责人等,特别是那些需要对系统架构做权衡的人,譬如时常需要选择一些工具去解决某个领域的特定问题。退一步,如果你不需要做这些决定,本书也可以帮助你更好地理解这些技术的优缺点。

阅读本书,最好了解一些请求/响应型(Web)系统原理,熟悉一些常见的网络协议(譬如 TCP、HTTP 等)。如再有一些后端开发经验,这将会对阅读有很大帮助,至于你熟悉何种编程语言倒没有太大关系。

Expand Down

0 comments on commit 0bff199

Please sign in to comment.