《UNIX/Linux系统管理技术手册-读书笔记-第三十一章
方法论、策略与政治
1. 核心转变:从“变化最小化”到“DevOps”
| 旧模式 |
DevOps模式 |
| 抵制变化以保稳定 |
推动和鼓励变化 |
| IT部门被视为障碍和笑料 |
IT是业务加速器 |
| 开发与运维分离,互相指责 |
开发+运维紧密协作 |
| 技术债务积累 |
持续交付、自动化 |
DevOps定义:开发(Development)与运维(Operations)的融合,通过紧密协作打破壁垒,产生更好的业务成果。
💡 黄金法则:企业需求驱动IT活动,而非相反。
2. DevOps = CLAMS
| 原则 |
说明 |
能做什么 |
| 文化(Culture) |
所有人联合,聚焦全局目标;打破“我们vs他们”心态 |
Dev和Ops共同待命、共同审查、共同负责 |
| 精益(Lean) |
用实时工具沟通(ChatOps),一次解决一个组件的问题,避免冗长规划会议 |
“今天能做什么”比“下周能做什么”更重要 |
| 自动化(Automation) |
重复任务必须自动化;不懂的事先别自动化 |
提高效率、降低人为错误、基础设施即代码、可回滚 |
| 测量(Measurement) |
采集全栈(业务→应用→数据库→服务器→网络)亚秒级指标 |
设定基线,异常时追溯根因 |
| 共享(Sharing) |
内部(午餐学习/展示)和外部(会议/白皮书)分享成果 |
扩展协作,促进团队成长 |
2.1 自动化两大黄金法则
| 法则 |
说明 |
| 法则1 |
任何需要执行超过两次的任务 → 必须自动化 |
| 法则2 |
不要自动化你不理解的东西 |
自动化重点领域:
- 新机器自动配给(操作系统+软件+本地配置)
- 配置自动管理(变更进入版本控制→自动应用)
- 代码自动推广(开发→测试→生产,含自动化测试)
- 系统化修补和更新(处理离线机器的更新)
2.2 DevOps世界中的系统管理员角色
| 职责领域 |
具体内容 |
| 基础设施 |
构建、配置、自动化、部署 |
| 安全与更新 |
操作系统/子系统安全、补丁、更新 |
| DevOps技术栈 |
CI/CD、监控、测量、容器化、虚拟化、ChatOps平台 |
| 指导与培训 |
指导团队安全与基础设施最佳实践 |
| 监控与维护 |
物理/虚拟/云基础设施的性能和可用性 |
| 响应 |
用户资源请求、系统/基础设施故障修复 |
| 规划 |
系统、基础设施和容量未来扩展 |
| 协作倡导 |
促进团队成员间的合作互动 |
| 厂商管理 |
云、托管、DR、连通性、厂房、硬件服务 |
| 生命周期管理 |
基础设施组件的全生命周期 |
| 团队士气 |
布洛芬、龙舌兰酒和/或巧克力紧急储备 |
💡 关键心态:DevOps建立在克服领土冲动之上。当你被视为“帮助他人成功的英雄”时,事半功倍。
3. 工单与任务管理系统
3.1 为什么需要
| 问题 |
工单系统的解决 |
| “每个人都以为别人在操心” |
明确责任人 |
| 多人重复处理同一问题 |
统一分配,避免重复劳动 |
| 缺乏历史记录 |
可搜索的问题历史库 |
| 无法衡量团队效率 |
可量化:工单量、解决时间、未解决率 |
3.2 工单系统的核心功能
| 功能 |
说明 |
| 多渠道接收 |
Web/电子邮件/电话 |
| 全程跟踪 |
从提交到解决 |
| 分配与派发 |
个人或小组分配 |
| 状态查询 |
用户可查进度 |
| 管理报告 |
工单量、平均解决时间、员工效率、坏单百分比、工作负载分布 |
3.3 工单所有权原则
| 原则 |
说明 |
| 每个任务有明确责任人 |
“我负责保证任务完成” |
| 所有权≠当替罪羊 |
出问题时惩罚责任人→没人愿意负责 |
| 调度员角色 |
高级管理员轮值,检查新工单、分配任务、划分优先级 |
| 利用技能数据库 |
匹配工单与最适合的人员 |
3.4 用户接受度
| 关键点 |
说明 |
| 立即真人响应 |
比快速解决问题更重要——用户需要被听见 |
| 了解用户偏好 |
Web界面?邮件?定制应用?电话? |
| 准确理解工单 |
用户缺乏技术背景,常描述症状而非根因 |
| 不要曲解请求 |
用户讨厌等半天后被告知“我们理解错了,请重来” |
3.5 推荐工单系统
| 开源 |
商业 |
| OTRS(Perl) |
Jira(任意规模) |
| RT: Request Tracker(Perl) |
ServiceNow(SaaS) |
| Bugzilla(Perl) |
Remedy/BMC(大型) |
| Mantis(PHP) |
HEAT(中型) |
4. 本地文档维护
4.1 为什么重视文档
| 原因 |
说明 |
| 减少单点故障 |
专家休假/离职 → 知识不丢失 |
| 提升可重现性 |
没有共识 → 执行不一致 |
| 节省时间 |
不用重复解决已解决的问题 |
| 提高可理解性 |
后续修改符合系统架构,避免“修修补补的怪物” |
4.2 文档最佳实践
| 实践 |
说明 |
| 单页文档 |
每页一个主题,从高层概述开始,细化为更多单页 |
| 可搜索 |
保存在Wiki或第三方服务(Google Drive),加搜索功能 |
| 文档即代码 |
配置定义(Ansible剧本/Puppet模块)在Git中跟踪,确保文档与环境一致 |
| 去冗余 |
信息单一权威来源,脚本从主配置自动获取/更新 |
| 集成到流程 |
配置文件中的注释是最好的文档;本地构建工具强制包含文档 |
| 定期更新 |
言简意赅、切题、朴实——别期望“毕业论文”级别的文档,否则什么也得不到 |
5. 环境分离
| 环境 |
目的 |
| 开发(Dev) |
集成与测试新功能 |
| 测试(Test/Staging) |
预发布验证 |
| 生产(Prod) |
服务真实用户 |
| 原则 |
说明 |
| 环境等同 |
Dev/Test与Prod保持配置一致 |
| 变更自动传播 |
配置变更沿Dev→Test→Prod流动 |
| 不可变审计痕迹 |
Git中跟踪所有变更“即代码” |
| 理想目标 |
开发和运维在生产环境都无管理权限,所有变更通过自动化可审计流程完成 |
传统做法:通过角色分离“保护”生产环境。DevOps做法:通过不可变审计痕迹和自动化流程实现保护,而非依赖人工审批。
6. 灾难管理
6.1 风险评估
| 步骤 |
内容 |
| 1 |
列出潜在灾难(洪水、火灾、地震、电力故障、硬件故障、网络中断、用户错误、僵尸来袭…) |
| 2 |
评估每种威胁的可能影响 |
| 3 |
为IT服务排列优先级(哪些必须最先恢复) |
参考:NIST SP 800-30(风险评估指南)
6.2 灾难恢复计划(NIST 800-34)
| 部分 |
内容 |
| 引言 |
文档目的和范围 |
| 运营概念 |
系统描述、恢复目标、信息分类、责任 |
| 通知和启动 |
通知规程、损失评估、计划启动 |
| 恢复 |
恢复事件和规程顺序 |
| 恢复正常运营 |
并发处理、测试重建、回归正常运营、计划停止 |
6.3 灾难支持环境数据清单
| 类别 |
内容 |
| 联系信息 |
灾难规程大纲、服务合同电话/客户号、本地紧急电话、员工/老板电话 |
| 访问凭证 |
云厂商登录信息、管理密码 |
| 备份信息 |
备份介质清单和生成时间表 |
| 架构文档 |
网络图、系统服务手册 |
| 许可信息 |
软件序列号、许可数据 |
| 安装介质 |
ISO文件副本 |
| 配置数据 |
操作系统版本、补丁级别、分区表 |
| 恢复顺序 |
按特定顺序恢复系统上线的指南 |
离线保存所有合同和规程——灾难时网络可能不可用。
6.4 灾难人员配备
| 要点 |
说明 |
| 指挥链 |
离线保存负责人姓名和电话号码 |
| 最佳人选 |
一线系统管理员(非IT主管)——需有决断力,能根据最少信息做艰难决定 |
| 备份人员 |
考虑与当地咨询公司达成NATO协议(互相支援) |
| 人员配备 |
不要在日常安排中过载,雇用足够人员,别指望他们一天工作12小时 |
6.5 安全事件响应
| 要点 |
说明 |
| 劫持事件 |
提前规划回答、指定发言人、让法务参与 |
| 流量激增 |
负载均衡器将多余连接导向“抱歉,正忙”页面,或自动扩展到云端 |
| 法律合规 |
信用卡数据泄露需依法处理,法务部门参与安全事件规划 |
| 详细指南 |
参见27.12节完整的事故处理指南 |
7. IT策略与规程
7.1 策略 vs 规程
| 对比 |
策略(Policy) |
规程(Procedure) |
| 定义 |
定义需求或规则 |
描述如何满足需求或规则 |
| 示例 |
“每天必须做增量备份” |
“使用backups01上的BackupExec软件执行增量备份” |
| 变更频率 |
每年复核,偶尔修改 |
随架构/系统/配置不断演变 |
💡 策略不应经常变更;规程需要持续更新。
7.2 策略框架应包括的主题
| 主题 |
说明 |
| 信息安全策略 |
核心安全要求 |
| 外方联系协议 |
第三方交互规则 |
| 资产管理策略 |
硬件/软件生命周期 |
| 数据分类系统 |
数据敏感度分级 |
| 人力资源安全策略 |
员工安全角色 |
| 物理安全策略 |
设施访问控制 |
| 访问控制策略 |
用户权限管理 |
| 新系统安全标准 |
开发/维护/新系统 |
| 安全事件管理策略 |
事件响应流程 |
| 业务持续性管理 |
灾难恢复 |
| 数据留存标准 |
日志/数据保留期限 |
| 用户隐私保护 |
隐私政策 |
| 合规策略 |
法规遵从 |
7.3 需要建立规程的常见任务
| 类别 |
任务 |
| 账户管理 |
添加/删除用户 |
| 系统配给 |
新机器本地化、保护新机器 |
| 系统退役 |
移除旧机器 |
| 软件管理 |
安装软件包、升级操作系统、打补丁 |
| 服务管理 |
重启复杂软件、恢复无响应站点 |
| 备份恢复 |
备份和恢复文件、作废旧备份 |
| 应急 |
执行紧急关机 |
8. 服务水平协议(SLA)
8.1 核心要素
| 要素 |
内容 |
| 服务范围与说明 |
非技术语言描述服务(电子邮件、Web、文件服务器、认证等) |
| 服务标准 |
可用性、支持时间、响应时间、维护窗口 |
| 队列管理策略 |
优先级方案:多人无法工作 > 一人无法工作 > 改进请求 |
| 一致性衡量 |
正常运行时间百分比、工单解决时间、SLA达标率 |
8.2 服务标准要考虑的问题
| 领域 |
问题 |
| 响应时间 |
工单响应目标 |
| 下班后服务 |
周末/夜间支持(24/7 vs 办公时间) |
| 上门服务 |
是否支持家庭环境 |
| 硬件策略 |
不常见/专有硬件的升级策略 |
| 操作系统 |
支持的操作系统版本 |
| 云平台 |
支持的云供应商 |
| 标准配置 |
用户定制政策 |
| 数据留存 |
数据保留期限 |
| 专用软件 |
特殊软件支持 |
8.3 优先级方案
| 优先级 |
描述 |
| P1 |
很多人无法工作 |
| P2 |
某个人无法工作 |
| P3 |
要求改进(可等待) |
P1内部按影响范围进一步排序(例如:邮件故障 vs Web服务暂时不可用)。
9. 合规:规章与标准
| 标准/法规 |
适用对象 |
说明 |
| CJIS |
犯罪信息跟踪机构 |
FBI犯罪数据库集成 |
| COBIT |
自愿采用 |
ISACA的IT治理框架,37个流程5个领域 |
| COPPA |
收集13岁以下儿童信息的组织 |
需家长许可 |
| FERPA |
接受联邦补贴的教育机构 |
保护学生信息 |
| FISMA |
政府机构及其承包商 |
强制NIST信息安全标准 |
| FTC Safe Harbor |
与欧洲公司打交道的美国组织 |
美欧隐私立法桥梁 |
| GLBA |
金融机构 |
消费者隐私信息保护 |
| HIPAA |
处理受保护健康信息(PHI)的组织 |
健康信息安全 |
| ISO27001/27002 |
自愿采用 |
信息安全最佳实践集合 |
| NERC CIP |
电力/电话/金融等关键基础设施 |
抵御自然灾害和恐怖主义 |
| PCI DSS |
接受信用卡支付的任何组织 |
支付卡数据安全 |
| FTC Red Flag Rules |
向消费者提供信贷的组织 |
身份盗用预防和检测 |
| SOX ITGC |
所有上市公司 |
防止会计错误和欺诈 |
| ITIL |
历史上被大量采用 |
全面IT服务管理(但过度过程化,DevOps被视为反ITIL) |
💡 推荐阅读:即使无须合规,NIST 800-53(安全控制评估)和NIST 800-34(灾难恢复)对任何组织都有参考价值。
10. 法律问题
| 法律 |
关键点 |
| 电子通信隐私法案 |
通信隐私保护 |
| 计算机欺诈和滥用法案 |
计算机滥用刑事处罚 |
| 禁止电子盗窃法案 |
电子内容盗版 |
| 数字千年版权法案(DMCA) |
版权保护 |
| 电子邮件隐私法 |
邮件隐私 |
| 2015年网络安全法案 |
网络安全 |
10.1 隐私保护
| 要点 |
说明 |
| 用户是脆弱环节 |
技术无法防范社会工程攻击 |
| 教育用户 |
合法站点绝不会索要密码/要求“核实”账户/通知中奖/提示安装非主动寻找的软件 |
| 启动画面 |
告知用户活动可能被监控(合法合规) |
| 书面政策签署 |
新用户入职流程的一部分 |
10.2 落实与执法
| 要点 |
说明 |
| 政策声明 |
“未经授权使用违反州和联邦法律,可能受到刑事和民事处罚” |
| NTP同步 |
日志时间戳作为法庭证据需NTP同步验证 |
| 一致执行 |
未强制执行或不一致的政策比没有政策更糟糕(视为同谋) |
| 隐私vs日志 |
了解当地法律和监管标准对日志记录的要求 |
10.3 软件许可证
| 风险 |
应对 |
| 使用数量 > 购买数量 |
写备忘录记录现状,抄送管理层;要求书面答复 |
| 试用版过期后继续使用 |
记录指示,保护自己 |
| 拒绝纠正 |
要么按规程处理,要么考虑离职——绝不要“装作不知道” |
11. 组织与资源
| 组织 |
说明 |
| FSF(自由软件基金会) |
GNU项目赞助方,GPL许可证起源 |
| USENIX |
UNIX/Linux用户组,年度技术会议(ATC),LISA大会 |
| LOPSA(专业系统管理员联盟) |
系统管理员专业组织,赞助系统管理员感谢日 |
| SANS |
安全课程/研讨会,GIAC认证 |
| SAGE-AU |
澳大利亚系统管理员专业协会 |
| Linux Foundation |
LinuxCon等会议 |
| LinuxFest Northwest |
内容丰富的基础会议 |
| Meetup |
查找当地Linux/UNIX用户组 |
附录:系统管理简史核心要点
| 时期 |
关键事件 |
| 1952-1960 |
IBM 701/704,系统操作员,SHARE用户组成立 |
| 1961-1969 |
分时概念(McCarthy),Multics项目 |
| 1969-1973 |
UNIX诞生(Thompson/Ritchie),C语言,管道,UNIX哲学 |
| 1974-1990 |
SOSP论文引爆UNIX,Berkeley BSD崛起,TCP/IP套接字,Bill Joy创立Sun |
| 1980s |
系统管理员角色出现,“系统管理员之母”Evi Nemeth |
| 1991-1995 |
AT&T起诉BSDI/Berkeley(杀死BSD),Linus Torvalds创建Linux,Red Hat成立 |
| 1996-1999 |
Windows NT崛起,UNIX vs Windows平台战争 |
| 2000-2009 |
Internet泡沫破裂,TCO分析显示Linux优势,经济危机推动开源采用 |
| 2010-至今 |
超大规模云时代(AWS/GCP/Azure),虚拟化,容器化,DevOps |
DBA视角补充:
- DevOps与DBA角色融合:现代DBA不仅要管数据库,还要参与CI/CD流水线的数据库变更管理、基础设施即代码(Terraform管理RDS)、监控仪表盘共建(Grafana)。DBA是DevOps团队中的“数据专家”。
- 工单系统的DBA价值:数据库变更请求(Schema迁移、索引添加、SQL调优)通过工单系统跟踪,实现可审计、可追溯、可衡量(平均响应时间、变更成功率)。这是DBA工作量的客观量化。
- 灾难恢复的DBA视角:数据库通常是灾难恢复的最优先级服务。确保DR计划中包含数据库备份异地存储、RTO/RPO目标、数据库恢复步骤(包括密码/密钥)、云快照策略。NIST 800-34的恢复计划部分对数据库特别适用。
- 合规与DBA:DBA直接面对HIPAA(PHI数据)、PCI DSS(信用卡数据)、GLBA(金融数据)等合规要求。数据库审计日志保留策略、加密存储(TDE)、访问控制、数据匿名化政策是DBA的日常合规工作。
- SLA与数据库:数据库可用性SLA(如99.99%)直接影响应用SLA。DBA需要与业务方明确数据库RTO/RPO,并在SLA中体现,避免“数据库总是要可用”的不切实际期望。
- 文档与DBA:数据库架构图、数据字典、ER图、备份恢复步骤、高可用切换流程——这些都应文档化(Wiki + 代码注释),防止“只有某位DBA知道”的单点故障。
- IT策略的DBA参与:数据分类策略、数据留存标准、访问控制策略——DBA必须在这些策略的制定中发言,确保数据库层面的落地可行。