前言
当前越来越多的业务使用了公有云。公有云将大型公司应对海量互联网流量的经验和措施封装成产品,降低了复杂度,使IT系统的开发专注于业务层面,但很多人也因此没有了试错的机会,知其然不知其所以然。另一方面,互联网分布式架构更加复杂,组织结构分工更细,很多开发人员或者架构师在工作中只能关注一点或者一个层次。许多技术人员都非常希望能看到更多介绍架构设计出发点、原理和机制,讲述分布式架构宏观场景的书籍。
笔者将这几年遇到的几个互联网业务的解决思路和方案整理成PPT,一直有总结成书的想法,却被琐事所困,无法静下心来进一步归纳整理,如今终于有了机会。笔者希望能够尽可能从较高的角度,在每一个系统分层结构中讲解原理、实现方案和技术路线。
事情看着容易,做着难,下笔成文时,着实痛苦。作为一本想要描述互联网分层架构的书,涉及面广,还有诸如系统安全、大数据、架构实例方面的内容因为时间和精力原因暂未涵盖。本书内容也难免有见识不到、疏漏之处,敬请指正。
内容组织
本书主要讲解互联网架构设计的初衷、原理和架构的模式。前两章简单介绍了互联网架构的目标、架构演变过程与主要设计模式,后续几章则按照系统的分层模式,从前端到后端,从开发到运维,对每一层的主要解决问题、原理、技术路线进行说明。
第1章“概述”,主要介绍互联网架构的业务特点、目标、衡量办法、方法论和核心架构的演变过程。
第2章“互联网架构设计模式”,归纳了互联网架构的分层、分割、分片、缓存、并行、异步、隔离、容错、安全、治理等主要设计模式,并阐述了每种模式的应用场景和作用。
第3章“前端架构”,主要介绍前端的架构模式,包括前端开发模式的演变过程、响应式网站的设计办法、单页面架构、微前端架构、App、公众号、小程序与快应用的开发模式、BFF架构以及前端优化办法。
第4章“接入架构”,主要介绍接入层的组成,包括DNS、CDN、反向代理、服务网关以及企业内部系统集成的架构和实现。
第5章“服务架构”,主要描述微服务架构Spring Cloud和Dubbo以及服务网格架构Istio的组成结构和运行机制。
第6章“服务治理”,介绍常见的服务治理组件,包括配置中心、流量控制、服务追踪等组件的构成和原理,涉及Apollo、Disconf、Spring Cloud Config、Hystrix、sentinel、Resilience4j、Zipkin等中间件。
第7章“分布式处理”,补充介绍分布式处理中的必备组件,包括分布式锁、分布式ID、高性能有界队列Disruptor的设计目标和技术架构。
第8章“分布式事务”,主要描述分阶段提交、补偿等分布式事务模式,介绍了分布式事务的最终一致性解决方案以及Seata和Servicecomb-Saga两种开源分布式事务中间件。
第9章“分布式消息队列”,介绍消息队列解决的问题和应用场景,消息传递技术的应用模式,消息总线的用途和架构,同时还介绍了RocketMQ的组成和原理,以及Spring Cloud消息传递领域的三个组成部件Spring Integration、Spring Cloud Stream和Spring Cloud Bus。
第10章“分布式缓存”,介绍缓存的分类、应用架构和应用缓存时常见的问题和解决方案,也介绍了Redis缓存中间件的原理和集群结构。
第11章“数据持久化”,介绍互联网分布式系统的整体数据架构,Raid磁盘阵列和DAS、NAS、SAN、OSS等存储技术,Swift OSS的运行机制,关系数据库的读写分离、冷热分离、分库分表和高可用方案。
第12章“DevOps”,主要介绍DevOps的含义、工具和生态,并讲解了包括环境、协作、开发、发布、测试、运维等DevOps基础环节涉及的工具、技术和集成方法。
致谢
感谢我的家人、朋友和同事们,谢谢你们的支持和建议。本书的出版尤其要感谢机械工业出版社的车忱编辑,车老师在书籍选题、章节编排以及内容校阅等方面给了我非常多的建议和帮助。
作者