Hardware Basics#
Understanding what hardware we use, whether it's directly or indirectly via a Cloud provider, is important because ultimately everything we're doing in this field involves getting computer hardware to do something for us. The CPU is literally processing numbers, the hard disks and solid state drives are storing our data in a persistent, long term manner, and random access memory is allowing software (the stuff that runs on the CPU) to store information it can retrieve later.
Knowing what each component does only requires a very high level understanding. Don't try and become a CPU architect, just know what a CPU does. You don't need to build your own hard disk, just understand the different types, speeds, etc.
Ultimately this knowledge will help you later on when you're provisioning resources in remote, public Cloud providers like AWS, becsuse you'll need to know how many "CPU cores" you need, how much RAM to provision, and how big storage volumes need to be and what type you need.
It sounds like a lot, but it's all very logical.
Basic concepts#
The hardware basics I recommend you get a good understanding of includes:
- The Central Processing Unit, or CPU
- Random-access Memory, or RAM
- Hard Disk Drive, or HDD
- Solid State Drive, or SSD
- Network Interface Controller, or NIC
- Graphics Processing Unit, or GPU
- Networking switches and routers
Those are the components that make up the physical and the virtual infrastructure you will encounter in your career. For example when provisioning a virtual machine in AWS (EC2) you'll need to specify things like the CPU core count that you want, the RAM allocation, the disk space you'll need (and the type), and more. If you don't understand what these things mean you can't build out infrastructure, even in the public Cloud.
There is networking hardware to understand too. There are two pieces of networking hardware I recommend you understand well: the switch and the router. You don't need a CCNA, you just need to understand the difference between a switch and a router.
Computer Hardware#
Your aim here is not to become a CPU architect but to simply understand what a CPU does and how you measure its performance, what RAM is used for and why it's fast, etc. Review each resource and just have a think about how you personally use each of these pieces of hardware day to day.
Every computer on the planet has most of these components installed. You're using some combination of the above resources right now to reach this book, even on a mobile phone. That's why it's important you understand these concepts.
Another important thing to understand with regards to CPUs is the various CPU architectures, namely x86
and ARM
. This is primarily important because when a CPU's architecture is one or the other you may be limited to what operating systems and software you can install and use. This is becoming less true as time passes but at the time of writing it's true that a change in CPU architecture requires the software to changes as well.
A good example of CPU architecture and changes to such architecture include Apple's introduction of their M1 (ARM
) processors in 2021/2022 MacBook Pros - a lot of common development tools didn't work and enough time had to pass whilst the developers made changes to make the software work with the new Apple M1 instruction set.
Networking Hardware#
Networking hardware is also mostly transparent to end users. In your own home you're using what can be called a "residential gateway" which has several pieces of networking hardware in it: a switch, a router, a bridge and a WiFi access point. Perhaps even more (or less). The point is networking is important stuff and you're going to need to learn it well.
That being said on the hardware side I would recommend getting familiar with only a few concepts: the switch and the router.
Once you're comfortable with these two concepts you'll better understand the content in the networking chapter of this topic.