《大型网站技术架构:核心原理与案例分析》读书笔记

运维作为信息系统产业链中较低的一环,个人技能价值回报不高。要想提高自身稀缺性获得高议价,只有朝顶端发展。开发、架构是两个可选的方向。

在四火的博客上看到这本书的简短介绍,帮他系统的整理了网站架构的全貌。自己工作中也接触一些名词如rabbitMQ、Memcached,见树不见林。买了这本书的电子版,让我看看网站架构全地图吧。
全书分为4篇。第一篇讲概述,从网站演变历程、架构模式、核心要素三方面简要介绍。第二篇从性能、可用性、伸缩性、扩展性、安全性5个方面详细讲解针对这些需求的技术选择及方案。第三篇为案例分析,分析了淘宝、维基百科、分布式存储系统、秒杀系统的架构及故障案例分析。第四篇从架构师人的角度,描述架构师的分类、定位、职业发展及软硬技能要求。

金句

架构是一种最高层次的规划,难以改变的决定。这些规划和决定奠定了事物未来发展的方向和最终蓝图。
CAP原理:一个提供数据服务器的存储系统无法同时满足数据一致性(Consistency)、数据可用性(Availibility)、分区耐受性(Patition Tolerence)。
数据链路层负载均衡LVS
高手定律:这个世界只有遇不到的问题,没有解决不了的问题,高手之所以成为高手,是因为他们遇到了常人很难遇到的问题,并解决了。
救世主定律:遇到问题,分析问题,最后总能解决问题。如果遇到问题就急匆匆的从外面挖一个高手,然后指望高手如探囊取物般轻松搞定,最后怕是只有彼此抱怨和伤害。许多问题只是看起来一样,具体问题总是要具体对待的。没有银弹,没有救世主。
领导的真谛:寻找一个值得共同奋斗的目标,营造一个让大家都能最大限度发挥自我价值的工作氛围
架构师按作用分为:设计型、布道型、Geek型、救火型。还有效果、职责、关注层次、口碑等几个维度。

收获

网站是长出来的,不是规划设计出来的。淘宝由最先的3000美元的电商系统汉化过来,LAMP架构,几台服务器就开张。然后做mysql换oracle,php换java。后台在sun工程师咨询下使用商业方案weblogic+webx+ejb+ibatis+oracle.期间weblogic 换为jboss,ejb换为spring。近期去IOE化回归到mysql和nosql。

目前主流架构:dns负载,解析到最近的服务器集群。ngix反向代理负载均衡应用集群,应用集群无状态。应用请求缓存服务器,降低数据库压力。应用请求出具发送到MQ队列,削减请求峰值。缓存服务器使用Memcached技术,使用环状数据结构(一致性哈西算法)便于缓存服务器扩展。数据库降负载方法:索引、读写分离、业务分库、大表拆分。前端优化方式动静资源分离、CDN静态资源加速、动态资源静态化。