查看原文
其他

给跪了!周志明老师给我寄了个快递...

歪歪 why技术 2022-09-10

你好呀,我是歪歪。

周五中午的时候,收到一个快递的信息通知,一看寄件人,居然是周志明老师。

今天收到了,赶紧去快递点取了出来:

想想这快递是周老师亲自寄出来的,还有点小激动呢:

快递里面是一本书,之前关注我的朋友一定不陌生:

因为一个月之前的周末,看到这本书的在线版,觉得自己发现了宝藏,赶紧写了一篇推荐的文章《我不服!这开源项目居然才888个星?》,贡献了自己的一点点绵薄之力。

刚刚我去看了,现在已经到了 1500+ 的 star 了,意味着真的有更多的人看到了这个宝藏。

赶得早不如赶得巧,我推荐这个开源书的时候怎么也想不到,纸质书也已经在制作中了,而且我也算是最早一批拿到纸质书的人之一了。

周志明老师,我相信不需要我做过多的介绍了。

学习 Java 你绕不过 JVM,而学习 JVM 你也就绕不过这个男人。

再说一下我手上的这本纸质书。

为什么叫“凤凰架构”

对于这本书的名字为什么取名叫做“凤凰架构”,周佬是这样解释的。

下面的笔者均指周佬。

首先,“Phoenix”(凤凰)这个词在东方的技术书中不常用,但在西方的软件工程读物中,尤其是在关于敏捷、DevOps话题的作品中时常出现。

软件工程小说《凤凰项目》讲述了徘徊在死亡边缘的凤凰项目在精益方法下浴火重生的故事。

马丁·福勒(Martin Fowler,软件开发教父)在诠释“持续交付”时,曾多次提到“Phoenix Server”(凤凰服务器,取其能够“涅槃重生”之意)与“Snowflake Server”(雪花服务器,取其“世界上没有相同的两片雪花”之意)的优劣比对。

而在企业软件开发的历史中,一项新技术发布时,常有伴以该技术开发的“宠物店”(PetStore)作为演示的传统(如J2EE PetStore、.NET PetShop、Spring PetClinic等)。

在对不同架构风格的演示中,笔者本也希望能遵循此传统,却无奈从来没养过宠物,遂改行开了书店(Fenix’s Bookstore,开源书中的使用到的项目就是以在线书店为项目背景),里面出售了几本笔者的著作,既可以夹带一点私货,同时也避免了使用素材时的版权隐患。

尽管相信没有人会误解,但还是强调一句,Oracle、Microsoft、Pivotal等公司设计“宠物店”的目的绝不是为了日后能在网上贩卖“宠物”,而是纯粹为了演示技术。

所以也请勿以“实现这种学生毕业设计复杂度的需求,引入如此规模的架构或框架,纯属大炮打苍蝇,肯定是过度设计”的眼光来看待接下来的“Fenix’s Bookstore”项目。

相反,如果可能的话,笔者会在有新的技术、框架发布时,持续更新,以恰当的形式添加到项目的不同版本中,其技术栈可能越来越复杂。

笔者希望把这些新的、不断发展的知识,融入已有的知识框架之中,便于自己学习、理解、思考,同时能将这些技术连同自己的观点和看法分享给更多感兴趣的人。

也算是缘分,网名“IcyFenix”是二十多年前笔者从中学时代开始使用的,它源自暴雪公司的即时战略游戏《星际争霸》的Protoss英雄Fenix。

如名字预示的那样,他曾经是Zealot,牺牲后以Dragoon的形式重生,带领Protoss与刀锋女王Kerrigan继续抗争。尽管中学时期我已经笃定自己未来肯定会从事信息技术相关的工作,但显然不可能预计到二十年后我会写下这些文字。

所以,既然我们要开始一段关于“Phoenix”的代码与故事,那便叫它“凤凰架构”,如何?

主要内容

全书共 16 章,分为演进中的架构、架构师的视角、分布式的基石、不可变基础设施和技术方法论五部分。

每一部分都有相对明确的主题与目标,建议按顺序阅读各部分以获得更有逻辑性的阅读体验。

不过每部分内,各章节之间并没有明显的前后依赖关系,大家可以从任何一个感兴趣的章节开始阅读。

第一部分 演进中的架构(第1章)

