《互联网运营智慧——高可用可扩展网站技术实战》
田逸著,清华大学出版社2011年1月,69.00元
互联网运维是一门系统化的学问,也是一门新兴学科,相关图书目前较难见到,这是本书创作的初衷。
本书深入浅出地介绍运维架构中的各个节点,从网络规划到服务器安装到负载均衡、分布式文件系统等架构规划,无不囊括:从简要说明选择开源技术作为运营环境开篇,到选定平台及工具的部署实施,以实例展示如何使用开源工具,来实现用户访问量在1000万这样的一个级别的站点功能。
书中也穿插了一些非技术方面的描述,如在系统运营中,有哪些日常事务、服务扩展该怎么着手以及在运营中有哪些策略及技巧等等。作者的本意是希望读者能够从书中获得各自想要的某些部分,理解其想法和思路。如果原本照搬,并不能保证成功,因为需求是不同的;最重要的是方法和策略,因此书中贯穿了作者诸多个人看法和主张。除了浓厚的原创性,本书特点还有:
真实场景再现:除IP地址为规避风险做了处理而外,其余的内容全部来源于真实的生产运行环境。现在有些不负责的攒书人,仅仅在虚拟机上部署一个环境,简单测试一下,截几个图,就能拼一本书;这些人哪里知道,在大负荷、高并发情况下,情况会是什么样子?
使用较新的稳定版本:除了第五章“postfix邮件系统外”,所有的章节都以当前最主流的版本做例。
当今最主流的互联网架构技术:云计算、负载均衡、分布式文件系统、cdn等,行文详尽。
紧扣高可用、可扩展这个主题,以局部高可用、可扩展为基础,从而实现整体运行环境的高可用、可扩展性。
尊重他人的知识产权:书中凡是引用或使用他人的程序/脚本等,一些是征得原作者的同意;不管何种情况,有引用或使用的地方,都在书中注明了原始出处。
就本书的写作背景,作者田逸如是说:
“最初,我们讨论是写一本linux系统方面的内容,以自己的实际经验来讲解怎样更快速有效的学习、使用linux;即以目标为驱动,减少学习过程中的障碍。例如:为了完成安装服务器操作系统这个任务,我们可以放弃安装桌面环境(图形界面)来避免xwindow崩溃这样的障碍;使用主流的网卡,避免操作系统不能识别和驱动网卡等等这样的技巧。虽然构思了很久,却迟迟没有下手。
因为决心写一本原创的书,我经常跑书店,发现linux一类的书一两个月就出一本。我的书会有多少优势?真是没有太大的信心。一直到我把现在公司的网络架构基本改造完成,才腾出较多时间来考虑这个问题。
有一天,我在回顾近期所做的工作时,突然发现有了很好的写作素材——把自己这段时间改造运营环境的想法和实际操作写出来,不是很好嘛!何况市面上还没有这类图书。于是我放弃了先前的想法,把目标转移到用开源软件/工具部署和运营千万量级的互联网环境这样一个场景上。
那么期间我又做了些什么呢?总结一下就是:在刚接手这个运营环境的时候,它是一个存在单点故障、不具备扩张性的架构,虽然也用到了nginx这样比较新的web环境,但离理想状态还差得远。于是我就准备对其进行改造,构建一个高可用、可扩展的运营环境。幸运的是,这个事情得到大力支持和鼓励;通过几个月的规划和实践,基本上作成功了。改造后的环境,使用了当前比较流行的技术,这些技术和方案包括但不限于:lvs+keepalived+failover、dns视图实现简单的cdn功能、nagios服务监控、mysql数据库主从复制、moosefs分布式文件系统实现高性能高可用文件共享、postfix邮件系统等等。
尽管以上每项技术/方案都足以单独写成一本书,但在这里,我只想把这些开源工具做一些组合和取舍,一方面满足实际需求,另一方面也算是对开源的推广做些小小的贡献。”