Life without the (public) Cloud

Fairly recently during a general Linux training session one of the trainees asked something related to public clouds. I wasn’t quite able to answer this due to lack of experience. The trainee was a bit perplexed by me saying that I don’t use any cloud services and said something like “A life without cloud? But surely you must use iCloud or something like that.”. No … I don’t.

In this article I’d like to dig deeper into this moment and lay out why I don’t let the (public) cloud into my heart.

My definition of cloud

Cloud is a rather nebulous term (pun intended) used for all sorts of marketing foo these days. So it’s important to define what this article sees a cloud service. Obvious choices are “consumer level” clouds like iCloud, Google Drive, Dropbox, etc. Services that store your data for you.

But there’s also a whole other world of cloud services out there. Need a server? Just click a VM with AWS, Azure or whoever else you choose.

Another “cloud” I’d include in this list are cloud applications like Office365 (not that I’d use Office in the first place) or other such proprietary cages. So the scope of this article is quite broad.

To simplify it, I think of a (public) cloud as someone elses computer/service/disk the function of which is not under my control.

Not your stack, not your data

I don’t have a problem with cloud technologies at all and I certainly don’t blame people that they use those services. Take calendar and address book sync for example. If you handle your life with Google the integration is simply perfect. If you don’t you may run into trouble do perform the seemingly simple task of keeping your calendars and address books in sync across multiple devices.

In this respect “we” (freedom loving developers) failed to provide the user with a working, decentralized solution that requires good as no technical know how at all.

But I also believe strongly in data ownership. A cloud is somebody elses computer. Whatever you put there belongs to them. Not even a joke, check the terms and conditions carefully. If something goes wrong, your data is lost. Worse, your data could potentially be used against you. It’s no secret that Google use(d) Gmail (another clout service) data to extract user profiles. While this won’t kill you it’s just not a good feeling to be exposed like this. I mean, would you tattoo your secrets all over your body and walk down the street naked? Rhetorical question of course. Don’t do that.

And it’s not like you need these 3rd party services to make use of the cloud. In a way cloud computing isn’t all that new. Storing data on a remove machine has been a thing a long time before an iAnything was even considered. Email also doesn’t have to live in the cloud. There’s rarely a better example for a free and mostly decentralized messaging service that stood the test of time.

Most thing public clouds offer can be had in a private cloud that you control and that’s running on free software. It’s more involved but the payoff is huge. Not only will you regain control over your data and probably save some money in the process, you may even learn something useful. Scary, I know …

Cost

Cloud services aren’t cheap. Base tier services are usually free but that’s their way of getting you hooked. Once you’re used to it and you outgrow the base package you are almost forced to upgrade.

Some services are dirt cheap while others break the bank rather quickly. So always be aware what limitations these amazing free services have to offer. Another issue is that providers may choose to suddenly cut off free usage. A few years ago Photobucket held it’s free users 3rd party links ransom. All the sudden millions of shared images disappeared from the net.

Only recently Google stopped offering unlimited Photo storage on their Cloud. Surprised? Why? It’s just natural that companies want to make money.

You need to be aware of this when choosing to use Cloud Services. Once they’re incorporated in your workflow and maybe into your life it’s very hard to get rid of them. And that’s a business model that works. Are you prepared to pay the price?

I’m not a fan of such surprises. So instead of throwing money as various cloud services I prefer renting a dedicated server with plenty of resources at a fixed price I can plan for. Not only that, but if I need another service it’s usually quite easy to add to this existing platform without any additional cost whatsoever.

Tools come and go, file formats stay

A major problem I have with many cloud based software solutions are their proprietary data storage. This is not a given by any means but you may end up bound to a service due to their proprietary data format that isn’t compatible with anything but their tool. Surprise!

The world has plenty of open formats. Most free software related to those is quite capable of handling these formats even long after ten other cloud services have come and gone. It’s important for your data to be stored in formats other tools can read and ideally write or you may be stuck with an aging service that lives only through the dependency of it’s kidnapped users.

You can run your own cloud

Running a private cloud will never be as hands off as “accepting the terms and conditions of ”. But there are ways to make it 1-2-3 easy through webhosting providers that offer various templates, etc. Those are cloud services in their own right but by offering you things like a nextcloud host at the touch of a button you gain a lot of freedom already.

So here’s a list of FOSS cloud projects you should take a look at:

  • Nextcloud - A FOSS cloud with a rich feature set and great 3rd party integration. Supports sharing, encryption, apps, etc. Also supports Sync accross multiple devides. Very powerful one stop shop for all your cloud needs.
  • Syncthing - A decentralized sync protocol to share data across multiple devices. Very powerful tool that requires no server and works reliably on many platforms.
  • Gitlab - Github is by no means evil and offers great service. But it may be beneficial to look into a self hosted alternative for inhouse projects.
  • Roundcube Webmail - A feature rich and powerful open Webmail app
  • Rainloop Webmail - Another powerful webmail client.
  • Mattermost - An open collaboration tool similar to slack (Teams?)
  • Riot/Element IM - Discord like chat solution based on the Matrix protocol
  • Collabora - An open alternative to MS Office based on LibreOffice.

This list is subject to modification of course. Meanwhile this awesome selfhosted software list on github should give you more ideas on what’s possible.

A last one is email itself. Running your own email server can be daunting. Yet again, ready made web service providers can help you making this easier.

Running your own email server you avoid size limits, per user costs, 3rd party domains, etc. But most of all your messages are stored on a system that belongs to you. No reputable email provider will read them. Or better yet, nobody can access your dedicated server just like that.

Bottom line

I use public cloud services when involved in the workflow of other people. But I don’t have room for those in my own life/workflow.

My mind is much more at ease running my own stack for my cloud. Sure this means work to begin with. But it’s not like I spend weeks maintaining this stuff. Many updates are one command line or one click away. And if you’re not technical minded, consider a strong hosting partner. Even if you pay for premium service it may be cheaper overall then other cloud offerings. But at least it’ll be a lot more predictable and your data still belongs to you and nobody else.

Use what suits YOU and YOUR workflow. But before you blindly jump onto the latest hype train, consider what you get yourself into and how you may exit once the service turns bad.