Cloud computing has been a hot buzzword lately. What actually is it, and what does it have to do with us? What’s this “VPS” thing people keep mentioning, and how does it relate to a VPN? Today let’s go through these basic concepts one by one.
The goal of this article is to explain these concepts as simply as possible — hopefully after reading it you’ll have a basic understanding of them, and know what you’re doing when you go set things up yourself later. Let’s start with what cloud computing actually is, then cover the question you probably care about most — what can it do for you — and finish with a look at a few cloud computing platforms.
1. Amazon and Cloud Computing
What on earth is cloud computing? Computing on a cloud? And what’s a cloud, anyway?
There’s a company in the US called Amazon (same name as the river in South America).
This company is basically the founding father of e-commerce — it started out selling books online. And if you’re selling things online, you obviously need a lot of computers to run the website and everything else.
The computers we normally deal with look like this. What you’re actually looking at is a website running on computers like these — just with a bigger hard drive, more memory, and a stronger CPU than yours, and, well, a much higher price tag too. And it’s not just one server, either — it’s a whole cluster made up of many servers. A cluster just means a bunch of servers wired together over a network so their combined performance stacks up. And naturally, that costs a fair amount of money.
I mean, they’re running a big business — big enough that their CEO became the richest person in the world.
How many servers you need obviously depends on how big the site is, or really, how many customers are visiting it. Generally, more customers means more servers; fewer customers means fewer — after all, electricity bills add up. And with a cluster, you also have to think about stability (you need redundancy so things don’t all go down at once) and scalability (meaning if you suddenly get a flood of users, you can “quickly” solve it by throwing more servers at the problem). Even though machines that aren’t turned on don’t cost electricity, the network bill is usually a flat monthly fee, and staff salaries are paid monthly too — in short, there’s a fixed baseline cost either way.
So a clever capitalist naturally starts thinking: I’ve got all these idle machines sitting around. Isn’t it a waste to let all that shiny hardware just sit there doing nothing? What’s a good way to put it to use?
The answer, obviously, is renting it out. Poor folks drive for rideshare apps or rent out a second property — if poor folks can think of that, rich folks definitely can too.
So basically: the physical machines (those black, heavy, ridiculously expensive boxes) sit at my place. I’ve got a system to manage them. You all can rent these machines to do your own work.
Why can you rent my machine to do your work? Because remote-connection technology exists. Simply put, you can think of it as: over the internet, you can hook up a keyboard and mouse and a display to Amazon’s data center and operate part of a server sitting inside it.
Since computers support remote connections, they can also be sold remotely.
So what’s a remote connection? Your own computer is obviously all in one lump — the main unit and the display are right there together. But you’ve definitely heard of something called remote desktop.
Through your laptop or desktop computer, you can view files on another desktop computer and operate that other desktop computer.
Here’s a more elaborate example: in movies and TV shows, you often see computer wizards staring at a pitch-black screen, typing furiously on the keyboard — chances are, they’re operating another computer. It’s really not as complicated as it looks, and I’ll explain a bit below.
Generally, people use a tool called SSH to connect to a remote server.
And that’s really convenient — as long as I have network access to your data center, I can get your server to work for me (as long as I’m paying for it, of course). Pretty sweet, right? It’s a bit like Taobao — anywhere in the world, as long as there’s internet, you can shop through the app. Kind of like a cloud floating in the sky — it drifts up there, and I can still see it from wherever I am.
That’s where the term “cloud computing” comes from.
Amazon was the first to do this — their cloud computing service is called AWS, Amazon Web Services. Cloud computing originally started out just for running web pages.
And with this much stuff, obviously you’re not going to put it all on a single computer — if that one computer goes down, the whole business is toast. So, clever as you are, you’ve probably already thought: you’d need a lot of computers to store all this. Which raises a question: exactly how many computers do you need to prepare for this?
Selling things also follows seasonal patterns — you sell air conditioners in summer and down jackets in winter, but selling air conditioners and selling down jackets use up different amounts of compute resources. Or say there’s a big promotion at some point and you’re suddenly selling a lot more — the resources needed are different too.
Business people, naturally, want to spend the least money while making the most money. If you were the boss, you’d probably think: can I buy exactly the amount of compute I actually need?
You still have to buy roughly that much either way — one simple approach is to only turn machines on when you need them, saving on electricity and hardware depreciation. Another approach: keep the machines running, but when you’re not using them yourself, rent them out to someone else. Sound a bit like the old internet cafés?
And that’s cloud computing: you have a batch of computers, you divide them up into some minimum unit, and rent those out to other people. It’s like opening a giant internet café where anyone can come pay to get online.
That’s a VPS — virtual private system, or really, virtual private server. Simply put, it’s a remote computer that you can perform operations on.
What kind of operations can you do on it?
- Store some files
- Do some computation
- For example, if you have a program you need to run, you can run it on the remote computer.
Put simply: a big company splits a supercomputer into many pieces, and rents each piece out to you.
Why rent instead of building your own? Because renting means far fewer maintenance headaches for you.
For us, renting someone else’s server has real benefits: you don’t have to deal with complicated computer configuration yourself, you get very high reliability, and it works right out of the box.
2. What Is Linux
This brings us to operating systems. You’ve probably heard of Microsoft, and of Bill Gates, once the richest person in the world. Simply put, a lump of computer hardware needs an environment to actually run — that’s the operating system. Common operating systems include Windows, Linux, and macOS (the OS that Apple’s computers run).
Generally, if you’re using a VPS, you’ll be using Linux.
You’ve heard that only computer wizards use Linux, so surely you could never learn it.
Actually, you need to shake off the mystique around the command line. Ordinary people don’t like things that are overly complicated, and programmers don’t either — programmers are constantly finding ways to make complicated things simpler.
That said, the whole process needs some kind of bootstrap to get going — kind of like a car engine, which needs a starter motor to give it that initial push before it can gradually start turning on its own.
Using Linux works the same way — you need some initial spark to get going, and then you gradually solve problems as you run into them along the way.
I know most people who look into Linux ultimately just want to make Linux work for them, and aren’t necessarily all that interested in the underlying theory.
But this process still requires starting from some black box. Only once you actually get it running will you find out what you’re missing.
3. Common Cloud Computing Platforms
- Vultr
- Kamatera
- Oracle Cloud
- Azure
- Google Cloud Platform
- AWS
- Alibaba Cloud
- Tencent Cloud
- Baidu Cloud
- China Telecom Cloud
3.1 Vultr
This is the platform I’d recommend most — its main selling points are being cheap and pay-as-you-go. It also gives you an IPv4 address.
3.2 Oracle Cloud
This one’s even cheaper — free, in fact.
I’ve got two machines running in Japan on it, humming along the whole time.
3.3 Alibaba Cloud
The dominant player domestically. That said, domestic cloud computing has a few issues:
- Requires all sorts of real-name verification.
- Way too much monitoring on the cloud service.
- Network connectivity is spotty, especially when trying to install certain packages — it’s a real hassle.
- Upload bandwidth is particularly annoying.
That said, there are also those cheap little machines for around 99 a year. New users can grab the promotional deal once under their own identity, then do it again under a relative’s or friend’s identity, and that basically works too.
The upside is that domestic access speed is still decent, so it’s mainly useful as a jump box, relaying some of your own services.
Of course, another use case is pushing a video stream for live broadcasting.
graph TD
A-->B
4. Summary
This article briefly introduced the concepts around cloud computing, covered basic use of Linux, and shared a few cloud computing platforms the author recommends. The goal is to give everyone a basic understanding of cloud computing, so you can get to your own goals faster when you actually use it later on.