
Make It Rain: Cost, Complexity, Centralization
As someone who has ran their own servers for years, and helped companies run their servers, I have some thoughts on cloud hosting. These ideas aren't popular with big business, and that's fine with me. I am not doing this for large businesses with large budgets and spare engineers. This is targeted to small businesses, and to people who enjoy running their own servers.
For the last number of years, public cloud services have been all the rage. Techs are wanting to get their AWS certificates, and companies are migrating their data to "the cloud." Many, many, dollars are being literally thrown at this idea called the cloud. Is this right? Should small businesses get involved with hosting their website or app in the cloud? Isn't everyone using the cloud?
To me, the "cloud" represents the mental and digital shift away from on-premise and dedicated hosting, towards the bigger business and microservice architecture "of the future," complete with every service you would ever need. This shift however has revealed that in some cases it makes better sense to go back to the good ol' days.
There is 3 main problems when it comes to public cloud services. Those are:
- Cost
- Complexity
- Centralzation
If you wonder why AWS so expensive, or what the cost of a cloud server is for small business, then this read may be interesting to you. I don't point out the specifics of why, but I have some ideas to think about.
Cost
What are you willing to pay to be part of the public cloud movement? $10 per month? $100 per month? $1,000 per month? $100,000, or more? The cost isn't just monetary, it's two pronged. You have the price and you have the consequence. Be prepared to deal with both, not just one or the other.
I have discussed with users that feel like the cloud was the best move ever, and it's the fastest, and the most cost effective, etc. If that is you, great, then I'm not talking to you. I am talking to those who have data that they have, or about to have, tied up with some of the biggest data custodians on the planet, but may not be happy with the pricetag. You need to realize that these cloud get their income from subscriptions, and they don't care if you are activiley using their services or not. So the tendency is to put your data into a cloud service, and then leave it there, whether you remember it or not, and continue to pay for it.
This becomes a problem for two reasons: 1) you now pay someone to hold your data, so you must consider whether the data is actually yours. 2) You now pay someone every month to hold that data. Depending on how the data is held, this could be pennies on the dollar, or it could be upwards of hundreds or thousands or more per month.
So I ask, what are you willing to pay for the privilege? What is the privilege you are paying for? Are you paying the person you want to be paying for this service? How much is too much, and how much is too little? How do you decide that, when you don't even see or meet any of the people who are making that possible?
Although I am offering a hosting service where my servers hold the websites and databases of customers, or I might use another non-big-tech cloud provider in some cases, I can feel better about these options, as I can provide a customized service at a good price, something that makes sense for both the provider and the client.
Complexity
Cloud services are complex. They all use their own naming schemes. And they all function a little different. So the question you might ask is, what level of complexity is required for your business or website? What requirements do you have, and can you achieve those in a way that doesn't require a single person who may or may not be available to fix that problem? If the complex system has an issue, how long does it take to figure out? How much complexity is scripted, and then forgotten about, only to require many hours of work at a later time?
These are all things you need to consider when moving to the cloud. For this reason, I like using simple services like Vultr and Digital Ocean, or just hosting things myself. When I can access my own server, I am able to quickly assess where the bulk of the files are, what processes are running, etc.
Centralization
And the final point, consider for a moment what the centralization of a single service provider does. Monopolies are illegal for a reason. We don't necessarily have monopoly when it comes to cloud providers, only that there seems to be a monopoly of the mind. The big players in the market have become the default for many use cases. By limiting your creativity allowable options, we restrict ourselves into certain patterns that may not always be available, affordable, or sensible.
Additionaly, centrally planned organizations would mean that a central public cloud service would need to meet every need of every user. To do that, what measures did they take to recognize the needs? This might recall instances where organizations have spied on individuals, without authorization or a meeting of the minds. Also, increasing the available options would naturally increase the complexity, which may in turn increase the cost.
Which public cloud service or services do you wish to be the central providers? How was it decided that the selected services are the correct ones? Should there even be a central provider?