网站运维之道(一)
什么是网站运维(Web operations)
运维,绝不是某些人眼中安装系统、做几根网线那么简单? 除去应用开发和业务运营之外的保障网站能运转的事儿都可能是运维工作的职责范围。运维的工作包括(但不限于) 软硬件部署、网络管理、应用程序维护、安全、容量规划、故障修复等等。
运维,有别于"运营"。在中文的语境中,运营更多和业务结合在一起的。而运维,则是偏向技术层面。
任何一个成功的站点都离不开一只优秀的运维团队,尽管他们更多时候隐身在网站背后不为人知。
网站可用性
所谓网站可用性(availability)也即网站正常运行时间的百分比,这是每个运营团队最主要的 KPI (Key Performance Indicators ,关键业绩指标)。对于 Web 站点来说,传统的那个 24x7 的说法已经不是很适用了,现在业界更倾向用 N 个9 来量化可用性, 最常说的就是类似 "4个9(也就是99.99%)" 的可用性。看一下表能更为直观一些。
|
描述 |
通俗叫法 |
可用性级别 |
年度停机时间 |
|
基本可用性 |
2个9 |
99% |
87.6小时 |
|
较高可用性 |
3个9 |
99.9% |
8.8小时 |
|
具有故障自动恢复能力的可用性 |
4个9 |
99.99% |
53分钟 |
|
极高可用性 |
5个9 |
99.999% |
5分钟 |
一般来说,所有的网站运维人员都在追求网站的更高级别的高可用性,但是必须注意,这是以额外的软硬件投入、更多的人力成本为代价的。成本与可用性之间也请做到良好的平衡,盲目追求高可用性是不可取的。
监控与报警机制
监控机制定义了网站可用性指标,如何获取网站的可用值? 监控工具该粉墨登场了。多数网站都会倾向于利用开源软件自行搭建监控平台。我们认为,即使网站有一台服务器,也应该搭建监控工具,这是保障网站能持续改进的基石。常见的开源监控工具有Nagios、monit等。
光有监控而报警机制跟不上,不能及时把紧急情况下的信息传递给运维技术人员,那么监控形同虚设。现在报警信息发送途径主要有邮件、IM、SMS 三种。这几个途径中,邮件告警可能是最简单的,实现起来容易,一行命令即可做到,但因为邮件本身的异步属性和邮件服务器的延时问题,很难让运维人员及时得知信息。所以,如果比较严重的告警信息必须考虑其它实时性比较高的方法。
值得一提的是,报警服务器本身也需要监控的。建议定期发送测试邮件、测试短信来验证告警功能处于正常状态。尤其是在节假日来临前更要反复确保该功能是正常可用的。
容量规划
有效的监控能够避免绝大多数问题的扩大化,但是还是做不到防患于未然。监控告警机制完善后,就需要着手考虑容量规划的问题。
所谓的容量规划,也就是一个公司为了满足商业目标的需求而决定生产能力的过程。俗语说,"人无远虑,必有近忧",容量规划,需要的是"远虑"。对应到运维的工作上来,一方面是商业目标带来的容量需求,一方面是针对相关历史数据的分析带来的预测。这里的历史数据,是需要运维团队采集、整理的。(从这个角度上说),容量规划是一个长期的过程。