云原生架构:从技术演进到最佳实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

谈到一个应用,我们首先考虑的是运行这个应用所需要的系统资源。其次,关于应用自身的架构模式也要考虑,从传统的单体架构模式到后来的微服务模式、服务网格,以业务功能为维度进行分拆更有利于应用的不断演进。最后,还需要从软件工程的角度来考虑云原生应用的设计、开发、部署、运维等不同阶段。

设计云原生应用需要从以上三个维度进行全方位的思考。所谓原生为云设计的应用,就是指从最初便被设计为在云上以最佳方式运行的应用,这种应用能充分发挥云平台的各种优势。

架构师是推动上述应用设计、开发,真正将云原生应用落地的人。那么何为架构师?

架构师的基本职责是在项目早期就设计好基本的框架,这个框架既能够确保团队成员顺利编写代码,满足近期业务需求的变化,又能为进一步的发展留出空间(所谓 scalability),即确定技术选型。

20多年前的经典著作Design Patterns中讲过学习设计模式的意义,放在架构师的定义中非常贴切:成为架构师并不是要我们学习一种新的技术或者编程语言,而是要建立一种用于交流的共同语言和词汇,在设计方案时方便沟通,同时也帮助我们从更抽象的层次去分析问题本质,不被一些实现的细枝末节所困扰。当把很多问题抽象出来之后,我们也能更深入、更好地去了解现有系统——这些意义,对于今天的后端系统设计来说,也仍然是正确的。

总而言之,架构设计对应用有着深远的影响,它的好坏决定了应用的整体质量,并且决定了开发人员开发、维护和扩展应用的难易程度。

对架构师而言,不能为了架构而设计架构,在选择架构前,要始终理解问题和需求,不要本末倒置。一方面,需要精心设计应用架构;另一方面,需要对前端UI、测试、运维、数据管理等方面都非常熟悉,从而做出正确的决定。

本书将从全栈视角出发,从系统资源到应用架构,再到软件工程,深入浅出地讲解计算机技术的演进,给架构师或想要成为架构师的人一个非常好的角度来看待不同时代的技术,以及其能解决的问题。本书还会介绍在现有的云原生技术下,如何以最佳的形态和方式来构建一个应用,使其能够真正发挥云的能力,从而达到1+1>2的效果。

本书内容

本书分为“技术演进篇”和“最佳实践篇”两篇,涉及4个部分,共19章,大概的内容分布及简介如下。

技术演进篇

第1部分 系统资源(第1~5章)

基础架构解决的是一些通用性问题,主要涉及应用运行时所需要的系统资源,这些系统资源是设计任何类型的应用都需要重视的内容。针对不同的系统资源,应用的部署、运行方式也不尽相同。这一部分将首先介绍操作系统、虚拟化等基本知识,然后讲解云计算相关内容,以及容器与容器编排的核心知识。

第2部分 应用架构(第6~11章)

架构的重要性在于实现应用的非功能性需求。非功能性需求往往能决定一个应用运行时的质量,也能决定开发时的质量。这一部分将宏观介绍应用架构的定义、分类、目标等,列举主流架构视图,并按照技术演进过程介绍单体架构、分布式架构、SOA架构、微服务架构等内容。

第3部分 软件工程(第12~16章)

1968年,世界各地的计算机科学家在德国的 Garmisch 召开了一次国际会议,在会上正式提出了“软件工程”一词。软件工程管理的核心目的是支撑新的演进式架构。软件工程的整个流程分为5个阶段:应用设计、软件开发、开发运维一体化、SRE运维、数字化运营。在这一部分中,我们将紧密围绕以上5个技术演进阶段,从软件工程角度讲解云原生应用架构的实现。

最佳实践篇

第4部分 架构、应用落地与中台构建(第17~19章)

在这一部分中,我们将详细剖析云原生架构,介绍其定义、涉及的关键技术,以及具体的实现过程。本部分还会介绍应用落地的最佳实践,涉及应用改造、应用拆分、API 设计与治理等。此外,“中台”这个概念也与云原生密不可分,本部分还会阐述云原生应用与中台之间的关系,以及如何通过中台使应用的云原生化更加便捷。

联系作者

本书涉及很多技术领域和知识点,尽管我们撰写本书时力图严谨,尽最大努力排除错误,但仍有可能存在纰漏。若你在阅读过程中发现错误,产生疑问,或者对本书有其他好的建议,都可以与我们联系。

邮箱地址:cloud_native@126.com。

致谢

在本书的撰写过程中,我们得到了大量的帮助,有些来自领导,有些来自同事,有些来自网络博客和经典图书,在此向这些提供帮助的人表示感谢。感谢所有推荐本书,以及为本书进行技术审校的专家们。感谢电子工业出版社博文视点的孙奇俏老师对我们的帮助和指导。最后,感谢所有购买本书的读者朋友,衷心祝愿各位在技术之路上不断精进。

读者服务

微信扫码回复:42127

·加入“云计算”读者交流群,与更多读者互动

·获取【百场业界大咖直播合集】(持续更新),仅需1元