猜你喜欢
未来架构 从服务化到云原生(限量签名 随机发放)

未来架构 从服务化到云原生(限量签名 随机发放)

书籍作者:张亮 ISBN:9787121355356
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5961
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

  互联网架构不断演化,经历了从集中式架构到分布式架构,再到云原生架构的过程。云原生因能解决传统应用升级缓慢、架构臃肿、无法快速迭代等问题而成了未来云端应用的目标。
  《未来架构:从服务化到云原生》首先介绍架构演化过程及云原生的概念,让读者对基础概念有一个准确的了解,接着阐述分布式、服务化、可观察性、容器调度、Service Mesh、云数据库等技术体系及原理,并介绍相关的SkyWalking、Dubbo、Spring Cloud、Kubernetes、Istio等开源解决方案,最后深度揭秘开源分布式数据库生态圈ShardingSphere的设计、实现,以及进入Apache基金会的历程,非常适合架构师、云计算从业人员阅读、学习。

作者简介

  张亮,
  京东数科数据研发负责人,Apache ShardingSphere发起人兼PPMC成员。热爱分享,拥抱开源,主张代码优雅化,擅长以Java为主的分布式架构以及以Kubernetes和Mesos为主的云平台的构建。ShardingSphere已进入Apache软件基金会,是京东集团首进入Apache的开源项目,也是Apache首分布式数据库中间件。
  
  吴晟,
  Apache SkyWalking创始人及PPMC成员,Apache ShardingSphere原型作者及PPMC成员,Apache Zipkin贡献者,Apache孵化器导师,CNCF基金会OpenTracing标准化委员会成员,W3C Trace Context规范贡献者。擅长分布式架构、性能监控与诊断、分布式追踪、云原生监控等领域。
  
  敖小剑,
  具有十七年软件开发经验,资深码农,微服务专家,Cloud Native 拥护者,敏捷实践者,Service Mesh布道师,ServiceMesher中文社区联合创始人。专注于基础架构建设,对微服务、云计算等相关技术有着深入研究和独到见解。
  
  宋净超,
  蚂蚁金服云原生布道师,ServiceMesher中文社区联合创始人,Kubernetes社区成员,Istio社区成员,《Cloud Native Go》《Python云原生》《云原生Java》等图书译者。

编辑推荐
适读人群 :云计算从业人员;架构师;关注分布式、Java、Mesos、任务调度的程序员

  1、大咖云集:本书由多位资深一线计术人员执笔,集大家之所长,为读者呈现了一段十分立体的技术发展史。同时,本书受到技术圈多位知名大咖联袂力荐,足见内容之精绝!
  2、概念领先一代:本书对快速演进中的云原生数据架构、典型分布式数据库中间件进行了剖析,重点介绍ServiceMesh等新兴概念,创新性地提出了DatabaseMesh的理念,深度揭秘Apache项目——ShardingSphere!精彩内容层出不穷,知识概念全然领先一代!
  3、情怀感人:作者将自己十几年的功力投入开源,毫不吝啬地在书中分享经典Apache开源项目的成长之路,同样热爱的开源的朋友们,让我们一起为中国开源贡献力量吧!

