Let’s go swimming
You probably love swimming and would like to go for a swim everyday. To get into the daily habit of swimming, you enrol in the swimming club closest to your home. It has 4 clean pools, each with 7 swim lanes. A swimming club is super convenient. The club constructs the pools, maintains the cleanliness and ensures the safety standards. It may also provide other specialised services like a dedicated swimming coach. You don’t have to worry about the details. You just need to pay the monthly fees for your right to entry to the pool and then show up everyday.
But of late, you have been finding the club annoying and counter-productive to your habit. They have been continuously hiking the monthly fees and you feel the pinch. They have been constantly introducing new rules, such as maintaining seperate timings for males and females. Only one of the two genders is allowed at a time. They have been constantly playing with their opening and closing timings and also the timings at which different genders are allowed. You suddenly find that the swimming club’s timings and your work timings clash and that the swimming club is not open to your gender when you are free from work. Suddenly, they have declared a day off every Sunday since their staff wants it. You also hear some stories about spy cams placed in their dressing rooms and videos being uploaded, a clear security breach. The pools have been getting too crowded recently and there are people not following swim lanes. They swim across you and cut you off while you are in the middle of a lap.
Enough is enough, you say and get yourself a piece of land where you are having your own swimming pool built. The initial investment is massive and you have teething problems with maintenance. You are unable to maintain the water clean, but you learn how to. You have to buy a lot of water and pay taxes for your pool, but you learn how to budget for it. It’s your pool and you can slip into it anytime you want to, be it the crack of dawn, noon or midnight. It’s your pool, so you can introduce fish in one section of it and use it as a pedicure pond. It’s your pool, so you can swim with your spouse. However, it’s your pool and the responsibility of keeping the fish healthy is yours. It’s your pool, so any cracked tiles and leakage to the plumbing are yours to take care of.
This dilemma is present everywhere. Do you own a resource, enjoy it exactly as you want to, but foot the responsibility of its upkeep? Or do you rent / share a resource, leave the upkeep to the owner, but follow the owner’s strict rules and whims for the resource’s usage? This dilemma can be applied to plenty of ventures: Should you use a public library or build your own? Should I eat at the local mess everyday or cook my meals? Should I try the variety of wines at the town’s best bar or build my own wine collection?
In the world of software, online services can either be self-hosted or entrusted to 3rd party.
What are 3rd party and self-hosted software services?
In your company, you may be using Gmail to drive employee emails, even if the domain name is your own. You may be using GitHub to take care of your source code. Perhaps you use Google Drive, Dropbox or CloudOne to store your documents and edit them online. What about Slack to talk to other employees in real-time? Skype for calls? Google Hangouts for conferences? Trello for to-do lists and schedules? What about Amazon or Google Cloud to host your services? Is your blog on WordPress.com? These are examples of using 3rd party services. They take care of certain mundane tools that you use in your day-to-day work. Emails, messaging, online storage, hosting, communication, planning and scheduling, etc. You don’t have to maintain Gmail or Slack. They just work.
On the other hand, what if you were to install Postfix and maintain your own Email server? Your own FTP server for online file storage? Your own chat server to chat within your team? Your own server machine with Apache and WordPress installed? These are examples of self-hosted services. The initial cost and maintenance is high. But they give you fine control over what you can do. You own the services, so you can set rules, policies and limits.
Advantages and disadvantages
Let’s start with 3rd party services. You don’t have to install anything. Nor buy your own server space. You don’t have to configure or maintain anything. You just have to sign up and show up. The service just works. It’s similar to how you just enrol and show up at the swimming club and use the pools they built. However, be warned about the disadvantages. You have to pay regular fees. The services are available as long as you pay the fees. They are disconnected when you stop paying. While Gmail, Slack and Trello are free for a very small scale or personal usage, they come with significant fees to support a growing, medium or large company. The fees will often change suddenly and you need to pay up to continue with the service. While the fees for individual services might be tiny, if you subscribe to multiple services such as Gmail, Slack, GitHub and several others, your bill adds up.
Self-hosted services are like building your own swimming pool. You control the rules and limits. The data is totally under your ownership and control. You can re-use your resources for multiple purposes. Remember using your swimming pool as your pedicure fish pond? Likewise, you can buy one server machine and use it as your web server, email server, chat server and whatever you wish. But the initial set up cost is high. The responsibility of maintenance and fixing bugs is on you. You need to acquire good expertise or get access to someone who has. There can be massive savings or massive added cost of maintenance, which can spiral if not monitored.
One more advantage that you can add for self-hosted services is that you can start you own public hosting service. Along with your own services, you can charge other companies to host their services on your services, creating a stream of income for you. Imagine being able to sell memberships for your own swimming pool.
As you can see, both third party and self-hosted services have their own advantages and disadvantages. But I have still not answered which one is right for you. We shall tackle that in part 2 of this series.