Last time I talked about monads — not actually defining them or providing any useful background, but they were discussed. Today we’ll talk about the goopy viscera of the internet: servers.
Server, like “smurf,” means a lot of things. Sometimes a server is an actual computer. Sometimes it is a virtual machine or container (more on these in a bit). Sometimes it’s a process that runs on a computer, VM, or container! Sometimes it is the person who spills coffee on your laptop while you are trying to get some work done at the locally-owned cafe you are checking out because you want to boycott Starbucks, but their wifi doesn’t even work. You’re not going to complain because you don’t want to get them fired but goddamn it that laptop was three grand. Three grand and the M key broke 2 months in! And don’t even get yourself started on the touchbar!
Fortunately all your work wasn’t sitting on that laptop, it was on a server somewhere, in the cloud. That’s a big buzzword nowadays, but all it means is a giant floating platform in the sky. Some are shaped like ducks, or like bears if you look at them upside down, but all of them hold hundreds and sometimes thousands of computers. Your data goes up to it, and rain comes down. That’s the cycle of life.
The computers in the cloud are called servers because the majority of internet traffic is basically people insulting each other, and when one of these computers delivers an insult to your phone or laptop, the young people would say you got served. This is why servers are also sometimes called draggers or shaders.
It gets even more confusing because sometimes by “server,” people don’t mean the actual computer, they mean the program that is running on the computer to listen for a request from your phone and then send the insult down to you.
If that wasn’t enough, even if they’re talking about the thing that runs the program, it might not be a physical machine. It might be a virtual machine (or VM) which is an imaginary computer that a computer makes up and tries to pretend to the outside world is a real, separate computer. You know how sometimes Eddie Murphy plays 10 different fat characters (or EMs)and 1 skinny character? This is what a computer does, it just invents 10 different characters that usually look really similar and gives them wacky names like 10.123.498.2 or something (that’s not real, nobody would really name a computer something with .498 in it, that’s silly). Then it insists everyone calls the characters by the wacky names when they talk to them even though everybody knows one computer is playing all the parts.
Why would someone do this? Well, it’s just really fun to lie to people and screw with their heads. Also I guess different people need different pretend computers with different sizes and operating systems at different times, so why not get a big computer to dream them up on demand instead of going to the store every time some dumb customer changes their damn mind.
On top of that, you have containers which are stripped down VMs without the operating system (Windows, Linux) and maybe other stuff. But how do you run a computer without an operating system? You don’t really, the real computer runs the operating system and all the containers share it. This is called socialism.
Sometimes it’s fun to lie in the other direction too. When you go to a big, popular website like MySpace or Livejournal, you know that tens, possibly hundreds, of other people are going there too. You’re all going to the same server with the same name at the same time. How does one computer handle so many people?
Well, just like one computer can make up multiple names for itself, one name can belong to a bunch of computers, just like a whole crowd of people can all be named Spartacus. When you type in Digg.com and request an insult from that site, the first computer you hit is called a receptionist or sometimes a load balancer. The load balancer looks at a bunch of eager, bright-eyed computers waiting to serve you an insult and it says, “Wade, you’re not busy,” and Wade goes, “No, sir,” and the load balancer says, “Deliver that lady an insult,” and Wade goes, “On it!” When the next person comes to Digg.com, Wade is still busy, because he is a worthless sluggard. So the load balancer says, “Hey Renee, got a job for you,” and Renee takes care of it.
All computers have their own names, like Wade, or Renee, or us-east1-j234-xjfds but when you come to the website, they all introduce themselves as Digg.com and act as identical as possible (but if you get Wade, you will be like, “anyone notice the site is really slow today,” and your friends will be like “shut up it’s fine you complain about everything”).
So just who is running all these servers? Does everyone put together their own cloud and launch it into the stratosphere? No, they usually pay a big company to take care of the servers — feeding and bathing and installing the software and giving it a comfy place in a nice big farm in the Midwest. This company is usually Amazon. This is why when Amazon screws up sometimes the whole internet seems to go down. It’s pretty great to have the whole world’s internet depend on one really ruthless company.
Anyway, if you didn’t learn anything today and would like to learn less about computers, check out Part 1 of this series on monads! Hope to have even less content for you coming up.