As we start our journey to the Cloud, it would make sense to start with the lowest layer of computing, which is the computer hardware. Any software is useless without hardware. The cloud infrastructure is based on an enormous amount of physical computers, also known as servers or simply machines. Although you don’t own them and you can’t see them, they are somewhere out there on the ground (or maybe below the ground or even underwater), consuming a lot of energy and running your software. This is true even if you use so-called “serverless” services.
A software can only run on some sort of a physical computer or computing device. This could be a server, a desktop computer, a laptop computer, a mobile phone, a wearable device (e.g., a smart watch) or any kind of IoT (Internet of Things) device. When developing embedded software, device drivers or any kind of low-level programming, the developer should have very good knowledge about the underlying hardware and how it works. But when it comes to high-level programming, such that we use for developing cloud-based systems, we can refer to the hardware in a simplified manner. Without getting into too much details, here is an overview of the basic computer architecture, describing the fundamental concepts and terms that every cloud architect should be familiar with.