写点什么

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

  • 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:541804

评论

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

全网最详细XSS跨站脚本攻击,不是过来打死我!!

网络安全学海

程序员 网络安全 信息安全 XSS 漏洞修复

冰泉奶茶香牙膏好不好?奶茶控的宝藏牙膏就是它

Geek_50a546

联想服务斩获两项智能运维大奖 助力企业业务创新与数字化转型

科技大数据

带你认识9种常用卷积神经网络

华为云开发者联盟

神经网络 深度学习 卷积神经网络 图像 卷积

基于 Web 引擎扩展技术的 RTC 混合开发框架实践

白玉兰开源

大前端

JavaScript学习(十一)---RegExp对象

空城机

JavaScript 大前端 6月日更

代码管理工具:Git和SVN

正向成长

git svn

Rust从0到1-自动化测试-测试组织

rust 单元测试 集成测试 自动化测试

深度解读MRS IoTDB时序数据库的整体架构设计与实现

华为云开发者联盟

大数据 架构 时序数据库 FusionInsight MRS MRS IoTDB

使用SpringCloud的openFeign组件踩坑纪实

小江

dubbo Feign spring-cloud

12种mysql常见错误总结 +分析示例

李阿柯

MySQL 面试 常见问题

计算机网络的 89 个核心概念

苹果看辽宁体育

后端 计算机网络 网络

面试官:你知道怎么求素数吗?

华为云开发者联盟

面试 开发者 开发 代码 素数

支持低代码开发和远程真机,DevEco Studio 2.2 Beta1来啦

科技汇

[译] D8 类库脱糖

Antway

6月日更

HarmonyOS学习路之开发篇——公共事件与通知(一)

爱吃土豆丝的打工人

Java HarmonyOS 鸿蒙操作系统

回忆录 | 那些你不能错过的CTF夏令营往届历程,2021精彩继续……

郑州埃文科技

30分钟接入SDK 融云是如何让开发者做到开箱即用的?

融云 RongCloud

掌门教育自研APM实际分享

白玉兰开源

AI论文解读:基于Transformer的多目标跟踪方法TrackFormer

华为云开发者联盟

预测 Transformer 多目标跟踪 TrackFormer 跟踪目标

容器化 | 在 Kubernetes 上部署 RadonDB MySQL 集群

RadonDB

MySQL Kubernetes 容器

为什么switch的case没有break不行

叫我阿柒啊

Switch case break

AI如何赋能软硬件产品创新?百度大脑开放日西安站解密

百度大脑

AI 百度大脑 开放日 EdgeBoard

Linux之nl命令

入门小站

Linux

一步步设计版本控制系统

Java·课代表

git 版本控制 版本管理

数据结构——顺序表

若尘

数据结构 6月日更

EasyRecovery——一款专业的数据恢复软件

淋雨

文件恢复 Easyrecovery破解 免费恢复软件 硬盘数据恢复

可视化搭建的一些思考和实践

白玉兰开源

在线sitemap链接提取工具

入门小站

工具

APP 开发技术如何进行选型 ?

程序员海军

大前端 App 技术选型 APP开发

使用 Scala 宏解决对象转换

GrowingIO技术专栏

scala protobuf 元编程 macro

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