The cloud is just someone elseā€™s computerā€™, runs the joke. But if youā€™re saying that, the joke is on you, because it means you donā€™t understand what the cloud actually is.

So many people misuse the word ā€˜cloudā€™ that you can be forgiven for thinking ā€˜in the cloudā€™ means ā€˜over an internet connectionā€™.

It doesnā€™t. ā€˜The cloudā€™ means something very specific.

The simplest definition of cloud is a data centre thatā€™s full of identical hardware that no-one ever touches except to unpack it on day one and throw it away when it fails; in between, every deployment, update, investigation, and management process is automated.

The unit of compute and storage in cloud isnā€™t a server or even a cluster; itā€™s a stamp, because you ā€˜stampā€™ them out as identical units.

With Azure, for example, the smallest stamp size is 800 to a 1,000 of what you can call servers (20 of which are running the management software). Some cloud infrastructures distribute storage throughout the same boxes that have the CPUs in, while some cluster it in storage array. Still others put a battery in every box instead of having a UPS.

You donā€™t look at the firmware level of the RAID card; you deploy the same setup to 100,000 servers and if one of them doesnā€™t work, you throw it away (eventually, anyway ā€“ a failed motherboard or hard drive could sit in the stamp for a month or even a year with the management system routing around it).

You do that with commodity hardware rather than fault-tolerant redundant hardware to make it cheap enough to do it at scale, and because doing it at scale means you donā€™t need expensive hardware to achieve redundancy, you can do it in software.

Software-defined would be a better term than cloud for much of this: software-defined networking, software-defined storage, software-defined computing.

Cloud comes from network diagrams of old where architects were showing an abstraction, either a distant data centre or the fact that you didnā€™t have to care what the network protocol was going to be. Itā€™s used to refer both to the infrastructure of identical systems managed at scale by automation, and the ā€˜someone else does the setup and managementā€™ services that run on that infrastructure, where ā€˜someoneā€™ is an automated system as well.

What about the few people that do work on that cloud service doing anything other than writing software and automating systems? Theyā€™ve been through much more careful security screening than the people working with the computers you own, unless youā€™re in the habit of taking fingerprints at job interviews and running background checks.

If youā€™re using a PaaS service like storage, or an ā€˜as a serviceā€™ option that gives you software like Hadoop or Jenkins, or a data warehouse that would be complex and time-consuming to set up at the click of a checkbox, tell me how much you care about not having the computer running it be something you own and have to manage.

The ā€˜someone elseā€™s computerā€™ crack can mean a few things. It can mean that someone distrusts the cloud because they canā€™t fondle the switches and caress the levers and change the settings themselves, and they donā€™t know enough about hyperscale cloud to understand why thatā€™s a good thing. It can mean that someone does know very well what cloud means but theyā€™re fed up of dealing with people who donā€™t understand that, and want to remind them the cloud is made up of computers, that the laws of physics still apply (maybe you need to care about network latency and whether your storage and your computing is in the same place) and that if you need to care about regulation that you need to pick a cloud service that meets those regulations.

Itā€™s just that saying ā€˜itā€™s full of serversā€™ doesnā€™t do anything to educate people about how to get the most out of cloud by designing apps and workloads to use cloud patterns and take advantage of cloud strengths. In fact if you think of cloud as ā€˜just serversā€™, youā€™re far more likely not to get the benefits of cloud.

The VM image you run ā€˜in the cloudā€™ might be special and unique, if youā€™re using IaaS as a cheap way of doing virtualisation ā€“ but donā€™t mistake that for using a cloud service. The cloud service is the IaaS platform that rolls out your image whenever you need it, migrates it to another server if thereā€™s a problem, turns it back off when you donā€™t need it, and counts up what resources you used and are going to get charged for.

If whatever is running on your VM has a single point of failure, or a flaw like a log file that fills up every day, putting it on a cloud IaaS server wonā€™t fix that any more than hosting it in a third-party data centre with good old-fashioned virtualisation would. But you can use the time and money you save not administering the physical server it used to run on to fix whatever the real problem is.

So all of this means the cloud is ā€˜a hyperscale, automated computer farm run by someone whoā€™s better at automation and security than you, and can buy electricity and servers and network connectivity more cheaply than you because they buy so much of it and if you want all the benefits of cloud you have to design things to achieve thatā€™. Not that catchy, so I can see why it hasnā€™t taken off as a tag line.

Itā€™s not just cloud that gets this treatment: the latest ā€˜I donā€™t understand this new technologyā€™ confusion is about ā€˜serverlessā€™ computing. How can it be serverless, people joke, when thereā€™s obviously a server running it?

Serverless computing is like driverless cars; thereā€™s still a driver, just not one you can see. You donā€™t need to ask if the driver of the driverless car is hungry or tired or drunk or needs to stop for a bathroom break. If we ever let driverless cars drive on our roads it will be because we donā€™t have to care about the driver, just the fact that they will take us where we want to do. Serverless computing ā€“ where you write and run code on a cloud service without caring about the hardware or operating system of the computer it runs on ā€“ might not be the term for this, but itā€™s a good enough description.

You donā€™t care about the server your AWS Lambda or Azure Functions code runs on; you donā€™t care if itā€™s taking a five minute break between being a website or running a Monte Carlo simulation or if itā€™s a brand new server. You donā€™t care if itā€™s running RedHat or Ubuntu or Windows Server, or how much RAM it has or when it was last patched.

You just care that Amazon and Azure and the other serverless providers are so efficient at deploying images to the servers in their cloud and monitoring them to make sure theyā€™re healthy, that itā€™s not worth charging you for the work of making the image available ā€“ just the computing you do on it, using an interface that abstracts away everything about the server that you donā€™t need.

This is software-defined computing thatā€™s a step beyond virtualisation; the CPU that runs the computation is a fungible resource thatā€™s allocated by software, at whatever level of abstraction you want. If you want a server to run your VM, you can have that. If you want to run PHP, Node or .NET code without caring where or how it runs, you can do that. If you want to stream sensor data from IoT devices or index a website or do any other arbitrary computation, you donā€™t need a server to do that ā€“ you just need the compute power.

Again, ā€˜donā€™t care about the server-computingā€™ is more accurate and less catchy. So, feel free to keep misunderstanding and mocking the term. Just donā€™t be upset when your competitors take advantage of it to save money, build better systems, and get happier customers. The jokeā€™s on them for not caring about the server, right?

  • SudoDnfDashY@lemmy.ml
    link
    fedilink
    arrow-up
    1
    Ā·
    3 years ago

    Yes, but the whole argument that a lot of people have against the cloud is that it is going to shut down eventually. If I buy a game on my laptop, its mine. I own it. But if I get it on the cloud, once the cloud goes down I am never getting that game back. Even if itā€™s a army of supercomputers its still flawed in that you can never really ā€˜ownā€™ anything you get on the cloud because it is running on someone elseā€™s machine.