写点什么

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

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

评论

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

读写分离这个坑,你应该踩过吧?

楼下小黑哥

MySQL 主从同步 读写分离

告别“效率内卷化”,华为用一年时间让职场人支棱起来

脑极体

国家计算机网络与信息安全管理中心官员:数字货币的风险仍需关注

CECBC

信息安全

甲方日常 64

句子

工作 随笔杂谈 日常

Redis 子进程开销监控和优化方式

李尚智

Redis开发与运维

「生产事故」MongoDB复合索引引发的灾难

Kerwin

数据库 mongodb

警察营救安徽望江县17岁女生跳河自尽过程中,现场看热闹的旁观者们在做什么?

wbliu85

排查指南 | 当 mPaaS 小程序提示“应用更新错误(1001)”时

蚂蚁集团移动开发平台 mPaaS

小程序 问题排查 mPaaS

基于有限状态机与消息队列的三方支付系统补单实践

Java架构师迁哥

百篇已过,又是一个新篇章,谈谈感受吧

良知犹存

代码人生

S型曲线不止关乎身材?|技术人应知的创新思维模型(2)

Alan

创新 思维模型

面试被问线程安全怎么保障,我的回答让面试官眼前一亮

996小迁

Java 架构 面试 多线程

架构词典:语言

lidaobing

架构 语言

报销发票抵扣工资的CTO,该不该? | 法庭上的CTO(5)

赵新龙

CTO 法庭上的CTO

Redis 持久化方式-RDB

李尚智

redis redis持久化

第六周-学习总结

Mr_No爱学习

第十一周作业

solike

数字经济跨越五个融合发展阶段,区块链正成为基础支撑结构

CECBC

数字经济

《Python深度学习》第二版重磅来袭——(Keras之父亲自编写)

计算机与AI

Windows下MySQL无法启动万能解决方案

MySQL从删库到跑路

MySQL

Newbe.ObjectVisitor 0.4.4 发布,模型验证器上线

newbe36524

.net core ASP.NET Core dotnet

Bitmap为什么那么快?

Man

redis 中间件

话题讨论 | 作为地地道道的程序员半年内都没摸过代码是什么样的体验?

xcbeyond

话题讨论

谷燕西:不需要银行的银行业务

CECBC

移动互联网

5种分布式事务方案与阿里的 Seata 中间件

Bruce Duan

分布式事务 seata

2. Spring早期类型转换,基于PropertyEditor实现

YourBatman

Spring Framework 类型转换 PropertyEditor

算法训练营课程纲要

陈皓07

生产环境压测建设历程之三 淘宝网2009年的痛

数列科技杨德华

第六周-作业1

Mr_No爱学习

拆解增长黑客之实战(二):留存与变现

懒杨杨

读书 增长 产品运营

Spock单元测试框架实战指南四 - 异常测试

Java老k

Java 单元测试 spock

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