前言

  推荐序1
  未来世界是一个“虚拟王国”,需要强而有力的基础设施做支撑。
  在许多过去的科幻电影和小说里,“未来”被设定在21世纪初,其中的很多场景如今被证明只是幻想。人类对未来的预测总与实际的发展趋势相去甚远,比如互联网——近20年来发展快的“虚拟王国”,正一步步地颠覆着我们对生活的认知。
  我们常在想,5G的出现将带来什么?也许世界会进一步线上化、数字化、虚拟化,然而这一切都需要底层基础设施做支撑,也许终有一天《头号玩家》中的情节会变为现实。
  《黑客帝国》看着过瘾,可又有谁思考过利用容器虚拟沙盒系统自我升级的Matrix该如何进行架构设计?随着人工智能和物联网的普及,机器智能会凭借更为简单且强大的架构模式,像有机生命般不断成长,覆盖地球的每个角落。
  本书作者张亮是一个有执念的人,无论是搞技术还是玩游戏,现在看来,让他执着的事情又多了一件——写书。这本书从策划之初我便很清楚,因此也一直期待着图书问世的这一天。
  在曾经和张亮共事的几年里,我们一起做过许多事情,对外开源,对内落地,他是我得力的帮手。如今,他把开源项目ShardingSphere带进了Apache基金会,还跟其他几位优秀的老师一起出了书。这一路走来,我见证了他的成长,对他的“我执”有深切的体会。有道是“不疯魔不成活”,做技术必须有“痴狂劲儿”才能每日精进,成为业界翘楚。
  纵览全书,内容循序渐进,概念清晰明了,技术描述有点有面。本书着重介绍了从服务化到云原生的演进过程,涵盖了当下主流技术架构的发展趋势,其中的理念非常先进,是一本理论架构完整且实战案例典型的好书!
  技术发展日新月异,无论如何更新迭代,总有些颠扑不破的基本原则。比如,CAP原理不仅是分布式架构的设计准则,更是四维空间的限制法则。当我们掌握了这些底层技术时,自然可以信心满满地迎接新的挑战,而这些底层技术知识点都可以从这本书中获得。
  架构是基础,更是所有技术人员对未来的共识。
  立足当下,展望未来,如千万年来的祖先一样,我们要用自己的勤劳和智力改变世界,构建理想国度。未来已来,我们正用当下的技术架构明天。
  史海峰
  微信公众号“IT民工闲话”作者
  2019年2月于北京
  推荐序2
  如何定义一本好书呢?关于这个问题,答案可能有千种万种,每个人都有自己的观点和想法。但我看了《未来架构:从服务化到云原生》之后,马上就将它定义为一本好书了,理由大概有以下几点,愿与各位读者分享。
  首先,书中知识丰富,内容翔实,大大扩展了我的视野,使我的见识增长。
  作者张亮具有十几年的互联网技术经验,一直以来爱好广泛、博学多才,不仅在某些专项技术上精益求精、一丝不苟,而且触类旁通、杂学旁收。如今,他积金至斗,连同其他几位在技术圈同样优秀的老师一起撰写了这本《未来架构:从服务化到云原生》,可谓“功德圆满”。本书中涉及当前互联网技术领域几乎所有重要的概念和思想,能够帮助各位读者快速理解现代架构和未来技术架构,也可以为个人技术发展或企业架构选型提供参考。
  另外,本书定义清晰,深入浅出,把很多概念讲得明明白白。
  云和云原生是近几年来的热门词汇,但并不是每个人都对它们有深刻的认识,甚至有时谈起云计算,话题就会被顺理成章地导向几个大的云厂商,殊不知,云计算只是一种技术,或者说是一种思想,它可以存在于不同的业务场景中,大家都可以实现自己的云技术。云原生初是由Pivotal公司的Matt Stine在2013年提出的,2015年Google发起CNCF,进而将云原生的概念发扬光大。云原生中涵盖很多技术体系,我本人所从事的云原生数据库也是其中一个重要方向,可用性、伸缩性、自动化、持续性等都是它的关键词。
  本书虽覆盖广泛,但重点突出,很多概念如抽丝剥茧般地被呈现出来,充分引发读者思考,调动了读者自主学习的积极性。
  本书重点讲述了作者的“成名作”,刚刚进入Apache软件基金会的孵化项目——ShardingSphere。本书对数据库的分类、数据库的架构和功能,以及分布式数据库中间件生态圈ShardingSphere给出了详尽的描述,一来可见作者对ShardingSphere倾注的精力,二来也说明了数据库在未来架构中举足轻重的地位。
  对于著书的作者而言,往往获得的大支持便是读者阅读并给予反馈,希望更多的人能和我一样阅读本书并从本书中获益,让我们共同进步、共同提高。
  周彦伟
  极数云舟创始人兼CEO
  中国计算机行业协会开源数据库专委会会长
  2019年2月于北京
  推荐序3
  收到亮哥请我写新书推荐序的邀约,第一时间,莫名激动。翻看样章后,更加心潮澎湃。
  其实,我之前一直有一个片面的观点:在国内技术圈中,用心写书的人真的不多,写书的目的应该不那么单纯。不得不承认,很多人都有些浮躁。
  这种片面的观点使得我们这个时代的技术人员似乎更喜欢国外的技术氛围,从研究国外的论文,到模仿硅谷一线公司的解决方案,大家总觉得相对比较单纯的技术环境能带给技术人员更自由的空间。我曾一度怀疑,国内技术圈是否还有人能够静下心来钻研技术……
  令人欣喜的是,我们都在改变。
  近几年,国内越来越多具有前瞻眼光且怀揣理想的技术人员一个接一个地站了出来,或将自己的作品开源,或在业内发声传递自己的思想,亮哥,便是其中我比较熟悉的一位。
  回想亮哥给我的印象:万年一身黑衣,严谨且拼命。也正是这样的个性,使他写出的文字也如大侠般朴实却有力量。
  翻看他的新书,单单第1章便已如此精绝,同时也让我不自觉地感叹,原来他已将云原生模式和思想融入了血液。他的文字是如此自然鲜活。
  合书再观,他所主导的开源项目ShardingSphere更是充满活力,如今已成功进入Apache软件基金会,可谓前景无限。中国电信甜橙金融技术创新中心定会不断跟进,继续支持ShardingSphere社区发展,也渴盼ShardingSphere社区可以带动更多的企业不断进步。
  出差间隙,于候机厅成此文字,谨感谢此书伴我30余个航段,也感谢作者让我找回了作为一名技术人员的初心。
  张小虎
  中国电信甜橙金融技术创新中心高级总监
  2019年2月
  序
  一次诚挚的写书邀约,一个深思熟虑后的决定,一番夜以继日的付出,以及一些“曲折离奇”的经历——《未来架构:从服务化到云原生》诞生了!
  2015年年底,当时我还在当当网担任架构师,从事业务系统架构设计与内部应用框架研发方面的工作,处于事业上升期。在一次技术分享的会场,我偶遇电子工业出版社博文视点的编辑孙奇俏老师,她向我发出写书邀约。虽然当时我自认资历尚浅,并未接受这份邀约,但这件事却像一颗种子一样深深扎根在我的心中。
  在那之后,我在互联网架构这个圈子里不断拓宽视野,积累经验,产生了越来越多的热情和新鲜想法,也深深受到周围那些具有真才实学又意气风发的挚友和同僚们的感染。这些点点滴滴让我觉得,我也要做点事情来传递多年以来在这个行业中沉淀的经验,分享我眺望到的未来架构的前沿思潮。倘若这些想法和经验能够帮助或影响到更多的朋友,或能让我自己与更多朋友结识、交流、碰撞出新的想法,那该是一件多么令人骄傲的事啊!于是我与奇俏老师保持密切沟通,经过反复的推敲琢磨,这颗深埋在心里的种子终于开始萌芽,2016年年底,我的写作之旅正式开启。
  书到用时方恨少,事非经过不知难。美好的愿景总会受到现实的无情打击,写书亦是如此。虽说可以以自身的所见所闻、所观所悟为素材提炼出写作的内容,可是如何确立选题和设计主线才能让一本书承载更多精粹的知识,容纳更多有价值、有意义的内容呢?我觉得我所追求的“完美”的书,应当是一本能够有质有量地给予读者巨大价值的书。
  互联网的迭代十分迅速,当前经历的一切都在渐渐逝去。我希望这本书能承载现今互联网架构的精粹,而不只是一本简单的使用手册,因为快餐只能让人获得一时的能量,无法带给人们长久的满足。与此同时,我还希望读者们能通过这本书了解未来的趋势,捕捉到前沿的技术热点,在架构选择与从业选择方面获得一些有价值的建议。
  在确立了本书的定位后,经过深思熟虑,静心沉淀,充分调研,融合提炼,我对现有的知识体系进行了重塑,希望能将更多的架构设计理念、技术实现原理、热点概念背后的本质汇集在这本书中。
  在开启写作之旅后,只要有机会我就会陷入“心流”状态,在脑海中不断地构思内容、提炼知识点,并在无数个寂寞的夜晚以灯为伴,将平时的所思所感汇集于一页页纸张中。
  写小说可以随心所欲,心随笔动;而写技术书则应当不差毫厘、信而有征,让内容兼备深度与广度。为了达到这个目的,数不清的查阅校对、询问商讨是必不可少的,这其中的艰辛,也只有真正写过书的人才能感同身受。
  为了让这本书更具专业性,并能尽快与大家见面,我特意邀请了我的三位挚友共同组织内容,他们是,Apache基金会孵化器项目SkyWalking创始人吴晟、ServiceMesher中文社区联合创始人及Service Mesh布道师敖小剑、ServiceMesher中文社区联合创始人及云原生布道师宋净超,我相信集众人所长定能让这本书更具含金量。
  身处这个飞速发展的时代,以及高速迭代的IT行业,我知道每个人都不甘平庸,否则又怎会在互联网行业的高速路上不停奔跑呢?作为一名架构师,我主导且参与了一些优秀的开源项目,这其中也包含进入Apache基金会的项目ShardingSphere。作为一名拥有十多年开发经验的程序员,我崇尚代码优雅和简捷,并一直以极客主义严格要求自己和团队。我深切感受到,在这个行业中若想成为优秀的人,甚至完美的人,不仅需要低下头深深扎进代码的世界,也需要抬起头观察行业动态,洞察未来趋势,最重要的是,要不忘初心,持之以恒,永远怀有热爱和感恩之心。
  2018年对我而言是充满转折的一年,这一年里我对已经写好的内容又进行了修改和完善,还将ShardingSphere从开源到进入Apache的经历也融入书中。终于,在2018年即将结束之时,我为自己的写书之旅画上了一个圆满的句号。
  这本书献给我远去的回忆和憧憬的未来,献给想要洞察架构真谛的你,献给想要迫切了解行业发展动态的你,献给想要认识未来架构的每一个你……
  张亮
  2019年1月于北京
  前言
  为什么写此书
  身处互联网行业的我们一直处在变革的最前端,受到行业发展浪潮的洗礼,不停歇地追赶着技术革新的脚步。特别是近几年来,互联网架构不断演化,经历了从集中式架构到分布式架构,再到云原生架构的过程。在这个演变过程中,我们可以深刻感受到一系列的格局变化——软件改变世界,开源改变软件,云吞噬开源。每一次架构模式的升级都会给这个世界的合作模式带来变化。
  “云原生”因能解决传统应用升级缓慢、架构臃肿、不能快速迭代等问题而逐渐成为这个时代舞台的主角。身处变革的浪潮中,我看到云原生的出现改变了互联网架构的航行方向,并给越来越多的企业带来了全新的理念和无限的可能。因此,我希望能够学习它、读懂它,让它融入我的知识体系,更新我脑海中的架构地图。
  十几年的互联网从业经验与层出不穷的新技术不断碰撞,终于让我有了将所知、所见、所闻、所感落在纸面的冲动。写这本书不求功名利禄,只希望它能积淀旧识,引领新潮,记录架构的发展历程,并为每一个正在阅读的你答疑解惑。
  所以,有幸与各位相聚于此,相聚于《未来架构:从服务化到云原生》。
  本书内容
  本书将互联网架构近几年发展的起承转合进行了提炼,为大家展示了互联网架构的变迁,对最新热门技术进行了深度解读。本书共分10章,每章的简要内容如下。
  第1章 云原生
  本章将阐述从集中式架构到分布式架构,再到云原生架构这一系列的互联网架构变迁细节,并对云原生的产生、发展及核心理念进行深刻的解读。
  第2章 远程通信
  本章将深入解读远程通信的核心内容,对远程通信方式和协议、序列化问题,以及远程调用架构的发展进行介绍。
  第3章 配置
  本章将对生产应用、服务调用中的配置进行讲解,对应用配置中的集中化管理、注册中心与配置中心、读性能、可用性、数据一致性等常见内容进行详细阐述。
  第4章 服务治理
  本章将着重讲解服务发现、负载均衡、限流及熔断等内容,对服务治理中的关键概念进行详细解读,对比容易混淆的知识点,方便读者进行架构选型。
  第5章 观察分布式服务
  本章将对观察分布式服务的核心概念和层次划分进行深入剖析,并且进一步对市场主流的开源解决方案进行介绍,最后对为微服务架构和云原生架构系统而设计的支持分布式链路追踪的APM系统——Apache SkyWalking进行详细介绍。
  第6章 侵入式服务治理方案
  本章将详细剖析Dubbo、Spring Cloud这两种主流的侵入式服务治理方案,并通过一些实战案例更好地对第4章中阐述的理念进行补充。
  第7章 云原生生态的基石Kubernetes
  作为云原生的基石,Kubernetes可谓家喻户晓。本章走进Kubernetes的世界,介绍它的前世今生、架构模型、设计理念与模式,同时对云原生生态和未来趋势进行解读。
  第8章 跨语言服务治理方案Service Mesh
  Service Mesh因被誉为下一代互联网架构而备受瞩目,本章将从Service Mesh的定义、发展历程等角度进行详细介绍,同时对Service Mesh当前的市场状况及国内发展趋势进行说明。
  第9章 云原生数据架构
  从传统关系型数据库到NoSQL,再到NewSQL,这个转化过程是如何实现的呢?云原生数据库中间件的定位和发展又是怎么样的呢?本章将围绕以上两个问题进行解答。
  第10章 分布式数据库中间件生态圈ShardingSphere
  作为知名的开源分布式数据库中间件解决方案,Apache ShardingSphere受到了越来越多的企业和个人关注。为何它可以在GitHub上收获超高人气,得到各大公司的青睐呢?本章将重点介绍ShardingSphere的发展历程和未来趋势,解答上述疑问。

