技术管理必备技能之管理好系统性风险

Posted by 卡神 on June 10, 2023

我们在平常工作中经常会听到有人说系统性风险,但系统性风险到底是个啥?

1 系统性风险是什么

1.1 定义

「系统性风险」是一个经济术语,主要指的是一种可能导致整个金融系统或市场瘫痪的风险或概率。它是从系统性风险的整体性出发,而不是单一机构或者单一行业的危机。这通常是由于金融体系中一个重要组成部分的失败,例如一个大银行或一系列银行的破产,这可能引发一种连锁反应,影响整个系统。

当突发性事件导致金融机构或市场失灵时,资金无法在市场中有效输送和配置,从而引起整个市场的崩溃。系统性风险不仅仅是经济价值损失,还会对实体经济造成严重影响,并导致大部分金融体系的信心丧失。

如 2008 年的全球金融危机。在这个危机中,许多大型金融机构由于负债过重和资产质量下降而陷入困境,这引发了对全球金融系统稳定性的广泛担忧。

系统性风险是监管机构、政策制定者和经济学家关注的主要问题,因为如果这种风险实现,可能会导致重大的经济损失和社会动荡。因此,他们会尝试制定和执行各种政策和法规,以减少系统性风险的可能性。

1.2 系统性风险和非系统性风险的差别

系统性风险作为一种具有更大影响面的风险,和非系统性风险有以下几个方面的区别:

1. 影响范围:系统性风险具有广泛的影响范围,不仅仅局限于特定个体或组织,而是可能波及整个系统、市场或行业。非系统性风险则相对较局部化,通常只对特定个体、组织或项目产生影响。

2. 相互关联性:系统性风险与系统中各个组成部分相互关联,其中一个部分的风险可能会传播、扩大或影响其他部分。非系统性风险通常是单个因素或事件的结果,并不涉及系统的相互依赖关系。

3. 复杂性和不确定性:系统性风险往往更加复杂和不确定,因为它们涉及到多个变量、因素和相互作用。非系统性风险可能更加可控和可预测,因为它们通常涉及特定事件或条件。

4. 长期影响:系统性风险可能具有长期影响,并可能导致持续的连锁反应和不良后果。非系统性风险通常具有较短期的影响,并且其影响通常更容易限定和控制。

5. 解决方法:由于系统性风险的复杂性和广泛影响,解决它们通常需要跨部门、跨组织或跨行业的合作和综合性措施。非系统性风险通常可以通过特定个体或组织的行动来解决。

系统性风险与非系统性风险在影响范围、相互关联性、复杂性和不确定性、长期影响以及解决方法等方面存在明显的区别。

2 技术上的系统性风险

类比经济上的系统性风险,对于一家企业的技术负责人来说,技术上的系统性风险也是一个需要重点关注的点。

2.1 定义

在技术上,系统性风险指的是一个技术系统或者一个技术生态系统中,某个关键组件或者某些关键组件出现故障、漏洞、安全问题等,导致整个系统或者生态系统无法正常运行,进而引发连锁反应和影响。

例如,在云计算生态系统中,某个云服务提供商的故障可能会影响到众多企业和用户的业务运营;在物联网领域,某个智能设备的漏洞可能会导致整个物联网网络遭受攻击和瘫痪。因此,在技术领域中,识别和防范系统性风险也是非常重要的。

2.2 系统性风险和非系统性风险的不同

和经济上的系统性风险一样,技术上的系统性风险和非系统性风险也有 5 个不同点:

1. 影响范围和规模:系统性风险通常具有广泛的影响范围和规模,涉及整个技术系统或架构。它可能涉及多个组件、子系统或关键基础设施,甚至可能跨越多个应用程序或服务。非系统性风险更倾向于局部范围,通常仅影响特定的组件、功能或子系统。

2. 相互关联和依赖:系统性风险涉及到技术系统中各个组件和环节之间的相互关联和依赖关系。它们可能因为一个组件或环节的故障或问题而影响其他组件或环节的正常运行。非系统性风险更倾向于独立存在,其影响相对较为局限,不会对其他组件或环节造成波及效应。

3. 复杂性和不确定性:系统性风险通常更加复杂和不确定,因为它们涉及到多个技术组件、系统交互、数据流和相关的外部因素。这使得系统性风险的评估、预测和解决变得更加困难。非系统性风险通常更容易辨识、评估和控制,因为其范围和影响相对较小。

4. 长期影响和连锁反应:系统性风险可能导致长期的影响和连锁反应,其中一个问题可能触发多个级联故障或影响多个关键业务流程。非系统性风险的影响通常更为短期和局限,不会引起大规模的系统级问题。

5. 解决方法和复杂度:由于系统性风险的复杂性和广泛影响,解决它们通常需要跨部门、跨团队的协作,涉及多个技术专长和领域的知识。这可能需要综合性的技术改进、架构调整或系统重构。非系统性风险通常可以通过单个组件或功能的修复或改进来解决,其处理相对较为简单和局部化。

3 系统性风险的传播

在技术系统中,系统性风险通过多种方式传播,包括以下几种:

  • 级联传播:级联传播是指一个组件的故障导致其他相关组件的故障,从而在整个系统中形成一种连锁反应。这种传播方式可能导致整个系统的瘫痪,影响业务的正常运行。例如,在一个分布式计算环境中,如果某个关键任务执行节点发生故障,可能导致其他依赖于该节点的任务无法正常执行,从而引发其他节点的过载或故障。这种风险传播会在整个分布式系统内形成级联效应,可能导致整个系统瘫痪。

  • 传染传播:传染传播是指一个系统的风险通过某种途径传播给其他系统,从而导致多个系统受到相同类型风险的影响。例如,WannaCry 勒索病毒,它通过网络传播,利用 Windows 系统的一个漏洞进行攻击。当某个系统被感染后,病毒会自动搜索其他具有相同漏洞的系统,并尝试感染它们。这种风险传播方式导致了全球范围内大量系统受到勒索病毒的影响。

  • 共同暴露:共同暴露是指多个系统由于共享相同的风险因素,而同时受到该风险因素的影响。例如,多个在线服务都依赖于一个第三方身份验证服务。如果这个第三方身份验证服务出现故障或者安全漏洞,那么所有依赖它的在线服务都将面临安全风险或者无法正常运行,因为它们共同暴露在同一个风险因素下。

  • 放大效应:放大效应是指一个较小的初始风险经过多次传播和叠加,最终导致整个系统面临较大的风险。例如,在社交网络中,一个虚假信息可能经过多次转发和传播,形成恶性舆论,对整个社会产生较大的负面影响。

在技术系统中,了解这些传播方式和机制对于有效管理技术风险至关重要。

4 系统性风险的来源

系统性风险的由来可以追溯到技术系统的复杂性和相互依赖性。当一个技术系统由多个组件、流程和环节组成时,它们之间存在着相互依赖和相互作用。这种相互依赖性使得一个组件或环节的故障或问题可能会影响整个系统的运行和稳定性。

以下是一些常见的系统性风险的来源:

  • 复杂性和交互作用:技术系统的复杂性和各组件之间的交互作用可能导致系统性风险的出现。当系统变得越来越复杂,组件之间的相互依赖性增加,可能出现不可预见的问题和故障。例如,一个庞大的分布式系统可能由多个模块和子系统组成,彼此之间的相互作用可能导致系统范围的故障,如性能下降或数据不一致。

  • 外部环境因素:外部环境因素也是技术系统性风险的重要来源。例如,技术系统可能受到恶劣天气、自然灾害(如山洪地震等导致光纤断了)、供应链中断或恶意攻击等外部因素的影响。这些因素可能导致系统中断、数据丢失、安全漏洞暴露等问题。例如,一家电子商务平台可能受到网络攻击,导致用户信息泄露或交易中断。

  • 人为错误和疏忽:技术系统性风险也可能源自人为错误和疏忽。人员的操作失误、编码错误、配置错误或安全意识薄弱等问题都可能导致系统故障或数据泄露。例如,一个开发人员可能在代码中引入漏洞,导致系统容易受到攻击。

  • 技术演进和更新:技术的演进和系统的更新也可能引入系统性风险。当引入新的技术、框架或库时,可能存在兼容性问题或未知的缺陷。例如,将系统从一个版本升级到另一个版本时,可能出现功能不兼容、新增的安全漏洞或数据不一致的问题等。

  • 依赖供应商和第三方:技术系统通常会依赖外部供应商或第三方服务。这种依赖性可能带来风险。例如,如果一个关键供应商无法按时提供所需的硬件设备,可能导致项目延期或无法正常运作。另外,如果一个 CDN 第三方服务提供商的服务出现故障,可能会影响到技术系统的正常运行。

