本章所涉及的运维管理有两部分,第一部分介绍公司内部的“IT运维”,第二节部分介绍“网站运维”的相关总结(很多内容还在实践中改善)。
7.1 IT运维
参考“IT运维”第一段,“IT运维”并不是本节所介绍的那么简单,它的复杂程度根据公司规模和性质有关系。目前公司“IT运维”主要负责以下日常工作:
- 硬件采购:制定不同部门员工的电脑配制单和公司网络设备需求等,由运维人员提供给行政部门采购。
- 设备管理:对网络设备、服务器设备、操作系统运行状况进行监控和管理。
- 系统管理:负责员工电脑操作系统的安装和维护支持,架设并管理内部应用系统(虚拟化、文件服务器、版本控制系统、数据库服器等)。
- 资源管理:建立内部资源管理机制(文件服务器、版本控制系统),并对这些资源和数据进行管理和备份。
目前运维组有以下工作流程:
- 新电脑安装流程
- 新员工开设帐号流程
- 电脑收回及帐号删除流程
- 机房上架机器操作流程
- 日常技术支持流程
- 网络维护规范流程
- 硬件安全管理流程
- 备份规范流程
7.2 网站运维
首先区分“网站运维”和“网站运营”是两个完全不同的工作,也属于不同的部门,并且网站运维也不只是安装系统、架设局域网那么简单的工作,本章节总结目前项目都做了哪些运维工作。
7.2.1 物理架构
在“第四章、架构设计”中介绍了项目的物理架构,在项目进入物理架构设计阶段时,项目负责人要和运维负责人共同完成项目的物理架构,因为运维负责人会为网络架构、数据存储、网络安全等提出一些更好的建议,前期设计良好的物理架构,会方便后期的架构扩展和运维管理。
7.2.2 运维管理
硬件采购
运维负责人要根据网站的物理架构和IDC机房环境选择合适的硬件,采购物美价廉的硬件。选择什么品牌的服务器、购买服务器硬件的哪些套餐、什么版本的操作系统更适合网站等这些工作也是一项技术活,并且要提供多套价格表供上级领导选择。在硬件采购时,需要注意以下事项:
- 性价比:不管企业处于哪种阶段,选择“性价比”最好的方案才能得到领导的认可。
- 实用性:根据实际需求购买硬件和软件服务,硬件更新太快,不要盲目追求高配置而造成资金浪费,结合项目的发展情况来扩充硬件需求。
- 稳定性:可扩展性、可冗余性、热插拔性
- 售后服务:这个很重要
资料:51CTO、IT168
网络部署
目前项目部署环境是由IDC机房提供一个机柜,运维人员按照项目的物理架构把服务器相关设备部署到IDC房机,有关网络的部署需要注意:
- 网线制作:不同的网络设备需要不同的网线质量来连接,比如千兆和万兆交换机的连接是有区别的。
- 部署整理:把硬件设备摆放到合适的位置,不要随意摆放,为每个设备和网线贴上标签,写明每个设备的用途,方便后期维护和整理。
系统安装
根据网站的架构需求,安装网站运行环境所需要的操作系统和应用软件,初始化操作系统相关配置,调整操作系统安装策略。这个过程可以由项目负责人(开发人员)辅助完成,或者参考内部测试环境进行安装。安装操作系统和应用软件时,需要注意以下事项:
- 最小化安装:Web服务器使用Windows Server 2008 Web版本已经足够,减少授权费用,关闭操作系统不使用的服务,只安装需要的组件,比如:IIS7默认并没有安装“动态压缩”的功能,静态资源和图片服务器采用Centos+Nginx。
- 软件配置:在默认安装SQL Server、IIS、Nginx、杀毒软件等后,都需要对这些软件的功能需求边界进行设置,关闭不使用的功能配置,屏蔽一些安全开关,必要时对可运行的环境配置进行备份。
- 权限设置:在操作系统和软件默认安装后,为了能保证网站程序的正常运行,需要对默认环境进行配置,有时需要开放一些安全权限,也需要关闭一些安全设置。比如“为网站程序建立专有的系统用户,限制IIS站点的访问权限和目录执行权限,并设置“当前用户”对操作系统的操作权限。”参考“配置Web 服务器安全性 (IIS 7)”
- 安全策略:根据需求分配访问网站程序用户的权限和安全级别,在不同的节点进行控制,比如“硬件防火墙过滤原则”、“服务器访问权限控制”、“网站程序访问权限”、“具体服务接口调用的安全策略”、“配置信息加密控制”等。
- 容量规划:根据网站的物理架构、逻辑架构、具体数据需求来规划数据存储空间和数据存储策略,考虑后期数据容量的扩充和维护,可通过监控工具 (RRDtool)查看数据容量的变化,及时对磁盘容量进行扩充。
- 系统备份:当操作系统和应用软件环境都安装完毕后,需要对目前可正常运行的环境进行备份(Windows Server Backup),防止系统产生问题后花费大量时间来初始化操作系统,如果使用“虚拟化”,可以灵活设置虚拟机的快照,更方便备份和还原。
网站安全
第一步要最大化保证网络、操作系统、应用软件的安全级别,然后按照“第六章、网站测试”中的安全测试方法对网站进行安全测试,并对用户所产生的数据进行 加密(用户密码等资料),对网站程序的配置信息进行加密(.NET 自带),最后防止社会工程学对网站进行破解,做好内部保密工作。
网站部署
根据内部流程,网站部署最终由运维工作人员负责,具体流程参考“第一章、团队建设”的团队协作图,网站部署流程如下:
- 1、运维组接收测试组的升级工程单(紧急情况特殊对待)。
- 2、按照升级工程单从版本控制系统获取最新需要发布的程序。
- 3、升级工程单会详细描述此次升级需要更新的文件和需要修改的配置说明,升级对应的网站程序,按照工程单中的要求来决定是否需要重启网站。
- 4、通知测试组验证此次升级是否有效。
注:目前内部程序更新和升级版本都需要手工操作完成,这样难免会产生误操作,团队内部正在学习“持续集成”中的一些最佳实践,实现自动化配置发布流程。
监控与报警机制
网站投入运行后,如果想要随时了解网站的运行情况,就需要采用可靠的监控解决方案。
- 网络、硬件设备、操作系统:采用开源软件搭建监控平台,目前我们采用“Cacti”来监控网络运行状况、 磁盘容量监控、操作系统及操作系统的服务运行状况(Nagios插件),也可以在“Cacti”上安装插 件来监控“Memcached”的运行状况。为了可以在远程监控操作系统的运行状况,可以为服务器安装“远程管理卡”实现通过远程浏览器监控操作系统的重启过程。
- 网站程序运行监控:在网站架构初期,就要考虑网站程序日志系统的重要性,通过网站程序的日志系统可以监控网站业务的运行状况,记录重要的错误信息方便分析。
- 第三方监控服务:以上两种监控解决方案只是针对内部监控,可以使用第三方服务来监控网站的运行状况(HTTP、PING),通过开发服务器操作系统的 SNMP服务来监控操作系统和具体服务的运行状况,第三方监控服务优点在于可以实现分布式 监控,网站管理员可以查看网站在各地区的访问速度,同时也具备多种报警机制。目前我们使用了“监控宝”和“webluker”,它们分别 提供了免费的监控服务,大家可以尝试使用。
- 报警机制:常见的报警方法有“日志记录、邮件通知、短信通知”,也可以使用第三方通讯软件的接口(GTalk)。我们采用内建邮件服务器,对外发送邮件通 知(QQ企业邮局),QQ企业邮局提供免费短信提醒,网站出问题后可以收到短信通知。(注意报警策略可以随时关闭)
- 有关监控文章分享:监控与报警机制
日志管理
目前我们做了以下日志记录和管理:
- 网络运行日志:监控网络和设备产生的日志,目前采用“solarwinds”工具。
- 操作系统和软件日志:定期备份操作系统产生的日志,根据需求设置软件的日志存储策略(IIS、SQL Server),一定要合理存储和管理应用程序产生的日志。
- 网站程序运行日志:考虑到网站性能,默认不开启网站业务的日志记录,只有发生问题或在测试环境时才开启网站的日志记录。
数据备份
在IT运维中,有一项重要的工作为“数据备份”,公司内部需要一种备份解决方案来解决内部数据(文档、文件资料、源代码、应用软件)的备份,针对不同的环境备份机制不同,但是一定要定期把对于公司最重要的数据进行备份,可以同步到光盘或者第三方存储设备上。
除了内部数据备份,网站在运维的过程中所产生的数据(数据库、图片、任何资源)、操作系统及应用程序配置信息,都需要一套可行的备份解决方法。
推荐以下备份方法:
采用哪种方案并不重要,重要的是运维人员和公司内部要认识到数据备份的重要性。
自动化管理
自动化管理主要是为了节约运维成本,减少长期手工操作产生的误操作。在保证一些运维实践都可以正常运行后,使用工具或脚本串联一系列操作过程。 “CC.NET”就是为了解决自动化配置和软件发布管理工具,如果团 队要采用“持续集成”,项目前期就需要规好化产品的配置管理、版本控制、测试策略、自动化构建脚本等工作。
本系列目录:2011 年终项目总结