前言
为什么要写这本书
笔者从事系统运维和网站架构设计的工作已有10多年,现在在一家外企担任云平台架构师。云计算是现在的主流技术,未来也有很好的发展趋势,云计算的流行对于传统的运维知识体系来说,其实也造成了冲击,有很多读者经常向笔者咨询工作中的困惑,比如从事系统运维工作3~5年后就不知道该如何继续学习和规划自己的职业生涯了。因此笔者想通过此书,跟大家分享一下自己的工作经验和心得(包括传统运维和云平台运维工作的区别与对比),以期解决大家在工作中的困惑。本书提供了大量项目实践和线上案例,希望能让大家迅速了解Linux运维人员的工作职责,快速进入工作状态并找到成长方向。希望大家通过阅读此书,能够掌握Linux系统集群和自动化运维及网站架构设计的精髓,从而能够轻松愉快地工作,并提升自己的职业技能,这就是笔者写作此书的初衷。
运维架构师之路
在成为运维架构师之前,笔者从事过很长一段时间的系统集成、运维和管理工作,在CDN门户网站、电子广告、电子商务领域也有不少的沉淀和积累,在之前的《构建高可用Linux服务器》一书中已经跟大家分享了很多跟Linux集群有关的知识。笔者目前的主要工作职责是维护和优化公司的DSP电子广告业务平台,主要方向是云计算和大数据方面。需要维护的数据中心和机器数量非常之多,所以自动化运维和DevOps是目前的主要工作方向,此外,也会涉及网站架构设计及调优工作,因此在此书中特意将这部分工作经验分享出来,希望大家能从中学到新的知识体系,借以提升自己的职业技能。
读者对象
本书适合以下读者阅读。
·中高级系统管理员
·系统架构设计师
·高级程序开发人员
·运维开发工程师
如何阅读本书
本书是笔者对实际工作中积累的技术和经验所做的总结,涉及大量的知识点和专业术语。全书总共分为三大部分,第一部分包含第1章和第2章,主要讲解进行系统架构设计的软硬件环境,以及生产环境下的Shell脚本和Python脚本。其中,第2章的内容是以Shell为主,Python为辅,Shell部分讲得比较详细,Python部分需要重点关注的地方也有所提及。之所以这样安排,主要是考虑到大多数搞开发的读者或DevOps工程师都是Java程序员出身,对Shell脚本语言不是很熟悉。第二部分包含第3章、第4章和第5章,主要讲自动化运维,包括Fabric、Ansibel和Puppet三大工具,大家可以结合自己的实际环境来选择对应的工具。第三部分包含第6章、第7章和第8章,主要讲的是Linux集群和网站架构设计,特别是第8章,分别以百万PV、千万PV及亿级PV的网站为例来详细说明网站系统架构设计的相关技术,然后细分五层来解说网站的架构,并指出了设计网站的压力及关注点所在。
大家可以根据自己的职业发展和工作需求来选择不同的章节进行阅读或学习。
关于本书中的配置文件、Shell脚本和Python脚本的编号,这里也略作说明,比如1.5.3节中有1.sh,表示这是1.5.3节的第一个Shell脚本;如果是2.py,则表示是1.5.3节的第二个Python脚本;其他依此类推,在哪个章节中出现的配置文件或脚本就在哪个章节中寻找,这样对照起来阅读理解会比较方便。此外,书中多次出现的Nginx配置文件nginx.conf也在对应的章节里。本书相关的GitHub地址为http://github.com/yuhongchun/automation。
勘误
尽管笔者花费了大量的时间和精力来核对文件和语法,但书中难免还会存在一些错误和纰漏,如果大家发现有任何问题,都请及时反馈给我,相关信息可以发到个人邮箱yuhongchun027@gmail.com。尽管无法保证对于每一个问题都会有一个正确答案,但我肯定会努力回答并且指出一个正确的方向。
致谢
感谢爱女媛媛的出生,你的降临是上天赐给我的最好礼物,是我进行写作的源泉和动力。
感谢我的家人,他们在生活上对我的照顾无微不至,让我有更多的精力和动力去工作和创作。
感谢好友三宝这么多年来对我的信任和支持,从始至终一直都在支持和信任我。
感谢机械工业出版社华章公司的编辑杨福川和杨绣国,在你们的信任、支持和帮助下,我才能如此顺利地完成全部书稿。
感谢好友老男孩和刘天斯,闲暇之余和你们一起交流开源技术和发展趋势,也是一种享受。
感谢Linux之父——Linus Torvalds,他不仅创造了Linux系统,而且还创造了Git这么神奇的版本管理软件。
余洪春(抚琴煮酒)
中国,武汉