In the present startup & enterprise landscape cloud deployments have become a commonplace. If you want to scale seamlessly you need to be on the cloud. Besides this, there are numerable reasons why a business would want to deploy its services on the cloud.
There are many cloud vendors in the market, some big boys like AWS, GCP, Azure & some small players focussing on a specific niche.
Every provider has its unique technological offerings & pricing models. To pick the right cloud provider for your business requires some thorough research.
In this write-up, I am going to discuss the various factors which come into play when looking for the right cloud provider for our application.
So, without any further ado,
Let’s get on with it.
1. Let’s Talk About Your Business Use Case
By business use case, I mean the kind of application/service you intend to deploy on the cloud. And there are several things associated with it.
1.1 Does the Cloud Provider Already Has a Customer Similar to Your Business?
This is a pretty big factor in making up your mind to pick a certain cloud provider.
For instance, let’s say you need to deploy an augmented reality game like Pokemon GO & expect it to blow up just like Pokemon. Pokemon Go scaled to millions of users with Google Cloud.
Now, this gives Google Cloud extra points in your research for the right cloud provider, since GCP team has already scaled a similar kind of service like yours to the moon & is aware of the nitty-gritty, domain specific issues.
Similarly, Fortnite scaled with 125 million players on AWS.
Evernote moved their stack to Google Cloud Platform.
You should go through the customers of cloud vendors & read what they have to say about the platform.
These kinds of success stories prove that your business won’t face any sort of performance, scalability, high-availability issues when receiving heavy traffic load on these respective platforms.
1.2 Be Thorough with the Technical Requirements & the Economy of Your Business
There is no workaround for this. If you do not want to be overwhelmed with the range of technology offerings & various cloud pricing models, you need to be thorough with what you want.
Run a rough estimate of the deployment pricing via the price calculators offered by the vendors.
Google Cloud Price Calculator
AWS Price Calculator
Serverless Cost Calculator
Before deploying your app make sure you are ok with the pricing model & things fit well in your budget.
1.3 Products & Solutions Offered by the Cloud Vendor in Context to Your Use Case
The cloud vendor should offer a complete range of tech in context to the current industry technological advancements & also as per your requirements.
Hmm… What do I mean by this?
Well, naturally the vendor should provide state of the art technological offerings, products & solutions. Nobody wants to run their services on archaic hardware.
Besides this, I’ll give you an instance let’s say you pick a DBaaS Database as a Service for your business. Everything appears to be good.
But when you start gaining traction, the log management, monitoring & other similar services let you down. You feel the technological limitations of the platform are a hurdle to your efficiency in resolving bugs in the system. Besides the core service, other add on services should be equally smooth.
Instance two, what if you need to transition your data to a different database, or let’s say move out of the cloud entirely & deploy your service on-prem. Does the vendor lets you do that seamlessly?
Instance three, you’ve deployed your web app. Everything seems fine. Your business is growing at a pretty solid rate & to further scale up you need a machine learning library which pulls out information from the user-uploaded images. Does your cloud provider offer you that kind of product? Or do you need to look out for a different vendor to do that?
The cloud provider should keep innovating & upgrading at a quick pace to match the industry standards.
2. Checkout the Smaller Niche Players in the Market
If you have very specific needs, you can check out other smaller cloud vendors in the market which cater to specific niche, for instance, Serverless, SaaS Software as a Service.
An upside of working with smaller providers is that they offer very competitive pricing models & features & support wrt to the market standards.
3. Run A POC Proof of Concept Before Going All In
Once you zero in on a cloud vendor. The best way to have an insight into the technology, platform & the pricing model is to run a POC proof of concept on the cloud platform.
Let’ it run for a while. Do a stress test on the sample app. Check if you are comfortable with the monitoring, analytics, logging & other services.
There is no better way than this, to minimize any kind of issues & risk which might occur in future.
The pricing models aren’t that simple. For instance, if a vendor says you have x hours of instance time in a particular quota that doesn’t mean no matter what you’ll get X instance hours.
Chances are you might not. Reason being, there are request & response data limits too associated with the instance hour limit.
If your request-response data limits get exhausted you might not be able to use even X/10 instance hours.
4. Deployment Ease. Easy of Migration, Vendor Lock-in
I can’t stress this enough. Always look for an open-source solution first, then move forward with custom closed source cloud technology offerings, if the only open source doesn’t work for you. This reduces vendor lock-down risk by notches.
Don’t like the service? Move out to another cloud. But if you are using a custom closed source service. You are in for some serious code refactoring.
This is a decisive factor between migrating or not migrating to the cloud. Check the security policies of the cloud vendor. There are spaces which just cannot afford a security breach like Finance, Healthcare, Governance, Military etc.
This is the reason most of the companies prefer a hybrid cloud architecture. The sensitive data is stored on-prem in their private cloud.
Slack is the most popular workplace communication tool in the industry. But the workplace’s data streams to the Slack servers, technically outside the company’s network, when used by teams.
Moving data is vulnerable to security breaches. Therefore, businesses use open source on-prem communication tools like Mattermost which are pretty similar to Slack.
So, my friend, security is important. You get the idea.
This is another important factor to look upon when giving business to a cloud vendor. Do they have a dedicated technical support team? What the support policy? What if you hit a wall? Is the support paid? What’s the support pricing model?
Run a google search to get an insight into the market sentiment for a particular cloud provider.
7. Cloud Platform Marketplace
Cloud platforms like AWS & Google cloud have marketplaces. Which offer utilities, developer tools, solutions, services to accelerate the development. Before writing a utility from the ground up, do look into the marketplace to save resources & time.
8. Multi-cloud deployments
There are several reasons why you should consider multi-cloud deployments. The primary reason is never put all your eggs in one basket. Read A Super Helpful Guide to Avoiding Cloud Vendor Lock-In When Running Your Service on Cloud for a deeper insight.
9. Community Opinion
See what the community has to say about a particular platform. Reviews, opinions come in pretty handy when making the decision to move to a cloud.
10. More On the Blog
Well, Guys!! This is pretty much it on choosing the right cloud provider for your application. If you liked the article. Share it with your folks.
Follow 8bitmen on social media to stay notified on the new developments in software engineering, blockchain, distributed systems, system design, real-life architecture space.
Our Twitter Handle
I’ll see you in the next write-up.
- Distributed Systems & Scalability #1 – Heroku Client Rate Throttling
- Zero to Software/Application Architect – Learning Track
- Java Full Stack Developer – The Complete Roadmap – Part 2 – Let’s Talk
- Java Full Stack Developer – The Complete Roadmap – Part 1 – Let’s Talk
- Best Handpicked Resources To Learn Software Architecture, Distributed Systems & System Design