以上是一些常见的技术系统性风险的来源示例。在技术管理中,了解和识别这些来源是非常重要的,以便采取相应的措施来减轻和管理系统性风险的影响。

5 管理好系统性风险的意义

聊了这么多术语类的东西,看一下对于一个技术管理者来说,管理好系统性风险到底有什么用,有什么收益。这里我们从技术管理和技术团队,以及业务的角度来看。

5.1 技术管理上的意义

从技术管理和技术团队的角度来看,管理好技术上的系统性风险具有以下意义:

1. 保障系统的稳定性和可靠性:系统性风险管理可以帮助确保技术系统的稳定性和可靠性,减少系统故障和服务中断的可能性。这有助于降低业务中断的风险,提高技术系统的可用性和持续性,保障业务的正常运行。

2. 提高技术投资的回报率:有效管理系统性风险可以降低技术投资的风险并提高回报率。通过规避潜在的系统性风险,可以减少因系统故障或不稳定性而造成的额外成本和资源浪费,提高技术投资的效益和投资回报。

3. 增强技术管理者决策能力:系统性风险管理使技术管理者能够更全面地了解和评估技术系统的风险情况。这有助于他们做出明智的决策,选择合适的措施来降低风险,并确定优先级,以使资源和精力能够最大程度地应对最重要的风险。

4. 提高团队效率:通过管理系统性风险,技术管理者可以减少系统故障和问题的发生,从而减少紧急修复和事后处理的工作量。这使团队能够更加专注于战略性的工作,提高工作效率和生产力。

5. 增加业务可信度:有效管理系统性风险可以提高技术系统的可靠性和稳定性,增加业务的可信度。这有助于提高内部和外部利益相关者对技术部门的信任,加强与其他部门的合作和协调,为企业的可持续发展和成长奠定基础。

6. 促进技术创新和发展:管理好系统性风险有助于为技术管理者提供稳定的技术基础,支持技术创新和发展。他们可以更好地专注于推动新技术的应用、优化现有技术架构和流程,为业务增长提供技术支持和竞争优势。

5.2 业务价值上的意义

从业务价值的角度来看,管理好技术上的系统性风险具有以下意义:

1. 提高效率和生产力:通过管理系统性风险,技术系统可以更加稳定和可靠地运行,减少系统故障和问题的发生,从而减少因为系统问题导致的客诉、修复、沟通等成本。这有助于提高业务的效率和生产力,节省时间和资源,并降低运营成本。

2. 支持业务增长和扩展:有效的系统性风险管理可以为业务提供可靠的技术基础,支持业务的增长和扩展。通过降低系统故障和数据泄露的风险,技术管理者可以为业务提供稳定的平台,支持业务的创新、市场拓展和新产品的推出。

3. 支持业务创新和竞争优势:系统性风险管理为技术团队提供稳定的技术基础,支持业务的创新和发展。通过降低系统性风险,技术团队能够更好地专注于业务创新、新产品开发和市场敏捷性,从而获得竞争优势。

4. 提升用户体验和满意度:系统性风险管理有助于提供稳定、安全和高性能的技术系统,提升用户体验和满意度。用户倾向于选择那些能够提供稳定服务、快速响应和数据安全的产品或服务,有效的系统性风险管理可以增强用户对技术产品或服务的信任和满意度。

5. 降低损失和风险:有效的系统性风险管理有助于降低业务面临的潜在损失和风险。通过识别和管理系统中的风险,可以减少数据泄露、安全漏洞和技术故障所带来的损失,并降低法律诉讼和声誉损害的风险。

