为一个易犯错误的世界设计

作为控制工程师,我们倾向于认为保持流程运行是我们唯一的工作,但仅仅因为流程在运行并不意味着工厂在运行。在制造操作中使用IT系统时,还需要解决一个更大的问题。这个问题是为IT故障而设计的系统架构。

通过丹尼斯·布兰德,BR&L咨询公司 二四年一月一日

作为控制工程师,我们倾向于认为保持流程运行是我们唯一的工作,但仅仅因为流程在运行并不意味着工厂在运行。在制造操作中使用IT系统时,还需要解决一个更大的问题。这个问题是为IT故障而设计的系统架构。

2003年,MSBlast和LoveBug蠕虫关闭了世界各地的IT系统,对健壮的系统架构的需求变得非常明显。这些事件揭示了两种类型的制造企业;那些继续生产的公司和那些因为蠕虫或IT对蠕虫的反应而不得不关闭的公司。一些公司能够“吊起吊桥”,通过断开其运营系统与业务系统的连接来继续生产。其他公司无法将业务和运营系统分开,不得不停止生产。这些反应说明了紧密耦合系统和松散耦合系统以及全局系统和局部系统之间的差异。

许多IT部门对紧密耦合的全局系统有一种不言而喻的偏见,因为这样的系统通常更容易构建和维护。例如,维护文档管理系统的单个全局实例要比每个站点维护一个实例容易。此外,如果需要连接到其他系统,那么硬编码紧密同步连接要比设计和实现基于标准的异步连接容易得多。

当一切正常时,紧密耦合的全球系统是好的,但当事情出错时,后果可能是灾难性的。系统设计的最佳方法应该是模仿这句著名的谚语:“期待最好的,但做最坏的打算。”

需要绝对可靠系统的公司,如银行和其他金融机构,通常会为关键系统设置单独的服务器、网络和支持组织。这些与支持人力资源、采购和物流的正常业务系统是分开的。当IT系统对维持工厂运营至关重要时,制造公司也需要同样的方法。

这种方法的第一步是确定对操作至关重要的系统。操作部门使用的每一个系统都需要检查。例如,如果公司使用集中式配置管理服务器来控制对PLC代码的所有更改,那么当该系统变得不可用时,维护组可能无法在IT停机期间对PLC代码进行任何紧急维护更改。关键系统的另一个例子可能是授予软件包使用权的全局许可管理器。如果发生IT中断,那么用户可能无法访问显示、报告或配方管理系统,因为他们无法获得使用权许可。

在设计制造系统以抵御IT故障时,一个很好的方法是使用本地系统而不是全局系统。这消除了由于广域网故障而导致的停机,这是MSBlast攻击期间工厂关闭的主要原因。多个本地系统的维护成本更高,但在遇到故障时更加健壮。

另一种设计健壮系统的好方法是使用异步和缓冲的系统接口。这种方法允许暂时失去通信或系统故障,而不会引起级联系统故障。基于消息传递系统的接口在面对网络和应用程序故障时尤其健壮。对于不需要实时同步通信的系统,这些接口应该是默认选择。

幸运的是,并非所有针对IT中断的健壮操作的解决方案都需要面向技术。电话列表和传真可以用来收集关键的决策信息,纸质备份系统可以用来记录关键信息。然而,最糟糕的情况是基于网络基础设施或IT应用程序不会出现故障的假设来设计操作系统。

作者信息
Dennis Brandl是BR&L Consulting的总统,BR&L Consulting是一家专注于制造业IT解决方案的咨询公司,总部位于北卡罗来纳州Carydbrandl@brlconsulting.com