我的系统运维观

我做系统运维工作也好几年了,基本上应付过各种各样的运维环境和工具。从最开始简单的各种应用部署,比如常用的 LVS HAproxy 这样的负载应用、 Apache Nginx 这类的 Web 应用,到 MySQL 数据库的主从结构的部署,以及云计算 Hadoop 、各种监控( Cacti Zabbix )、缓存( Squid Varnish Nginx Memcached Redis )等,无不有所涉足。
此后,更多的工作是根据实际的情况来设计架构。这不仅可以让系统稳定、高性能地运行,还需要在未来的扩展中不影响整个的业务的运行。整体架构的清晰对企业的发展是很重要的,如果上层企业领导不重视或者是外行人领导内行人的话,企业的人力成本、硬件成本等会有更多的消耗。
随着企业的发展、软硬件的增加,有一个健壮的自动化运维平台也是增加效率、减少人力成本,也是很好的方法。可惜很多企业不重视运维,认为只要有个人随便能应付就行,等企业发展起来想做调整也不行了,反而浪费了更多的人力物力。
想做好运维师这个职位,不仅要有相应的技术,还需要在一个具备发展眼光的技术团队和公司。否则只能是混日子,而这不论对公司还是个人都不是一个好的发展。
系统运维师这个职业,就是这样,不断面临新的问题和挑战,也需要不断学习新的知识和概念。不过一路走来,我感觉所有的付出都有所回报,还是值得的。

 

 

写作本书的目的

我工作有七八年时间了,期间也做过技术培训中心的讲师。在教学过程中,我发现很多学生在进入企业后有些是无法胜任工作的,这里不排除一些因为上课不好好听讲、课后不认真练习的学生;另一方面也有可能企业的线上环境比较复杂,再加上自己也没什么职业目标不明确干什么,不重视基础知识积累,实践经验少,根本不会计算流量、软件选型等。所以,我有了写这本书的想法,结合我个人在网站架构上的技术经验和培训时的教学思路,可以帮助初中级读者进行技术方面的一次系统的学习(包括负载、页面级缓存、 NoSQL 、分布式文件系统、监控)。由浅入深地介绍这些内容,也可以让初中级读者在网站架构上有一个清晰的认识,在多种应用软件中选择适合企业的来完善企业的网站架构。
本书中所提到的系统均为 CentOS 5.6 ,所讲的应用,所提供的脚本均来自于线上生产环境, 大家可以直接使用。
希望大家通过学习本书,能够掌握网站架构各种技术的应用,以及在一定程度上可以设置实用的网站架构,使自己的职业技能有一个质的提高。这是我期望看到的,也是我写这本书的目的。

 

 

读者对象

本书的读者对象如下:
q  网站运维工程师
q  系统管理员和系统工程师
q  网络管理员和企业网管
q  计算机相关专业的学生

 

 

如何阅读本书

本书的结构是按一般网站的架构需求顺序来编写的。全书共分为 7 16 章。
第一篇是架构规划篇,也就是第 1 章,主要介绍了对企业网站架构的选型、系统的快速 安装及初始化高性能系统的一些参数。
第二篇为负载应用篇,包括第 2 章到第 4 章。第 2 章介绍了 LVS+KeepAlived ,这是可以 媲美硬件负载的开源软件。第 3 章则简单地介绍了 Haproxy ,它是提供高可用性、负载均衡 以及基于 TCP HTTP 应用的代理。第 4 章介绍的是 Nginx 的负载功能,它可以按照多种方式对后端的应用服务器做负载均衡。这些内容都是网站前端必然用到的知识,建议大家多花些精力和时间学习。
第三篇为页面缓存篇,包括第 5 章、第 6 章和第 7 章。第 5 章介绍了老牌的代理服务器和 Web 缓存服务器软件 Squid 。第 6 章介绍相对更为高性能的缓存软件 Varnish 。第 7 章介绍了应用在流量不大环境中 Nginx 的缓存功能。
第四篇为 Web 服务器篇,包括第 8 章和第 9 章两章。第 8 章介绍了几乎可以在任何平台上运行、世界使用排名第一的 Web 服务器软件 Apache 。第 9 章介绍了一款轻量级软件 Nginx ,其并发能力在同类型的 Web 服务器中表现较好,此外,还简单介绍了 Lighttpd 的安装和配置。
第五篇是数据缓存篇( NoSQL ),包括第 10 章、第 11 章和第 12 章。第 10 章首先对 NoSQL 的概念进行简单介绍,然后,介绍了 Memcache 的机理、安装和使用。第 11 章则介绍了拥有更多的 Value 类型、持久化和主从功能的 Redis 。第 12 章介绍了基于分布式文件存储的数据库 MongoDB
第六篇为文件服务篇,包括第 13 章和第 14 章。第 13 章介绍了一个具备容错功能的网络分布式文件系统 MFS ,它可以将数据分布在网络中不同服务器上。第 14 章介绍了 Hadoop ,它不仅仅是一个用于存储的分布式文件系统,而且可以用来在通用计算设备组成的大型集群上执行分布式应用框架。
第七篇监控应用篇,也是最后一篇,包括第 15 章和第 16 章。第 15 章介绍了各大 IDC 都在使用监控流量的 Cacti 。第 16 章介绍了 Zabbix ,这是一款基于 Web 界面的提供分布式系统监视以及网络监视功能的软件。
附录部分分别给出了 ipvsadm 命令参考、 HAProxy 关键字列表、 Squid 客户端命令行参考等常用的信息。
大家可以根据自己的需求选择阅读侧重点,不过我还是希望你能够按照顺序来阅读,这样不仅仅可以对架构上有一个清晰的认识,还可以对架构中的技术有一个简单的对比。