6. 提升客户信任和忠诚度:通过管理系统性风险,技术管理者可以建立客户信任和忠诚度。稳定、安全和可靠的技术系统能够增强客户对企业的信心,提高客户满意度和保持客户的长期合作关系。

可以看到如果能管理好系统性的风险,对于技术组织,对于技术管理者,对于业务和业务价值来说,都是一件非常好的事情。从生产效率的提升,到业务稳定性,到对成本的减少以及客户成功都是极好的。

那么如何管理系统性风险呢?

6 如何管理系统性风险

6.1 风险模型

风险模型是风险管理的第一步:理解系统中已有的风险,识别、标记并对已知的风险排列优先级,最终形成一张包含了系统所有已知风险的当前状态的表格。这就是我们所说的风险模型。

建立风险模型的过程是识别风险的过程,在这个过程中我们需要识别出系统中已有的风险,并对其进行分析,标记出优先级、梳理当前状态和历史情况。

风险模型构建过程中需要考虑模型的作用范围,是公司级的,团队级的,项目组的,还是服务级的。

对于一个小公司,可以是公司级的,对于大型一些的公司,可以考虑团队或项目级的。

风险模型至少包括以下一些方面:

  • 严重性/可能性:高中低,先评估严重性,再评估可能性
  • 风险缓和计划:可以使用的或者正在使用的用来降低该风险严重性或者可能性的风险缓和措施。
  • 监控:对该风险的发生是否进行了监控,如果监控了说明监控的指标,如果没有监控,说明原因,以及达成监控目标的原因,最终所有的风险应该是要监控起来的。
  • 状态:活跃 / 已缓和 / 正在修复 / 已解决
  • 历史风险情况:该风险在历史上有没有发生过,什么时候,发生频率等
  • 风险缓和计划:当我们制定风险缓和计划的时候,需要从严重性最高的项开始,缓和风险不是为了消除,而是为了降低风险的严重性和可能性。并不是每一个风险都要制订风险缓和计划。
  • 风险预案:当风险发生的时候,我们可以采取的措施

除此之外,还包括一些常规的添加时间,ID,负责人之类的

6.2 识别和评估系统性风险

识别系统性风险是一个关键的步骤,它需要深入分析和理解组织或项目所面临的技术环境和相关因素。以下是一些常见的技术上的系统性风险示例:

  • 依赖单点故障:系统中存在关键组件、设备或服务的单点故障,一旦出现故障,将导致整个系统或业务的中断。例如,网络设备的故障、云服务提供商的服务中断等。

  • 服务间的强弱依赖:如果系统中的服务之间存在强依赖关系,一旦其中一个服务发生故障或不可用,可能会导致整个系统的故障或性能下降。

  • 内部和外部/离线和在线业务的相互影响:系统中的离线和在线业务之间存在相互依赖关系,如果其中一个业务出现问题,可能会影响其他业务的正常运行。

  • 安全漏洞和数据泄露:系统存在安全漏洞或不当的安全措施,可能导致黑客攻击、数据泄露或信息安全问题。这可能对组织的声誉、客户信任和合规性产生严重影响。

  • 技术过时和不可维护:系统采用的技术或架构已过时,不再受支持或难以维护。这可能导致系统难以升级、演进和修复漏洞,增加系统故障和风险的概率。

  • 第三方供应商问题:系统依赖于第三方供应商提供的技术、服务或组件,但供应商出现问题,无法提供所需的支持、维护或升级。这可能导致系统中断、服务质量下降或业务受阻。

  • 文档或流程的问题,如没有文档,没有沉淀,只在某些人的脑袋里面:如果系统或流程存在缺乏文档、知识沉淀或依赖于个别人员的情况,可能会造成知识孤立和团队合作的问题,影响系统的可维护性和可扩展性。

  • 数据完整性和一致性问题:数据在系统内部或与其他系统之间的传输和处理过程中,可能遭受损坏、丢失或篡改,导致数据完整性和一致性问题。这可能对决策和业务流程产生负面影响。

  • 大规模系统故障:系统由多个组件、服务或子系统组成,如果其中一个组件出现故障,可能导致整个系统的大规模故障。例如,云服务提供商的故障、硬件故障等。

  • 法规和合规风险:系统必须符合特定的法规要求和合规标准,如果系统无法满足这些要求,将面临法律风险、罚款或业务停摆的风险。

  • 服务容量的不足:系统中的某些服务容量可能不足以应对高负载或峰值流量,这可能导致性能下降、响应时间延迟或系统崩溃。

  • 基建发布或扩容等发布操作会影响业务的情况:系统基础设施的发布操作,如服务器扩容、网络配置变更等,可能会对业务产生影响,例如服务中断或性能下降。

  • 线上配置/环境/网络等的变更:对线上系统的配置、环境或网络进行变更时,可能会引入风险,如配置错误、网络中断等,导致系统故障或不稳定。

  • 安全问题:系统面临的安全漏洞、攻击风险或数据泄露等问题可能对业务运行和用户数据安全产生重大影响。

