Not so long ago I was asked by a friend, a tech entrepreneur owning his own company, why should he consider expanding his business into cloud and how it could benefit his customers and his very own development workflow. So instead of answering him in a lengthy message, I decided to summarize it here, also for the benefit of people who may have asked the same question.
What is this cloud really about?
First of all, you should realize that cloud computing is a very broad term. “Servers” and “hosting” are just a tip of the iceberg. Cloud providers offer a variety of different products ranging from old-fashioned servers that you have to manage, patch, secure and whatever else to completely managed services which scale automatically (you don’t have to worry about renting more servers or renting less depending on how many people use them), are patched and secured by the cloud provider and even offer DDoS protection so in reality the only thing you need to focus on is programming… and the quality of services offered by the cloud provider.
For non-technical people
If you don’t have technical background and the above explanation doesn’t make much sense to you, think about it as different ways to create HR department.
Owning a department
As CEO you may create your own HR department, hire staff, train them, degrade them, promote them. This is the “pure servers level” called on-premise. You are responsible for everything that happens.
But you may also decide that you don’t want to deal with recruiters and choose to outsource this department. Now it boils down to asking how much of this responsbility do you want to outsource? You may decide that you want to contract recruiters from a 3rd party company. You are still responsible for hiring them, promoting them or even degradading them but the outsourcing company is responsible for providing high-quality well-skilled recruiters. This is the cloud “server” level - AWS EC2, Azure virtual machines, Google Cloud Compute or Digital Ocean Droplets.
Choosing to not own HR department at all. Everything is taken care of by the outsourcing company. You just pay and are not interested in managing anything. This is the level of so-called “serverless” services like AWS Lambda + API Gateway or DynamoDB, Azure Functions, Google’s Firebase or Cloud Functions.
Those are tricky ones. You own your own department that works well but let’s say your office space can’t accommodate more people. So, you choose to outsource some of it to a 3rd party, but leave your existing HR people that you love and enjoy spending time with. In cloud terms this is called “hybrid scenarios” and there are services out there that speed up the whole migration process or make it easier.
Benefits as a developer
As a developer you can benefit from faster prototyping. Choosing a service that offers an API and is priced per billing you can start coding right away. You don’t have to provision servers, manage them, update them. As a result your time to market is rapid, development stress reduced and overall experience positive. Especially nice for hackathons or similar events.
Benefits as a small company owner
So you own a small website, maybe a shop, that is not visited often. Because your shop is not visited often (a small store in a rural area), you choose services that are priced per billing like Google Firebase. Your total bill is significantly reduced and you don’t have to worry about dying servers or ongoing maintenace by a technologist responsible for it because it is done by the cloud provider itself.
Benefits as a big company
Big companies enjoy 4 advantages provided by cloud solutions.
Big enterprises can’t afford to be offline and lose revenue. That’s why they choose big names like Google, Amazon or Microsoft that offer service-level agreements. Those state how much time a service should operate in a specific period of time without major interruption. And if such an interruption happens, you are paid or compensated for the interruption period.
Hybrid scenarios and disaster recovery
Most of the time big companies already own servers or even huge datacenters. Cloud providers offer tools that help them to backup the existing data, assess migration readiness and even migrate a part of the workflow to the cloud. A whole lot easier than simply renting a bunch of servers on your own and handling migration headache yourself.
Companies that spend alot can pay upfront and as a result receive many advantages. Here are the main benefits of enterprise-level agreements:
- discounted pricing (Azure websites can be up to 26% cheaper!)
- access to extra features (for example in Azure you can utilize Azure Active Directory Premium only as a part of enterprise-level agreement)
- price protection (if prices spike you still pay the old ones)
Reduced regulatory burden
Cloud providers offer services which are compliant with different international laws out of the box - HIPAA, GDPR just to name a few. This obviously lessens the burden and allows you to focus on the technical side of things. And in case of an audit you can be sure that you are compliant.
Cloud offers unlimited resources in a pay-as-you-go model. You can run expensive simulations without renting huge datacenters or owning your own hardware. Furthermore, you can apply for educational grants that lessen the cost of research.
I hope this article clarified the huge advantage cloud provides. Please write in the comments section if anything needs to be fixed or presented in more details.