《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必须在这些策略的制定中发言,确保数据库层面的落地可行。