目录

第1章 云原生 1
1.1 互联网架构变迁 2
1.1.1 互联网架构的核心问题 2
1.1.2 从集中式架构到分布式架构 5
1.1.3 从分布式架构到云原生架构 10
1.2 什么是云原生 15
1.2.1 概述 15
1.2.2 云原生与十二要素 16
1.2.3 十二要素进阶 23
1.2.4 云原生与CNCF 24
第2章 远程通信 41
2.1 通信方式 41
2.1.1 通信协议 42
2.1.2 I/O模型 51
2.1.3 Java中的I/O 53
2.2 序列化 66
2.2.1 文本序列化 67
2.2.2 二进制Java序列化 68
2.2.3 二进制异构语言序列化 71
2.3 远程调用 78
2.3.1 核心概念 78
2.3.2 Java远程方法调用 79
2.3.3 异构语言RPC框架gRPC 82
第3章 配置 89
3.1 本地配置 89
3.2 配置集中化 90
3.3 配置中心和注册中心 91
3.4 读性能 92
3.5 变更实时性 93
3.6 可用性 94
3.7 数据一致性 96
第4章 服务治理 97
4.1 服务发现 97
4.1.1 服务发现概述 97
4.1.2 ZooKeeper 100
4.1.3 Eureka 109
4.2 负载均衡 112
4.2.1 服务端负载均衡 112
4.2.2 客户端负载均衡 115
4.3 限流 118
4.3.1 限流算法 119
4.3.2 限流实现方案 121
4.3.3 限流的维度与粒度 129
4.4 熔断 131
4.4.1 概述 131
4.4.2 熔断器模式 132
4.4.3 Hystrix 133
第5章 观察分布式服务 135
5.1 层次划分 136
5.2 核心概念 136
5.3 分布式追踪 138
5.3.1 概述 138
5.3.2 常见的开源解决方案 139
5.4 应用性能管理与可观察性平台 140
5.5 Apache SkyWalking 142
5.5.1 项目定位 142
5.5.2 SkyWalking 5核心架构 143
5.5.3 SkyWalking 5公开案例 146
5.5.4 SkyWalking 6可观察性分析平台 147
第6章 侵入式服务治理方案 157
6.1 Dubbo 157
6.1.1 Dubbo概述 158
6.1.2 核心流程 160
6.1.3 注册中心 160
6.1.4 负载均衡 162
6.1.5 远程通信 163
6.1.6 限流 164
6.1.7 治理中心 165
6.1.8 监控中心 165
6.1.9 DubboX的扩展 166
6.2 Spring Cloud 168
6.2.1 概述 168
6.2.2 开发脚手架Spring Boot 172
6.2.3 服务发现 174
6.2.4 负载均衡 176
6.2.5 熔断 178
6.2.6 远程通信 179
第7章 云原生生态的基石Kubernetes 181
7.1 Kubernetes架构 182
7.2 分层设计理念及架构模型 183
7.3 设计哲学 184
7.4 Kubernetes中的原语 185
7.4.1 Kubernetes中的对象 185
7.4.2 对象的期望状态与实际状态 186
7.4.3 描述Kubernetes对象 187
7.4.4 服务发现与负载均衡 188
7.4.5 安全性与权限管理 189
7.4.6 Sidecar设计模式 190
7.5 应用Kubernetes 190
7.6 Kubernetes与云原生生态 192
7.6.1 下一代云计算标准 192
7.6.2 当前存在的问题 192
7.6.3 未来趋势 193
第8章 跨语言服务治理方案Service Mesh 195
8.1 Service Mesh概述 195
8.1.1 Service Mesh的由来 195
8.1.2 Service Mesh的定义 196
8.1.3 Service Mesh详解 197
8.2 Service Mesh演进历程 200
8.2.1 远古时代的案例 200
8.2.2 微服务时代的现状 201
8.2.3 侵入式框架的痛点 202
8.2.4 解决问题的思路 206
8.2.5 Proxy模式的探索 207
8.2.6 Sidecar模式的出现 208
8.2.7 第一代Service Mesh 209
8.2.8 第二代Service Mesh 210
8.3 Service Mesh市场竞争 212
8.3.1 Service Mesh的萌芽期 212
8.3.2 急转直下的Linkerd 212
8.3.3 波澜不惊的Envoy 214
8.3.4 背负使命的Istio 214
8.3.5 背水一战的Buoyant 215
8.3.6 其他参与者 217
8.3.7 Service Mesh的国内发展情况 219
8.4 Istio 220
8.4.1 Istio概述 220
8.4.2 架构和核心组件 222
第9章 云原生数据架构 232
9.1 关系型数据库尚能饭否 232
9.1.1 优势 233
9.1.2 不足 234
9.2 未达预期的NoSQL 235
9.2.1 键值数据库 235
9.2.2 文档数据库 236
9.2.3 列族数据库 236
9.3 冉冉升起的NewSQL 237
9.3.1 新架构 238
9.3.2 透明化分片中间件 238
9.3.3 云数据库 239
9.4 云原生数据库中间件的核心功能 239
9.4.1 数据分片 239
9.4.2 分布式事务 258
9.4.3 数据库治理 265
第10章 分布式数据库中间件生态圈ShardingSphere 267
10.1 缘起 267
10.1.1 内部应用框架 268
10.1.2 开源历程 269
10.2 核心功能 271
10.2.1 数据分片 272
10.2.2 分布式事务 301
10.2.3 数据库治理 307
10.3 Sharding-JDBC 310
10.3.1 概述 310
10.3.2 使用说明 311
10.4 Sharding-Proxy 316
10.4.1 概述 316
10.4.2 使用说明 317
10.5 Database Mesh 317
10.5.1 概述 317
10.5.2 Service Mesh回顾 318
10.5.3 Database Mesh与Service Mesh的异同 319
10.5.4 Sharding-Sidecar 320
10.6 未来规划

产品特色