【IT 基础架构】系统运维实践

基础架构最重要的三点:可靠、简单和高效。基础架构中的两大基石:CMDB 和 Workflow。


更新历史

  • 2022.11.26:完成初稿

读后感

看君一本书,胜干三年活。我们通过学习先进经验,再进行实践,就能超额成长,一年更比三年强。对运维人员非常重要的一本书,强烈推荐!

读书笔记

混沌初开

  • 基础架构最重要的三点:可靠、简单和高效。
  • 基础架构中的两大基石:CMDB 和 Workflow
    • 没有 CMDB,信息从哪里来?
    • 没有规范的 Workflow,如何确保信息的准确性
  • 简单是支撑规模增长、消除扩容瓶颈的基础条件
    • 消灭异构形式:不论是通信协议、接口规范还是底层框架
    • 消灭重复组件:不要重复造轮子,精力要放在业务场景适用性上
    • 消灭紧耦合关系:架构扁平化,消除冗余的层级
      • 明确职权界线
      • 拆除过度的依赖关系

大家感兴趣的是:

  • 整个系统的工作流程是怎样实现的
  • 模块之间是如何协同工作的
  • 在实现过程中遇到了什么问题,如何解决的
  • 这套系统适用于哪些场景
  • 什么时候会遇到瓶颈
  • 这个模式能否广泛复用

数据中心规划设计

  • 网络区
    • 安置核心层的网络设备,以及与银行对接的一些专线设备
    • 负责人:NE(网络工程师)
  • 管理区
    • 提供维护管理功能,涵盖所有的基础服务
    • 如:部署系统、资产系统、DNS、文件共享、配置管理、监控系统、安全监测系统等
    • 负责人:运维团队所有成员
  • 数据库区
    • 根据实际情况再做细分,例如根据数据库类型来划分,根据业务登记来划分
    • 带存储的数据库最好和不带存储的数据库分开安置
    • 负责人:运维 DBA
  • 应用区
    • 安置前端应用服务器,通常位于网络拓扑的 DMZ 区
    • 设备数量最多的区域,也是变数最多的区域
    • 负责人:PE(产品工程师/应用运维工程师)
  • 大数据区
    • 对计算能力和存储空间的要求很高,能耗非常惊人,所以不可以和一般机型混放在一起
    • 为数据节点服务器选用电力容量更高的机柜
    • 名称节点服务器等和其他服务器相比差不多,可以考虑在大数据区内部划出一块地方
  • 预发布区
    • 模拟线上的真实环境
    • 生产系统不允许研发人员直接操作
  • 特殊需求区
    • 承接各种各样的非主流、临时需求
  • 开发区
    • 面向研发和测试人员
    • 内部也存在逻辑隔离的需求,称为闭环系统
  • 沙盘区
    • 新技术探索研究或者故障复现
    • 比开发区风险更大,要实施隔离

网络空间规划

经典的三层网络架构是由核心、汇聚和接入三部分组成的。为了保障服务的伸缩性、灵活性以及维护工作的一致性,数据中心在建设过程中,采取了模块化的网络部署方式。它将汇聚层、接入层联通服务器等设备统统部署到同一个逻辑单元中,我们称之为 PoD(Point of Delivery)。所有的 PoD 通过核心层设备形成互联。当数据中心需要扩容时,只需水平增加 PoD 即可。

在一个二层网络内,通信基本靠“吼”,设备寻址要借助 ARP 广播来实现。不过广播域规模过大是有害的,会引发巨额开销。二层网络无法隔离广播域,一旦发生广播风暴或 ARP 攻击,整个二层网络内的通信都会受到印象。三层设备可以隔离广播域,但是成本太高,因此使用 VLAN 是一种普遍的解决方案。一个 VLAN 就是一个广播域。默认情况下,不同 VLAN 之间是相互隔离的。

网卡绑定推荐使用 802.3ad layer2+3 的模式,是目前主流互联网比较常用的解决方案。

服务器硬件选型

硬件平台建设初期,应该选择功能强,故障率低、日常维护简单便捷的产品。建议选择两家供应商,减少产品多样化带来的麻烦,也防止被单一产品绑架。

平台建设的中期阶段,业务扩张速度最快,服务器数量明显增多,成本压力很大。为了成本控制和合规,也会引入更多供应商,就会逐步形成异构平台的乱局,要重点做异构融合。

平台建设进入后期,服务器数量非常庞大,单节点故障对于业务的影响已经被弱化甚至消除了,就需要考虑:1)如何精简服务器的硬件配置来降低整体成本,2)如何处理生命周期完结后的老久设备。

选型的总体原则

  1. 统一规划,明确应用系统在规划期内的规模,对整个应用系统的模块、用户、流程进行分析;确定总体需求,从而定义硬件平台的架构和配置。
  2. 高可靠性,要求硬件平台长期能够稳定地正常运行。服务器的适用性强,故障率低。在产品生命周期内,确保供应链可靠和备件货源充足。
  3. 操作便利性,日常操作简单方便,可维护性强,满足大批量集中管理的需求;对于设备运行状态提供有效监控,在出现故障事件时能欧及时预警;分析日志的内容输出详细,可以留存、转发和导出
  4. 弱化纵向扩容能力,要在硬件产品的整个生命周期内,充分考虑业务需求的延展,硬件配置应当在整个生命周期内都满足业务需要;生命周期结束后,设备升级方案应当采取整机替换,而不是部件升级。
  5. 符合未来发展走向,要根据 x86 未来应用的发展特点来选择合适的架构,主要宗旨是弱化单节点影响,强调架构简单和分布式的部署方式。
  6. 产品线平滑过渡,选择主流的产品,确保更新换代时可以平滑过渡,防止出现产品断层,硬件平台选型前后差异化过大,会带来不可估量的风险
  7. 高性价比,质优价廉

