企业级云原生架构:技术、服务与实践
上QQ阅读APP看书,第一时间看更新

前  言

编写背景

信息技术的发展日新月异。云原生(cloud native)的概念自2015年提出,迅速得到主流互联网公司和技术开发人员的支持,相关社区也非常活跃。云原生是一整套综合的技术体系,包括方法论和各个领域的技术产品。但目前市场上介绍云原生技术及其相关产品的图书非常匮乏。市面上这类图书大多只是介绍某一特定技术或其产品。

随着云计算作为一项国家基础建设战略向纵深发展,越来越多的企业把核心应用系统部署在云上。为更好地发挥云的价值,企业应用正经历从云托管(cloud hosting)到云原生的架构演进过程。顾名思义,云原生是面向“云”而设计的应用,而不仅仅是简单地把应用部署在云上的虚拟机或容器之中。云原生应用系统针对云的分布式、去中心化、一切资源服务化、弹性、快速迭代等特点,对应用系统进行完整的重构。云原生充分利用云基础设施的弹性和云资源服务的便捷性,可以为企业构建灵活多变、稳定可靠的在线业务系统。云原生正在通过方法论、工具集和理念重塑整个软件技术栈和生命周期,帮助企业和开发者在云上构建和运行可弹性扩展、容错性好、易于管理、便于观察的系统。有了诸多标准化的产品技术,企业上云的拐点已经到来,云原生已经成为企业共享云计算技术红利的便捷方法之一。

本书特色

本书具有以下几个特色。

(1)技术全面覆盖。云原生涉及的技术领域非常多。CNCF生态蓝图就把目前云原生生态的参与者根据其提供的产品及服务,分为8个主要的方向,涉及技术产品达到数百个之多。本书虽无法涵盖云原生全部的技术产品,但针对IaaS、DaaS、PaaS不同技术领域核心主流的产品均有涉猎,让读者对云原生相关技术有一个相对完整的概念。

(2)内容深入浅出。本书在介绍云原生相关技术产品时,力求深入浅出,不仅有偏方法论的理论概述,也有技术原理的深入分析,让读者对这些技术产品知其然,更知其所以然。

(3)紧贴技术趋势。从技术发展的趋势,本书完整地介绍了企业应用架构的演进过程。从单体架构、分布式架构、SOA、微服务架构、Service Mesh架构、Serverless架构,讲述了不同架构的技术特点以及应用场景,让读者不仅了解企业应用架构的发展过程,还能紧紧把握当前主流的技术发展趋势。

(4)结构层次递进。按云分层的层次结构,自底向上地介绍云基础设施服务、数据资源服务、中间件服务等不同层次的产品及其技术,让读者的思维跟随本书所介绍的知识体系,逐步勾勒出企业应用系统技术架构的框图。

(5)理论与实践并重。本书融入了作者20年软件开发及架构设计的工作经验,分析和对比了各种技术产品的优缺点、适用场景,其中绝大部分产品及服务在实际应用系统开发过程中会用到,因此,本书具有很好的实践指导意义。本书第四部分还重点介绍了在一个大型分布式应用系统开发过程中所面临的高可用、数据一致性、容灾多活等3个方面的设计原则及解决方案。这些解决方案会综合使用前面章节介绍的技术及产品,让读者思考如何用技术产品及架构设计来应对现实系统所面临的问题和挑战。

本书内容涵盖云原生相关的技术、服务与实践,分为4个主要的部分,共计12章。

第1章初见云原生,介绍云原生的起源、云原生架构的特点。

第2章企业应用架构演进,介绍企业IT系统应用架构的演进过程。

第3章Docker,介绍容器技术的发展过程、Docker的技术原理。

第4章Kubernetes,介绍Kubernetes的系统架构、运行原理以及核心的技术组件。

第5章Prometheus,介绍Prometheus监控系统的组成及其架构。

第6章微服务,介绍微服务架构的特点、设计原则以及当前主流的微服务框架。

第7章云原生IaaS服务,介绍云原生基础设施服务,包括容器、镜像仓库、存储和网络。

第8章云原生DaaS服务,介绍云原生数据资源服务,包括数据库、对象存储、日志、消息队列、大数据等服务。

第9章云原生PaaS服务,介绍云原生中间件相关服务,包括分布式应用服务、配置中心、分布式数据库中间件、定时任务、业务实时监控、服务网关以及相关技术的组件的服务。

第10章高可用解决方案,介绍分布式实时在线应用系统如何实现7×24小时业务连续性高可用服务。

第11章数据一致性解决方案,介绍数据一致性的理论、实现原则以及在分布式环境下如何实现数据的一致性。

第12章容灾多活解决方案,介绍同城双活、两地三中心、异地双活、单元化多活等几种容灾多活实现方案的技术原理。

建议和反馈

写书是一项极其琐碎、繁重的工作。云原生的技术还在不断发展完善之中,尽管本书作者已经竭力使本书和网络支持接近完美,但仍然可能存在很多漏洞和瑕疵。欢迎读者提供关于本书的反馈意见,帮助我们改进和提高,从而帮助更多的读者。如果你对本书有任何评论和建议,或者遇到问题需要帮助,欢迎致信作者邮箱liujy001@gmail.com,我们将不胜感激,并尽可能回复。