In the beginning God created the heavens and the earth. And God Said “let there be punch cards”.
The writings of the greatest software architectures alive (Uncle Bob, Martin Fowler, Gregor Hohpe and others) are also history books. That’s what I love about them. History makes you really appreciate and to better understand where and why you are here.
It’s funny to read how “the old folks” started their career as card punchers for major enterprises that no longer exist. Back then, coding was hard. Really hard. You coded data directly in bits. A punch card of the physical size of a 64GB SSD contained only 64 bytes of information. The old folks describe huge server rooms that had the data processing power less than Silo’s micro controller (MCU). It used to cost a fortune, in the hundreds of thousands of US dollars. Only the best research institutes could afford it.
You know what DevOps was back then? Literally a punch card gets stuck in a reader. Debugging was finding actual animal insects inside the servers and on the punch cards. Data corruption was a tear. The C programming language was yet to be invented, as there was still no need for “easy development” because there was barely any development to be made. Coding a processor was in assembly. There were no Integers, no Doubles and not even structs. From 2020, that sounds insane.
It really made me appreciate how far computing has gone since then. Now that I’m older than younger, I wish to do the same to you, to better understand what cloud computing actually is and through it, what cloud infrastructure today is.
My history with computers began in 2002, as a soldier in the Israeli Army. There were still no laptops, only large and heavy computers, what we call today bare metals. I’m not kidding but part of my “job description” was to carry them around. It weighed about 12kg and I carried it once a week for about 1 km, from the base’s offices to it’s auditorium. The Israeli Army is a funny place to serve for some people. If you haven’t seen the movie Zero Motivation, I highly recommend it. You’ll laugh and cry hard.
Seven years later (2009), I was about 26 years old and I was a student for Industrial Engineering at the Technion Israel Institute of Technology. One course I took was one of a deep dive into “distributed computer systems”. It was one of three courses, among many other important ones, that got me to where I am today (2020) in my career. Unemployed due to COVID-19.
It’s a funny thing to look back and realise that while studying the theory and practice behind resilient software systems I was running around my home city of Haifa setting up personal computers for the elderly and servers for several local business establishments. Actual bare metals. I remember businesses paying thousands of dollars to purchase a “simple” single server. Every now and then when there was something wrong with it, they gave my boss a call and it would take us about 48 hours to respond, which was far faster than anyone else.
Sometimes it was just a simple misconfiguration of the operating system. Sometimes it was a dead hard drive, in need of replacement. That would mean that it’s content now needs to be recovered. The incident would cause the customer to buy backup equipment, an external hard drive and a dedicated backup program. That was an additional spend of hundreds of dollars. But it was thousands of “business dollars” lost due to the server being down for a few days. Clients not placing orders, or employees can work with Excel. Although it was not our fault, it was still or reputation getting hit. Customers always blame the delivery boy.
Enough with the anecdotas. My professional career really started in 2011. I got my first job at a large Israeli IT company which outsourced Enterprise Search software and experts. Yes indeed I had zero experience yet I was an expert. I used to work with some large governmental and private enterprises, mostly insurance and health related. These enterprises had their own IT department and their own server rooms. Cloud was barely a concept.
A software project, which I lead several, started as follows:
- I sent a request to their IT department for two servers.
- Three months afterwards the servers, the actual bare metals, had arrived and I got one.
- 2-3 weeks later it was set up by IT.
- A few days of my work to replace the OS as they’ve installed one that doesn’t work with this specific search engine.
If I needed an SQL database, which I did, I had to wait for another month for the DBA to get me one. I had a project that every 2 days had halted for 2-6 weeks. I’ve worked on it for two and a half years just to finish the PoC. It never made it to production, which seems like a recurring theme in my career.
And then there was Amazon.