The cloud myth

What is the cloud?

As this decade comes to a close it is clear one of the dominating trends was the cloud. The term has reached well outside the tech world and now everything is cloud computing or marketed as cloud software. But what really is "the cloud"?

There is cloud storage. There is cloud computing. There is probably many other things that have cloud in front of it down to the toothbrush I have (I don't use those features but I had no choice if I wanted the analog features).  

But if you strip away all the marketing and tech speak, the cloud is only a term for using someone else's computer. You might store something there or you might use some of its processing power.

Why did the cloud take over?

Many years ago, over two decades now, building a website was really hard. You needed computers to serve your pages and that cost money. And since you were serving these pages for a lot of people instead of simply yourself, you often found yourself needing a lot of computers.  

Additionally, these computers were hard to set up and configure. They required some fairly special expertise to monitor and manage and that was an entire job unto itself.

And so, the cloud rolled in. In this case, Amazon. The story goes that this new online web shop had to make sure that during the massive shopping holiday of Black Friday, where hordes of people reverting back to their most natural instincts, that their web shop would not crash and be able to handle the demands of those sane folk who don't want to have to battle their local Karens for a 50 cent discount on the latest juicer.

Amazon found themselves sitting on millions of dollars of computers after the holidays that were largely sitting unused. Being clever they decided to optimize these resources and sell them to other devs. They had them set up and running so why not rent them out and make an easy dollar? And so, the cloud was born.

A myth develops

In 2006, a single core 2.0 GHZ processor started at $860 and to boost that up to 2.5 GHZ it skyrocketed to just under $2,000. It was no doubt hardware was expensive. It was also no doubt that managing these servers at the time was difficult and specialized expertise. Stack Overflow, the largest dev Q&A community wouldn't exist for years yet. Learning was through books and degrees.

The pitch of the cloud was to alleviate your company of all the expense and expertise. No longer did you need to know hardware, just work on your software and the cloud could take care of the rest. And the savings were huge. New features never before available were now available to any developer that could write software for the first time. No major setup was required on the developers account aside from signing up for an account.

But time marches on. The pricing today is not the same as the pricing of yesterday. I am working on assembling a server that has a processor with 8 cores of 2.4GHZ. The old price of $16,000 is today only $170, or a smidge over 1% of the cost. A 250GB HD wasn't unreasonable at around $100, however that today will get you in the ballpark of 4TB or 16x the space.

Expertise is easier than ever to access. There are massive amounts of new resources to quickly find and resolve problems you would have no ability to debug yourself. Not to mention as time has passed new management and tooling has been launched that makes it easy to configure, manage and monitor a server.

But, if you go talk to a developer today, they will tell you that running your own servers is a near impossibility. If you did that you would NEVER get to develop software because all the time would be managing servers and hardware. Let's state this for what it is, a development prejudice. We are basing our perceptions on outdated knowledge. What was once true is no longer true.

The cloud darkens.

Things that start well intentioned can often grow into a twisted monster that hardly is in line with the original form. The cloud was always a way to generate profits. Amazon needed to make use of unused space and recoup it's investment in hardware. In the early days, the needs of developers and Amazon aligned. Amazon needed money, developers needed hardware set up and ready to go at a price they can afford.

But that's not quite true anymore. Most small companies can afford to host their site themselves. In fact, they would probably save a large amount of money if they did so. The amount of companies that would lose money is next to zero. Amazon knows this. They need to make developers keep using their computers. They have an incentive to continue the disinformation that running a server is hard and cost prohibitive and time consuming. They implement features that most developers should not be using as a way to lock in companies to paying for their software. It's hard to bring your costs down when it would cost you a year or more of cloud costs to do so. They know it's hard to make that pitch to an exec and have buy in for that project.

Additionally, the cloud was supposed to be this new tech that freed everyone from being centralized industry players. But in the end, we are now centralized to a few big players in Amazon, Microsoft and Google while they crushed many of the hosting providers of old. Your data is more centralized than ever. All the services you use that bill themselves as "cloud services" probably store their data here. And as such, these players gain an unfair advantage in the market. It's centralized intelligence. If Amazon wants to buy a new company to offer some feature they would be crazy to not look at their customers cloud costs and stats. Are their machines serving more and more traffic, which competitor is growing the fastest, which ones aren't threats? Sure, they will say they don't look at a customers data, but just the metadata of the account is an unfair advantage.

And to top it all off, we have the new era of software billing, subscriptions. Not so long ago you bought a piece of software and then you used it. If you wanted new features you had to buy the next version of the software. It was a conscious tradeoff between if the software improved enough to make it worth it.

Every company now has cloud costs they need to pass on these days. They pass on these costs through subscriptions. I have an Adobe subscription now but for the first 10 years I used Adobe software I did not need one. The subscription provides me no value. I just want to use the few little tools I used a decade ago in Photoshop. Everything is a subscription, even things that don't utilize the cloud anymore.

Moving to a post cloud era

I am really excited about this upcoming decade in terms of tech and webspace. I think the 2010-2020 decade is going to be the dark ages of software development. The cloud has a place for sure. But like many types of tech we tend to over-adopt early and then pull back a bit as time goes on. I don't have the clear answer on how we go beyond the cloud era's but it's one of my main goals I am working on figuring out. I do have a few themes.

Make it easier to develop again

Pre-cloud era, I feel the focus was on making it easier to develop. ASP.net got replaced by PHP. Language quality aside, PHP was easy to get started. Then JS came along and anyone with a browser could start practicing programming. In this closing decade the reverse has happened and I feel it's to perpetuate the cloud myth. Software is more complicated than ever. I'm not even sure if people can ship quality software these days. Software developer jargon is eeking into the mainstream because of how many bugs are being consciously shipped. The state of QA is that if it works once on a developers computer once it gets shipped to prod in moments.

I've been working on an expanded framework on top of Ruby on Rails called "Olympus". It distills the past decade of experience into one place that will let junior and mid level developers punch above their weight. It's the early stages still but it's been in progress now for almost 2 years. In another 2 I think it's going to be quite nice.  

The next steps is to start to build in server & infrastructure management. There is no reason that today you can't download a framework and deploy it in one click to anywhere.

Introduce new business models

Part of Olympus is having a billing system that let's you play with multiple business models. I want to try to implement a blended mode. You can either play X dollars for the feature or subscribe, whichever you prefer. If you pay by feature than you can pay just for the features you need. If you subscribe you can get various features for that tier you pay for and lose them when you stop paying. People should be able to pay how they want and what fits them. This might not work for all scenarios in which cloud computing is a core part of the business model. I'm excited here to see the new M1 chips from Apple. I think the unification of phone, tablet and desktop development is going to be something that the Windows world will be racing to catch up. You can now develop a game and have it launch on every device at once with the same code. It equalizes the browser and the OS. Yes, I know, it gives Apple lots of control and that can be abused but that is a topic for a different post. I think in the next decade you will see more truly native desktop apps and less of this Electron stuff.

Change how consumers view their personal data

Most people are aware of the hacking attempts and getting personal data leaked this days. At this point, every social security number in the United States is easily searchable on the internet. But the world is so much more insidious than leaking some data about you. I remember over a decade ago discussing things like device fingerprinting. It wasn't even that new of tech back then. By 2010 apps on your phone were listening for ads in the background in order to try to provide "tv attribution", or essentially analytics on how many people saw their analog TV ad. Bluetooth trackers to track your movements in public places and send you follow up ads were already rolled out then. I'm not close to ad-tech anymore but I don't even want to do a brainstorming session on what is possible today with all the new computing power and face recognition.

I'm building a home server right now. It's going to be pretty bulky. I want to figure out how to make it so simple that anyone can fully manage it and fix any issues. It needs to have some NAS and the ability to run some applications. Over the years as Olympus evolves I want to think about how it can become a backbone or loader for other apps in a self hosted environment. Are there some protocols to be developed or tech that if develop a server client in a certain way we can deploy that to everyones living room in a safe and secure way? I don't really care if my software stores my data locally or remotely while I am using a product. I definitely don't want to send my personal data elsewhere if I don't have to. Yet today we develop apps in a way that makes this a requirement and not a feature. We need to change how we distribute and think about web applications. I envision homes buying their "house computer" that has a lot of space and processing power and then can be easily hosted at home under a domain. Instead of visiting google.com, you would go to google.yourdomain.com. No experience change, but you get control of your data.

Emphasize the cost savings of self hosted

Some apps just need to be cloud apps. They need to have a service component to be useful (like Google) that is just not practical for you to host on your own. Most of these companies can save loads of money by hosting themselves. I'm still at the napkin stage on this one but the numbers really are stunning when you price them out. I am finding a conservative break even point at 3 months. If your company went and bought the servers and put them in a colocated data center the majority of companies could cut their cloud cost to a few hundred or thousand a month from tens or hundreds of thousands. The ongoing costs are probably 10% of what you pay now on the big 3 cloud services and you will recoup the initial investment of servers in as little as a month.

The challenge I am thinking through is the initial start up costs. Between 0 and 1000 dollars of cloud costs is an area that is hard to avoid beating the cloud in cost effectiveness. AWS will lock you in early and then it becomes something really hard to get out of.

What I see is more focused data center providers that have at least a section of machines for start ups. Startups can pay to have their machines hosted there and then rent back their extra space just as AWS got started. When the start up grows up a bit to fully dedicated machines then they can move into another area (metaphorically) in the data center. It's not much different cost wise, but the data isn't centralized into a few industry player and you will have full control over your data when your fledgling start up can support it.

Wrapping it up

I have a lot to work on this decade. I need to go from app framework to generating revenue to infrastructure automation to hopefully changing broad attitudes. I'm not naive enough to think I am the only one working to this end. I am so optimistic over the next decade in part because I feel the movement overall is growing.

One last note of changing business models revolves around the open source business models. Right now open source development is largely an allegory to "free work". As I release and publish more of my tools open source I hope others will want to contribute as well. And while I love "free work" I think it's important to figure out how to make sure the money flows to the ones creating the software, instead of the business entity that owns the IP rights that are given up when you accept that "contributors license". As a start to this, I plan to make Olympus free for bootstrapped business's and individuals looking to learn. For those businesses that take VC money, or are profitable, it's time to start paying your fair share and contribute back to the people who made your business possible.

To conclude, we can effect change by working together. If you are doing something related to what I'm working on let me know and maybe we can find a way to compliment each other. At the very least, I'm a curious potential customer. Best of luck and may the next decade be sunny and a lot less cloudy.