适读人群 :网站架构、设计人员 系统:从头梳理网站架构重点难点,零基础上手架构设计
全面:涵盖多种类型网站应用,总有一款适合你
权威:凝聚作者5年一线经验,互联网大厂实践方案尽收眼底
深入:剖析概念内涵外延,讲解方法追本溯源
案例:列举10个大型案例, 100多个小案例,提升更迅速
为什么要写这本书
很多刚从学校毕业的计算机专业的学生,或者通过自学掌握编程技能的非计算机专业的人,往往会发现软件工程师在工作中所做的内容与学校中所学的知识有不小的差异,并且这种差异随着项目规模的增大而增大。一些拥有不错编程基础的从业人员往往也要在从业数年以后,才能逐渐通过积累工作经验来缩小、弥补这种差异。
造成这种差异的主要原因在于,在学校中学习的编程技能侧重于计算机科学的原理及基本的应用,而在工作中,对于一个工程项目软件,为了使其达到商用、大规模使用的条件,软件工程师会采用许多学校中不会重点教学甚至完全不会接触的方式来确保其开发、维护上的高效率和健壮性。本书在网站开发方面,通过总结笔者从业中遇到过的众多案例和项目,精练出一系列职业经验和操作规程,帮助感兴趣的初学者对职业实践有所了解,而编程能力原本就扎实的程序员更可以通过本书获得职场上的即战力。
本书有何特色
1. 涵盖了大型网站建设从理论到实践的方方面面
对于每个相关的业内实践问题,本书都会涵盖其常见解决方案和尚佳推荐选择,并从原理出发分析和解释每个方案,使读者充分理解积累了大量从业人员经验教训的实现方案。
2. 每个主题都包含了大量实例说明
本书为暂时没有机会参与大流量网站建设的读者提供了大量生产实例,使读者能更直观地理解大型网站相比普通网站在生产环境中面临的问题及其解决方案。
3. 对多个实践类主题都附有可直接使用的代码示例
本书对所有可以独立尝试实践的主题都附有实践说明和代码示例,绝大多数代码示例都可以经过简单配置直接使用,非常适合看了相关章节跃跃欲试的读者。
4. 主题鲜明,易于上手
本书各章主题之间尽量保证分割清晰,大多数章节相互独立,且每个主题深入浅出,读者即不读完全书,只对中间某个主题感兴趣,也可以随手拿起书深入其中一章,而不受上下文牵制影响。
5. 信息涉及范围广,拓宽视野,与时俱进
本书所提及的设计方案、技术手段和实践标准均与当前业内实践看齐,并在必要部分对业内行的技术进行了或深或广的介绍,帮助读者轻松地以本书为出发点,找到合适的拓展资料值得进一步深挖的技术。
本书内容及知识体系
第1~2 章主要介绍了网站架构的设计目标和原则,包括高性能、高可用、伸缩性和扩展性,以此为纲展开全书。除此之外,还介绍了软件工程标准的网站架构设计流程。
第3~7 章主要介绍了网站数据层的几种优化手段,从按需选择数据库到分库分表、读写分、缓存和动静分离,逐步深入,从数据库介绍到分库分表和读写分离,从缓存介绍到动静分离,理论再实践,完成数据层的优化改造。
第8~10 章主要从负载均衡、异步和非阻塞、队列三个角度介绍了如何管理和优化一个网的整体架构,使其达到高并发,瞬时承担更大流量。
第11~15 章主要介绍了大型商用网站重要的性质之一——高可用,以及如何做到高可。分别从高可用的指导原则、异地多活、服务降级、限流和下游错误处理的角度,解释了单机服务不可靠的情况下,如何通过架构设计使系统整体变得可靠又稳定。
第16~17 章主要介绍了大型商用网站在上线服务之前,所需要采取的合理合规的必要手,以及如何从一个成熟的业务拥有者的角度,尽可能降低新服务上线的风险。
适合阅读本书的读者
?? 有一定技术水平但工程资历尚浅的人员。
?? 有一定工程资历但没有大流量网站开发和维护经验的人员。
?? 希望对网站开发的软件工程有所了解的人员。
?? 广大Web 开发程序员。
?? 希望提高大型项目设计水平的人员。
?? 软件开发项目经理。
?? 需要一本案头必备查询手册的人员。
阅读本书的建议
?? 没有网站开发经验的人员,建议配合一本网站开发实战类参考书来阅读。
?? 有网站开发经验的人员,可以随意从一章开始阅读,相信都会有所受益。
?? 对于有代码示例的章节,可以随时按照其中的说明进行实战;没有代码示例但有操作流程章节,需要一定生产环境支撑其方法的实践,请读者结合实
际工作环境进行学习。