The servers are virtual, just like the money
In old films, the robbers broke into the bank and stole the money from the vault. In new films, the heroes often break into the computer room to hack the mainframe.
Both of these cliches have some foundation in reality. Bank vaults do contain money - and used to contain a lot more. Mainframe computers are still used in many large organisations, and often run some of their most important systems (although ‘the mainframe’ is no longer as important as films such as those in this video would have you believe).
However, there is also a fundamental flaw in both these ideas: these days, the assets they are trying to gain access to (money and computing systems) are mostly virtual. They do not exist as fixed, physical entities in the world any more.
This is probably easiest to understand for money. I grew up in a world where ordinary people used cash and cheques for most day to day transactions. Money was something you touched: something physical changed hands with every payment. Even the occasional credit card transaction involved flimsy paper slips and the machines that went chunk-chunk. Today, especially after two years of long periods of doing everything from home, cash has become a rarity: I pay for almost everything using contactless or mobile payments. If a piece of paper is involved, it is a record of the transaction: it is not money. In the UK, the Bank of England reports that only about 4% of money in circulation exists as physical cash: the rest exists as electronic records in banking systems. This is one of the reasons that it’s so important to understand how computers work in industries such as financial services. The numbers in those computers don’t just represent the money: they are the money.
This might make it seem that, if you are up to no good, breaking into the computer room to hack the mainframe is worhwhile: it sounds like the modern equivalent of tunneling your way into the vault or cracking the safe. The problem is that, just as you won’t find all of the bank’s money in a safe or a vault, you won’t find all of the bank’s data or systems in a single physical machine - even if that machine is the mainframe. For many years, computing has been virtualised.
If you don’t work in technology, the virtualisation of computing may be less intuitive than the virtualisation of money. In our daily lives, most of the machines we interact with are dedicated physical devices: our phone, our laptop, the smart speakers in our homes. We are used to dealing with devices that do one thing, often for just one person. This is not the way computers work in large enterprises. Since the earliest days of computing, technologists have figured out ways to maximise the value of the computing capacity by sharing it between many users and many systems. While there are lots of different techniques to achieve this goal, the result is conceptually similar: when we think of the machines that belong to large enterprises such as banks, we should not think of dedicated machines doing dedicated jobs: instead, we should think of pools of computing resources which are allocated to do particular jobs at a particular time. Furthermore, these resources do not all sit in the same physical location - they are distributed across multiple locations, to reduce the risk that any particular computer room or building suffers a disaster. This trend towards distribution and virtualisation is reaching new heights through the adoption of Cloud computing, where the computing resources are operated by other companies, and may be distributed across many sites or many countries.
The computing resources that are virtualised in this way vary in size and flexibility. For some purposes, companies use very large numbers of relatively cheap machines. The fabled mainframes from the action movies are typically at the more expensive end of the range, and companies will run fewer of them - but they still operate as virtualised resources, and have done for many years.
So, just as we might imagine a bank robber tunneling into the vault to find that all the money is now on the computer rather than in piles of cash, we can imagine that the action heroes break into the computer room to hack the mainframe, only to find that the system they are looking for is in another machine, or in another building or is being run by another company. If they really want to hack into the system, they should do what everyone else does: stay at home and access it over the network.
In more normal everyday life (assuming that your everyday life doesn’t involve robbing banks or breaking into machine rooms), this means that, when we press ‘send’ on our mobile banking app, we should not imagine that our request is being sent to one great big machine sitting in the middle of our bank. Rather, we should imagine that our request is being processed by software running on computing resources which are physically and logically distributed, and which may be dynamically allocated just to service our request.
Understanding the nature of computing and understanding the nature of money both alter our mental model of the world.
The Round Trip Question: Journey Map
This series of articles is driven by a conviction that computing is increasingly important to our lives, but many people don’t understand how computing works, and that those of us working in the industry therefore have a duty to explain. It attempts to answer The Round Trip Question: what happens when you press ‘send’ on the mobile banking app on your phone?
I’m using this section at the bottom to capture the list of questions which arise as I write each article: we’re getting to the end now. If I go wrong, or if you have other questions, please tell me in the comments.
To-do:
Who are all these humans who write code? How do they work?
There will be plenty more questions. For now, though, here’s the very rough picture of what we have covered so far: