ariya.io About Talks Articles

Cloud vs Cloud

4 min read

Because the particular nebulous definition of cloud computing, an organization which does not carefully perform a proper assessment typically ends up using sub-optimal cloud services. A very common mistake is to stick with IaaS, while moving to SaaS can yield a better outcome for all parties involved.

Imagine that you own a start-up or a small business and you want to manage your emails and calendars. You decide to learn how to install and configure a bunch of open-source servers: SMTP, IMAP, and POP3 (either individually, or using something like Mail-in-a-Box). You use an old laptop, maybe even a Raspberry Pi, to run all those servers. After several hundreds hours of tinkering, things are finally up and running. Still, you need to worry about spam filtering, web-based interface, calendars, and few other little details. And of course, backup shall not be ignored, too.

While every software costs nothing (it is all open-source!), the on-going maintenance starts to drive you crazy. All the babysitting effort, everything of triple-checking the backups to the occasional tweaks to the spam filter, accumulated over the next period of months, could be significant. You want to run your business, you do not like to spend any minutes troubleshooting your emails.

Imagine if the idea of cloud computing appears in your mind! Upon looking at Amazon Web Service (AWS), you realize that it offers a virtual elastic machine (in the cloud) which can definitely replace your old laptop/Raspberry Pi. You are thrilled by the possibility! Instead of running Postfix, Dovecot, SpamAssassin, Roundcube, and Nginx on your poor little Raspberry Pi, you can run them all on a different machine operated by Amazon. Yeah, you are finally embracing "The Cloud".

The question is, is this particular cloud migration appropriate for you?

Absolute not. It will be madness!

Moving all those software from a Raspberry Pi to an AWS EC2 instance is not solving the real problem, which is that you still manage a bunch of mail servers yourself. The elephant is still in the room, you just move it from a room inside a house you own to a room in a place you rent.

What you should have done is to let someone else manages those e-mail servers for you. For this reason, you will probably just choose one of those many email providers and be done with it (that provider usually can do a better job at it anyway!). There are enough choices, from G Suite to Office 365 to Fastmail and many more, which can suit almost everyone’s needs and trade-offs. The annual subscription for such a service is likely justified (otherwise, you have a bigger problem).

Unfortunately, many technical organizations do not carefully make the calculated migration to the cloud. Applications are still running in the same way, but instead on an on-premises hardware, now it runs on virtual cloud instances.

Congratulations, you just move the compute, storage, and network to a different place! It barely eliminates the burden of the Operations team to provide all the backup jobs, monitoring, scaling, etc.

Your boss is satisfied that everything is now cloud-based (just like everyone else in the neighborhood), yet failing to recognize that one cloud system is different than another.

At a certain inflection point, you need to think less of IaaS (Infrastructure-of-a-Service) and more of managed services (SaaS, Software-as-a-Service). Instead of operating MySQL yourself, use Cloud SQL from Google Cloud. Migrate the MongoDB-based application to use Azure Cosmos DB instead. Run your micro-services written with Node.js on AWS Lambda. And so on, and so forth.

Even better, most managed services usually have a pay-as-go pricing scheme, sometimes with a generous free-tier as well. Thus, you can start small and grow as your business starts to expand.

Yes, there are special circumstances where you have to host and run your own mail servers. Likewise, for various technical and non-technical reasons, you might still get stuck with apps running on IaaS. However, such a decision (to use SaaS or not) must be made carefully, it is like every other important engineering trade-offs you need to make. It can not be based on quick dismissals (vendor lock-in, costly subscription, etc), it must be thoroughly calculated against all other alternatives.

While doing the cost analysis, make sure to pay attention to the long-term operational cost and not just the one-off development effort. If you triple the data processing demand next year (business is good, revenue skyrockets), but the operations team needs to be tripled as well, expect a forthcoming calamity. Tripling the usage of a pay-as-go service is a matter of swiping your corporate credit card. Tripling your operations team on a short notice? Good luck with that! And we are not even talking about the spurious downtime (scheduled and unintended) and the ramifications thereof. Think of it, every minute spent on analyzing the root-cause of a service failure is another minute your lunch is being eaten by a competitor.

At the end of the day, you want to run a sustainable business. Managed services can be your leverage!

Note: This article was previously published on LinkedIn.

Related posts:

♡ this article? Explore more articles and follow me Twitter.

Share this on Twitter Facebook