Most of what I work on these days revolves around cloud computing - setting up new computer backed artificially intelligent services in the magical internet cloud to support new apps and web sites and bots, yes ok I’ll say it, chat bots. These days, as fancy and cyberpunk as it may sound, this mostly involves copy-pasting config files into web browser forms. Your infrastructure is code dude. These days it is a relatively normal practice to create an entirely new copy of your cloud infrastructure every time you deploy a new version of your app. Cause it’s like, config files, configuring the cloud - a giant homogeneous compute system where you can create internet computers at the push of a button. This is totally mind boggling to me.
Make America 1997 Again
At the start of my career in building internets, I was one of the little kids at the party. Like, I am 4 years younger than the first wave of internet pioneers who, you know, won Cool Site of the Year in 1997, and they were 23 and I was 19 and they still got me into the party and snuck me drinks.
But I was there, at the start of it.
I wore eyeliner.
But now, I am one of the old gray beards at my job and many of the people around me got their start on their internet careers in the last 5 or 10 years when things like social media and cloud computing were already a thing invented by people… cough cough… like me, and they never had to build internet web apps (or ‘bapps, as we used to call them) with their bare hands.
So I’ve found myself telling this old yarn to my fresh and talented young coworkers, and now I will tell it to you.
When I was young, we built the internet by hand. The kind of thing we do now with an API call or a form submit, it used to take three weeks of labor and multidisciplinary technical expertise to achieve. For example, let’s say your 1997-era company needs a new web server to run a web site. Here’s how it would go down.
Order your components from various vendors, perhaps making purchases in person at local computer shops. Buy RAM, a hard drive, CD ROM drive, 2 ethernet boards, a rack mountable case, a power supply, mother board, etc.
Once all of the components are in hand, put them together into a functioning computer using a screwdriver. Don’t forget to set all the IRQ jumpers.
Use the CD ROM drive to install “Slackware” Linux or OpenBSD from a series of CDs your friend gave you using a 13 inch CRT monitor on the floor of your apartment.
Login as root. Set the root password. Feel cool.
Your company hosts there internet connected computers in a “colocation” facility 2 hours away. Load the new server into your car. Don’t forget your physical map book, the data center in Virginia is a long way away.
Shit, did you make an ethernet cable? How about a crossover ethernet cable? Good thing you brought your spool of cable, a ziplock bag full of ethernet plugs, and a cable crimper. Make 3 ethernet cables in the Denny’s parking lot.
Arrive at the data center. Use a special key to unlock a 8 foot tall, 4 foot wide rack filled with humming computers and jammed to the brim with unorganized ethernet cables plugged in to seemingly random places.
Marvel at the fact that renting this rack costs your company $20,000 a month PLUS bandwidth usage charges.
Find one of the available rolling carts in the data center that has a keyboard and monitor mounted on it. No mouse needed. Roll it over to your company’s rack.
Shit, did you forget your screwdriver? Go back down to your 1994 Hyundai Accent and get your screwdriver.
Slide that sweet new compute power into an open slot on the rack and screw that baby in with 4 giant flathead screws.
Shit, did you forget to plug in the ethernet cable? Unscrew all those screws.
Plug in one end of your hand crimped ethernet cables to the back of the machine and the other end into the blinking switch at the top of the rack.
Plug the power cable in, then plug in the cart’s keyboard and monitor. POWER UP.
Log directly into the server as root.
Use cryptic Linux commands to bind the computer’s ethernet card to an IP address, and set up options like the router and subnet mask.
Reboot the computer.
Using another one of your ethernet cables, plug your 15 pound laptop into the switch. Ping the new server’s IP address. Curse the universe when it fails.
Unplug your 15 pound laptop from the switch and now and plug it into the second ethernet card in the computer. Be careful to remember to use the crossover ethernet cable instead of the normal ethernet cable because of course you know that when communicating directly to a host without a switch in between you need to swap pairs 2 and 3 of the ethernet wires when crimping them. Attempt to ping the server via its internal network IP address - something in the 192.168.0.* range of course.
Ah! Duh, you forgot to amend the startup configuration so that the primary ethernet cable would bind to the correct IP address after reboot. DUH.
Reboot the computer. Successfully ping it from the network.
Lock the rack and go home.
Arrive home and dial in to the internet. Ping your new computer. It responds!
Telnet into your computer and begin the process of downloading the source code of the web server application you plan to use to serve your company’s static website. After that is done — it will take a while, even from the data center because the computer hosting that source code is also on a slow connection — use the C compiler installed as part of the operating system to compile the web server. Watch as compiler output crawls by for 3 hours over a 5600 baud modem connection.
It’s ok, you’ve got a Max Headroom bootleg on VHS to watch.
Time to find your copy of O’Reilly Books “Apache Web server Config Files in a Nutshell”
After Apache is up and running and configured to serve a “hello world” HTML page you wrote in vim, reboot the server.
Wait 5 minutes for the server to reboot and connect to the internet.
Curse the world when it doesn’t.
This server needs to be ready for work tomorrow or else your crazy alcoholic boss who thinks Russians are spying on him from satellites will be super pissed, so… get back in the car and drive to Virginia.
Arrive at the data center after midnight. Discover the parking lot is full of guys in trench coats smoking clove cigarettes.
Unlock your company’s rack and with an immensely satisfying CLACK, turn off the power switch of your new server.
Say fuck it, go bum a clove cigarette off a guy in the parking lot.
Come back in, CLACK, turn the server back on.
Listen to the fan start back up. Wait until the ethernet status light starts blinking green.
Telnet into the machine from your 15 pound laptop and realize that a syntax error in the Apache config file caused the machine to drop off the network. Fix the syntax error. Reboot the machine. Load the website.
You did it! Your company’s new web server is ready to receive its first FTP upload of hand crafted HTML files. That you will also build, because you are the WEB MASTER.
Here I am, in 1997.
For all of my peeps out there who ever hand edited a sendmail config file or wrote your own DNS zone file. I SEE YOU.
Thank you for reading. More soon.