写点什么

自动化也要人性化:让复杂系统更加可预测和可靠

  • 2014-11-05
  • 本文字数:1103 字

    阅读完需:约 4 分钟

软件开发者 Brian Troutwine DevOps Days 上分享了有关复杂系统和实时系统的话题,内容涉及到人与机器的交互。Brian 举例说明了哪些是正确的自动化,哪些是不正确的自动化。

实时系统并不仅仅是快速运行的系统,而且是有时间期限的系统。实时系统可分为如下几类:

  • 软类型(soft),即过期后收益递减
  • 固类型(firm),即可容忍偶尔的过期,只是会影响整体系统的服务质量(QoS)
  • 硬类型(hard),即任何过期都会导致整个系统不可用

复杂系统则通常带有如下特征:

  • 非线性反馈
  • 与外部系统耦合
  • 难以建模,难以理解

Brian 用两个例子介绍了关于人类跟机器关系的两种解读:阿波罗 13 号事件中的人类与机器协作,以及切尔诺贝利核事故中的人类与机器的对抗。

在宇宙飞船的项目中,NASA 总是不确定要如何把人类安插到系统当中。有些实验构建了完全自动化的飞船,软件的设计思路完全来自于工程师。宇航员则不觉得这是个好主意,因为他们都是经验丰富的飞行员,在他们看来,宇宙飞船也无非就是更高级的飞机而已,应该由人类来操作,计算机作为辅助系统,人和机器之间达到一种平衡的状态。在阿波罗 13 号事件当中,正是经验丰富的宇航员找到了问题的关键,改造系统以适应他们的需求,才最终解救了自己。

工具在上述事件中的作用是:

  • 正确的自动化减少了重复性劳动
  • 正确的自动化减少了错误
  • 正确的自动化解放人类

而在第二个例子当中,切尔诺贝利核电站的系统被设计成了正反馈系统,即一旦有错误发生,错误会叠加反馈给系统自身,最终造成灾难。在一次后备系统的测试过程中,反应堆进入了容易发生错误的临界状态。由于系统设计和管理上的缺陷,警告信息被忽略,而操作员则进行了误操作;另一方面,反应堆的安全系统当时处于关闭状态。在这种人类不受信任的环境当中,反应堆最终出了故障。这是一个系统处于主导地位,最终导致人类死亡、流离失所。

  • 错误的自动化把人类机器化了。系统不给人类提供信息。
  • 错误的自动化提供错误的指引,提供错误的信息。
  • 错误的自动化使人陷入困境。

每个系统都潜藏着毁灭自己的种子。“正常的意外”总是不可避免,因此故障必然会发生。每个系统的设计都要将故障纳入考虑,否则系统故障将会以想象不到的方式发生。

在设计一个复杂系统的时候,需要认识到人类的局限性并以自动化补充这部分局限性。这个工作不能自己闷头做,需要跟人沟通,集思广益:

  • 用资源交换你需要的东西。
  • 接受故障,从故障中学习。
  • 从他人的事故中学习。
  • 那些一旦故障就造成大损失的组件,可能不值得去做。
  • 理解你构建的东西。

本次分享来自 DevOps Days 第二天的内容第一天的内容可在InfoQ 英文站上查看。

查看英文原文: Automation with humans in mind: making complex systems predictable, reliable and humane

2014-11-05 07:541745

评论

发布
暂无评论
发现更多内容

大数据培训学习软件工程师机构靠谱吗

小谷哥

这次6张图带你彻底搞懂RocketMQ是怎么保存偏移量的?

程序员小毕

Java 程序员 面试 RocketMQ 消息中间件

迄今为止把Mybatis讲解的最详细的PDF,图文并茂,通俗易懂

冉然学Java

Java 编程 程序员 mybatis 构架

博云入选国家级专精特新「小巨人」名单!

BoCloud博云

云计算 容器 “小巨人”企业

明源云参加2022数字化转型发展高峰论坛并获多项殊荣

科技热闻

开源公开课丨ChunJun数据传输模块介绍

袋鼠云数栈

史上最全的Java并发系列之Java并发容器和框架

自然

多线程 并发 8月月更

史上最全的Java并发系列之并发编程的挑战

自然

多线程 并发 8月月更

2022年中国足球赛事营销洞察

易观分析

营销 报告 足球

【云原生】Docker 进阶 -- 数据卷使用与实战练习

Bug终结者

Docker 阿里云 云原生 8月月更

破解双中台困局:万家数科 x StarRocks 数字化技术实践

StarRocks

大数据

过等保费用包含哪些?大概多少钱?

行云管家

等保 等级保护 过等保

数据说|数字经济,山东16市谁最“炫”?排行榜来了

易观分析

数字经济 山东

面试的朋友听我说,18个MyBatis高频知识及学习笔记,双手奉上

冉然学Java

Java 源码 分布式 mybatis 构架

需求子任务的数据管理提效实践

转转技术团队

开发工具 测试赋能

Go-Excelize API源码阅读(十)—— SetActiveSheet(index int)

Regan Yue

Go 开源 源码阅读 8月日更 8月月更

字节跳动基于ClickHouse优化实践之Upsert

字节跳动数据平台

OLAP Clickhouse 数据库优化 数据库开发 数据库·

Redis API——List功能实践与性能测试【Go版】

FunTester

得物黑科技|AR测量脚型,解决尺码烦恼

得物技术

AR

终于!极狐GitLab 支持 ARM 啦!

极狐GitLab

DevOps 敏捷开发 arm 极狐GitLab 嵌入式硬件

表达式转换-中缀转后缀表达式后计算-数据结构与算法

清风莫追

算法与数据结构 8月月更

开源一夏 | TypeScript对于Duck类型和模块命名空间的应用实战

恒山其若陋兮

开源 8月月更

华能 + Alluxio | 数字化浪潮下跨地域数据联邦访问与分析

Alluxio

数字化 国产化 东数西算 大数据 开源 数据编排

大数据程序员参加培训好还是自学好

小谷哥

旺链科技成为湖南省区块链协会理事单位

旺链科技

区块链 区块链技术 产业区块链

秒云获得阿里云首批产品生态集成认证,携手共建云原生智能运维生态服务

MIAOYUN

智能运维 智能运维AIOps 阿里云产品生态集成认证

影响全彩LED显示屏质量的几个因素

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

史上最全的Java并发系列之Java并发机制的底层实现原理

自然

多线程 并发 8月月更

开源图编辑库 NebulaGraph VEditor 的设计思路分享

NebulaGraph

数据库 图数据库 知识图谱 NebulaGraph

从这 5 个 DevOps “恐怖故事”,我们能学到什么?

飞算JavaAI开发助手

应用实例分析——图像检索

Geek_e369a5

图像搜索

自动化也要人性化:让复杂系统更加可预测和可靠_DevOps & 平台工程_Carlos Sanchez_InfoQ精选文章