构建 CMDB 与 Workflow

运维的困境就在于,没有提前做好面对质变的准备。团队疲于应付基于故障处理、基于业务需求的工作,完全没有时间,甚至没有就产品价值和用户价值去思考问题的意识。

忙,成为一切拖延症的最佳理由。团队在事务优先排序上选错了度量工具,不用价值来衡量,却非要去和时间赛跑,陷入明日复明日的怪圈。

CMDB(Configuration Management Database,配置管理数据库)用于存储与管理企业 IT 架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相连,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程来保证数据的准确性。

衡量一个运维团队的能力如何,有一个非常简单粗暴的判断依据,就是检查他们的 CMDB 到底能做到什么程度,CMDB 是一切运维的基石。

对于监控告警平台的要求,不是说故障出现时,能够及时发出警报这么简单,要把所有相关的信息都发送出来才行。什么信息都没有,光喊狼来了,那是不行的。警报发出来,就意味着战斗,就必须弄清楚敌人的全部情况才行。

最糟糕的运维就是在没有打好基础的时候,反倒是先把上层建筑都统统搞起来了,唯独丢掉了最重要的 CMDB,用 Excel 表格来自欺欺人,后期信息缺失全靠人肉支撑。先盖楼、后打地基正是某些运维团队的现状。这样做的理由就是因为打地基的成本高,进度慢,所以就先拿一个东西来凑合,剩下的以后再说。

CMDB -> Deployment -> Management > Monitor Platform -> Business Review -> Cost keeping

在构建 CMDB 的过程中,实际上是一个业务逻辑梳理的全过程。因此,CMDB 的整个架构应当由业务团队去构建,而不是甩给开发团队。不懂业务就没有发言权。缺少对业务的深度理解,就无法全面准确地定义配置项以及建立它们之间的关系模型。

Workflow 是规范的实例化体现,它是一套嵌入流程的自动化工作系统,主要的作用是确保用户执行过程的标准化、规范化。

硬件故障告警与维修

硬件故障有量大特点:

  1. 部件损坏的范围比较集中。最容易出问题的是机械硬盘和阵列卡,其次是内存、电源和 SSD
  2. 故障发生的时间点相对集中。因为采购的时候是按照批次的。

硬件告警最好能够与 CMDB 实现联动,这样告警时能携带更多的相关信息。

主机系统信息安全

sudo over LDAP,可以避免使用配置管理工具同步

修行之路

工程师与管理员的的差别:

  1. 表和里的差别 —— 技术深度
  2. 点和面的差别 —— 驾驭能力

系统工程师的三颗心:

  1. 对生产系统要怀敬畏心
  2. 对业务需求要存谨慎心:不得罪人的 SE 不是好 SE
  3. 对功名利禄要抱平常心

从现在开始就要改变自己:

  1. 放大格局。从整体、宏观的角度来思考问题,把解决一件事提炼升华成解决一类事。
  2. 无谓加班是无能的表现。
  3. 自找苦吃。如果没有压力,就说明工作还不到位,还没有达到全力以赴的满负载状态。
  4. 为自己打工。做事有四种态度:
    1. 做牛马 —— 把工作当负担,糊弄着做
    2. 做任务 —— 把工作当差事,尽职做
    3. 做产品 —— 把工作当市场价值,用心去做
    4. 做品牌 —— 把工作当成文化传承,注魂去做
  5. 受尊重的都是有实力的人
  6. 我们不可能让所有人都满意

开启你的管理模式

  1. 为什么你需要管理
    1. 原本有一个远大的抱负,却终日被琐事所累,那是因为你不懂得目标管理
    2. 每天累得像条狗,那是因为你不懂得时间管理
    3. 工作了很多年却没什么积蓄,那是因为你不懂得财富管理
    4. 一直在职场上打转,不断跳槽,工资却没涨多少,那是因为你不懂得执业管理
    5. 升职无望、被迫失业,感觉天都塌了,那是因为你不懂得危机管理
  2. 你必须要懂管理
    1. 通过管理,掌控自己的命运,朝向着你自己的人生道路去前行
  3. 不懂管理你将永远被动
    1. 你关注的是细节,他关注的是格局
    2. 你研究的是技术,他研究的是市场
    3. 你在看架构融合,他在想风险融资
    4. 你加班加点为刚解决一个 bug 而松一口气。与此同时他在饭桌前与客户觥筹交错,畅谈产品构想和行业价值
    5. 你每天下班到家已是深夜,连晚饭还没有吃。他不断出入各种高端社交场合,获取了大量的人脉资源
    6. 你发现自己活得越来越累,好像身体已被掏空。他时间越来越充裕,有很多进修、学习、思考的机会
    7. 你每天上班是痛苦的,想着昨天还有两个工单没有干完。他每天上班是开心的,憧憬着未来的幸福