要识别系统性风险,可以采取以下方法:

  • 审查历史数据和经验教训,了解以前的系统故障和问题。
  • 进行风险评估和风险工作坊,与团队一起识别潜在的系统性风险。
  • 与各个部门和团队合作,收集反馈和洞察,了解系统的弱点和关键风险点。
  • 借鉴行业标准和最佳实践,了解常见的系统性风险和应对方法。
  • 定期进行系统评估和安全审查,以发现潜在的系统性风险。
  • 通过识别系统性风险,组织可以有针对性地采取措施来降低风险,并确保系统的稳定性、安全性和可靠性。

6.3 风险治理

风险治理不是一个一蹴而就的事情,需要持续的来做,需要从组织,流程机制,系统工具和文化层面进行治理。

  • 组织层面:一个事情或方案想要比较好的落地,一定是有一个完整的组织来承接,至少需要有 PACE 的逻辑来支撑,明确分工。
  • 流程层面:流程层面至少要建立明确的沟通机制,如周报、例会等,同时还需要建议风险控制流程,明确制定风险识别、评估、控制和监测的标准流程,确保风险管理工作的有序进行。
  • 系统工具:理想中是希望有建立统一的风险管理信息系统,用于收集、整理和分析风险相关信息。甚至可以利用数据分析和人工智能,对潜在风险进行预测和预警,提高风险应对的时效性。简化版可以通过群、Jira 系统等项目管理工具来达到前期的系统工具落地的程度。
  • 文化层面:通过宣导、洞察、关注、固化、奖励等方式引导大家对于风险的关注,将风险意识融入日常工作中,提高大家对风险的认知,强化风险意识。

以上的组织、流程、系统工具和文化层面的治理都是为了更好的管理风险而存在。在这个过程中,风险模型是抓手,通过不停的识别风险,消除风险,缓和风险,不断提高系统变好的可能,以最终达到治理系统性风险的目标。

风险评估和应对规划是一个反复重复的过程,不停的迭代风险模型,识别出新的风险。

当风险模型构建完成后,我们需要定期逐个风险拉出来 review 一次,我们可以问我们自己如下的一些问题:

  • 与上次回顾相比,风险有更严重吗?可能性有更高吗?
  • 接下来会排专人来解决某些风险吗?是否应该安排?
  • 上次回顾安排的事项落实了,对应的风险情况如何,是否有更新到风险模型中?

问完问题,我们可能需要有一些实际的行动:

  • 评估是否有新的风险;
  • 删除旧的风险:如果风险已经解决了,可以归档;
  • 评估原有风险模型中的每一项风险,评估其严重性和可能性,如果有变动,对其进行更新;
  • 对于不同的优先级的风险区别对待。

以上的回顾操作我们在上面建设的某个管理系统来承载,并且这个管理系统是带有通知等功能,以更好的将风险相关的信息周知出去,如 Jira 系统。

7 小结

系统性风险是一个动态的概念,持续反复的监测和评估至关重要。定期审查系统的运行情况、漏洞和潜在风险,确保及时发现和解决问题,以减少系统性风险。