着重介绍了软件开发历史中多种主流架构风格出现的契机、解决的问题以及带来的新缺陷。

这部分适合所有开发者,但尤其推荐刚刚从单体架构向微服务架构转型的开发者去阅读。

第一部分即是全书的绪论,也是对后续将用到的大量名词概念所做的铺垫。

这部分没有谈论过于具体的技术,只是着重介绍了软件开发历史中多种主流架构出现的契机、解决的问题以及带来的新缺陷。

第二部分 架构师的视角(第2~5章)

总结了一名架构师应该在架构设计时思考哪些问题,有哪些主流的解决方案和行业标准做法,各种方案有什么优缺点,不同的解决方法会带来什么不同的影响,等等。

这部分介绍的内容与具体哪一种架构风格无关,作为后续实践的基础,讨论的是普适的架构技术与技巧,无论你是否关注微服务、云原生这些概念,无论你是从事架构设计还是从事编码开发,了解这里所列的基础知识,对每一个技术人员都是有价值的。

第三部分 分布式的基石(第6~10章)

重点讨论了“不同架构风格是应该在技术规范上统一,还是由应用系统自行解决”这个问题,给出了解决思路、方法和常见工具。

只要选择了分布式架构,无论是 SOA、微服务、服务网格或者其他架构风格,涉及与远程服务交互时,服务的注册发现、跟踪治理、负载均衡、故障隔离、认证授权、伸缩扩展、传输通讯、事务处理,等等,这一系列问题都是无可避免的。不同的架构风格,其区别是到底要在技术规范上提供统一的解决方案,还是由应用系统自行去解决,又或者在基础设施层面将一类问题隔离掉,这部分将会讨论这类问题的解决思路、方法和常见工具。

第四部分 不可变基础设施(第11~15章)

重点讲解了基础设施不变性的目的、原理与实现途径,包括虚拟化容器、容器间网络、持久化存储、资源与调度、服务网格等内容。

“不可变基础设施”已经提升到了与微服务平级的重要程度,此时它的内涵已不再局限于方便运维、程序升级和部署的手段。

而是升华为向应用代码隐藏分布式架构复杂度、让分布式架构得以成为一种可普遍推广的普适架构风格的必要前提。

在云原生时代、后微服务时代中,软件与硬件之间的界线已经彻底模糊,无论是基础设施的运维人员,抑或是技术平台的开发人员,都有必要深入理解基础设施不变性的目的、原理与实现途径。

第五部分 技术方法论(第16章)

面向技术决策者集中讨论了与分布式、微服务、架构等相关的理论话题,将解决问题的能力归纳、总结、升华为方法论。

这部文档的主体内容是务实的,多谈具体技术,少谈方向理论。只在这部分中会集中讨论几点与分布式、微服务、架构等相关的相对务虚的话题。

而且尤其可贵的一点是全书以实践为导向,一个案例贯穿全书,同时给出了基于Spring Boot、Spring Cloud、Kubernetes、Istio、AWS Lambda 五种架构风格的样例工程。

最后

我是一个很喜欢书的人,书真的是世界上最美的东西之一了。

如果你有兴趣,可以先大概浏览一下在线版:

https://icyfenix.cn/

看了之后觉得内容不错,我推荐你买一本纸质书看看。

看纸质书和看在线版的感觉是很不一样的,不论是视觉还是触觉,我都更加偏爱纸质书一点。

纸质书最好的一点还是可以自己做很多笔记,时隔多年后再次看到当年做的笔记,我认为是一件和奇妙和舒服的感觉。

哪怕是一根简单的下划线,几年以后再次回看,你可能都还记得当时为什么会去画这一根线。

这是在线版阅读很难带来的体验。


大家可以去各大平台直接购买,也可以在这里扫码购买:

当然了,我也去出版社申请到了四本书作为读者福利送给大家。

活动参与方式分为两种。

第一种,在本文留言。截至 2021 年 7 月 13 日中午 12 点,点赞数最高的两位各获得一本。注意,可以正常拉票,但是别机器刷赞。刷赞我可以监控的到,直接拉黑。

第二种,朋友圈点赞。明晚 20 点,我会发一个相关的朋友圈,具体第几个点赞的能拿到书,到时候见朋友圈吧。

放个二维码。

最后,周老师的寄语,送给大家:

祝你永远对新知识充满好奇。


点击阅读全文购买

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存