序言
写书的初衷和背景
笔者是2011年进入阿里的,随着业务量的逐步增长,对系统的挑战越来越大,系统的容量瓶颈也越来越明显。记得刚来的时候,业务部门要做一次促销,想知道我们的系统能不能撑得住,这个问题对于没有任何经验的同学,是很难有精确答案的。后来与同事交流并结合实践,才慢慢知道了大促的技术保障过程是怎样的。
在笔者的经历中,有太多的故事想讲给那些需要的同行们,以避免他们犯同样的错,可以做到以史为鉴。即使是阿里内部的员工,也不是每个人都有机会接触大促、接触性能优化工作的。所以这本书的初衷就是将实践经验分享给同行们,让同行们也有所收获。
文字最大的魅力是提升记忆的深度,特别是美好的东西更值得记录下来,等数年或者数十年后再去回首时,也是人生中非常美好的事情。这个世界我们曾经来过,将往事沉淀,当年很多让人觉得非常有挑战的事情,如果没有文字的记录和时间的沉淀,再回首时,可能已经忘记了大半。再回首2012年以来解决的很多难题,记忆中能够留下的已经不多,这也促使笔者决定总结一下,以便帮助更多的人。
从2012年开始,笔者和搭档荣华、新兵开始逐步切入大促的保障工作,并同时开始负责性能领域的工作。从事和性能相关的工作十分有趣,也很容易提升知识的深度和广度。一个大型网站在构建过程中,不仅包括容量优化,还涉及体验相关的优化,而且必须能够随时回顾这些知识。本书实际上经过3年的沉淀和不断修整,在繁忙的工作之余写下这些文字,是需要毅力的。市面上很多与性能相关的书讲实践的偏少,本书最大的特点就是实践偏多,通过实践进行理论升华。书中的很多内容都是3位作者一个字一个字写下来的,这是非常不易的。
人生是一场修炼的过程,不断地突破自己的舒适圈,不断地和内心的懒惰做斗争,咬牙做下来,才能体会到这件事情的不易,轻易得到的总是不会太珍惜。我们处于飞速发展的时代,同时我们也处于浮躁的时代,这个时代造就了很多英雄,但也很容易在其中迷失自己。在迷失的时候,给自己定一个目标,只有不断地学习和努力,同时摆正自己的心态,明确自己想要的东西,才能处在浪潮之巅,在时代的浪潮里留下自己的痕迹。希望本书也能留下一丝痕迹。
关于作者
本书的作者是在实践中逐步成长起来的架构师,在项目的实践中,全力以赴地解决各种难题。笔者2008年认识荣华,2011年认识新兵,他们给了笔者很多支持。特别是2008年在Cisco工作的过程中,荣华给了笔者很多支持,笔者跟他学到了很多东西。当年 JavaEye 非常盛行的时候,荣华(以笔名ahuaxuan)在JavaEye论坛里名气很大。笔者在加入Cisco之后,有幸与他成为同事,他教会了笔者很多东西。新兵负责过前端性能优化部分,他在前端性能方面有比较深入的研究,我们一起合作过多个优化的实践项目,并且在实践过程中取得了良好的效果。大家因为共同的爱好和兴趣而聚在一起,在策划这本书时,我们很快形成共识,大家因为志同道合而相聚,都知道这本书的意义。作为一个技术人,从一点点的知识学起,从不会、不了解,到慢慢深入,每个人在这个过程中的沉淀有所不同。本书只是从我们3个人的角度进行性能优化体系的阐述。
本书的体系是非常广的,可能只有很少数的人对每个部分都比较精通,碰巧的是我们3个人,是熟悉不同领域的工程师,这样可以各自发挥特长,让本书更有味道,也更有广度。本书是市面上第一本从前端到后端,从 CDN、DNS 到 TCP,到机房、大促全链路的关于性能优化的书籍,能够通晓这些知识,是一个工程师或者专家很难做到的。本书主要突出全面性和实战性,是目前笔者认为的最全面的关于性能优化的书籍,本书试图打造端到端的优化理论和实战体系。
本书的主要结构
本书以大型网站性能优化实战为主题,讲述了性能优化的基本理论和实践策略。
第1章介绍影响用户体验的几个关键要素,重点讲解白屏、首屏及页面整体加载的过程,针对它们提出了比较系统的优化策略和常见方案。
第2章主要介绍前端性能优化实战,包括延迟渲染和SEO页面的优化。重点讲解了加快页面渲染速度的基本思路及具体的实践解决方案,以及SEO页面的优化思路和解决方案。
第3章介绍如何借助站外优秀的性能测试工具,以及建立网站自己的真实用户性能监控系统,来测试和监控页面的这些关键性能指标,从而使我们能够快速对网站性能问题进行分析并做出优化。
第4章讲述服务器端性能优化理论体系和实战,包括服务器端的性能优化方法和常见的优化策略。重点包括QPS的优化、同步模型与异步模型对性能的影响、数据结构对性能的影响、算法设计不合理带来的性能问题,以及一个综合案例。
第5章阐述TCP优化,介绍了TCP的基本原理,并对TCP近几年的发展做了介绍,最后介绍了一个项目中的TCP优化实战案例。
第6章讲述DNS的一些优化方案,主要从DNS的基本原理出发,结合跨境DNS部署和实战经验,介绍了DNS优化的历程。
第7章介绍CDN的优化实践,重点包括CDN的工作原理、CDN优化的常见策略,同时介绍了大量的优化案例,最后总结了CDN的优化原则。
第8章主要讲述大型网站的性能监控需求和监控指标,以及如何实现监控,揭开大型网站性能监控体系的面纱。
第9章主要介绍大型网站如何进行容量评估,重点包括单机峰值QPS的测算、大型网站常用的容量评估方法。
第10章高性能系统架构模式,主要从宏观角度来看性能优化。好的架构是高性能的基础,只有从架构上解决问题,才能将高性能有效地持续下去。好的高扩展架构比局部优化带来的效果要大得多,如同人们经常说的,格局决定高度。
第11章重点介绍大促的整体方案和细节工作,辅以案例,加深读者的印象。大促保障是性能优化的重要力量,由于大促保障本身是成体系的,除了性能优化,还介绍了稳定性保障和资金安全保障的内容。
第12章数据分析驱动性能优化,从数据视角介绍如何进行性能优化,重点包括性能优化相关的数据分析原理与方法,以及如何在实践中使用数据分析来进行大型网站的优化。
周涛明
2018年11月
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
● 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
● 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/35002