Rice cookers are fascinating machines. I’ve owned one for years, as rice is a significant part of my regular diet, and it completely removes the stress of preparing rice. They also operate on a simple principle that can help us operate cloud infrastructure – the control loop.
Control loops are pretty straightforward things. In its simplest format, you have an input, a sensor, a process variable and a set-point. The purpose of the loop is to measure the process variable via the sensor, applying or removing input until the desired set-point is reached.
Control loops can broadly be split into two categories: open and closed. An open loop has no feedback mechanism – the input does not change depending on the output. In our case, if the set-point was reached but we allowed more input to be applied, then it would be an open loop. Conversely, a closed loop has a feedback mechanism, so the input is controlled depending on the process variable reaching the set-point or not.
You really, really want closed loops. Open loops are a common cause of “runaway” systems. I’ve seen open loops be responsible for a number of failures in complex systems, and sometimes these loops can be quite innocuous. It is also very easy to create open loops.