Choosing your first Cloud platform
When choosing their first Cloud platform, most startups think of their current state instead of their future state, and fail to consider what happens when they start gaining traction and scaling. Unfortunately, if they don't choose a platform wisely, there may an ugly task down the road called Cloud migration: the need to lift-and-shift your solution to another Cloud platform. This results in cost and time you can't afford, when you should be focusing on building and growing your product. In some cases, your solution may be so tightly coupled with the old Cloud platform that you need to rewrite some of your code to integrate with services in the new platform.
As a startup, you cannot afford the cost and potential downtime involved in choosing the wrong Cloud platform. Knowing the right questions to ask and your business requirements and goals provide you with the ability to assess and choose the right platform for you.
Here are the top 5 key questions that startups need to consider before they choose a Cloud platform.
Where are my target customers or users located?
This question may seem trivial, but where your user and customers are located can impact network latency and how your application performs for your users. If there are no data centers near your customers, there is a risk that your application does not perform well for them. This risk may have a local or global impact.
Even when there is a data center close to your customers, you need to know if the core Cloud services that you need for your application are offered or are available in that region. If something you need is not yet widely available, you need to understand the road map of when it’s going to be available and whether that is something for which your startup is willing to wait.
Next, you need to be aware of compliance regulations for the countries in which your user or customer are. For example, the General Data Protection Regulation (GDPR) prohibits transferring data on EU residents outside of the EU. As a result, you may need to consider a Cloud platform that provides compliant services.
What open-source solutions or tools are my engineers using?
Your startup may be using one or more programming languages (e.g., Python, Node.js, Java, .NET, Ruby, etc.). You need a Cloud platform that offers SDKs available for the languages your startup is using. This availability makes development faster when integrating your application with Cloud services.
Next are the databases you may need. Many startups use free or open-source databases like MySQL, PostgreSQL, MariaDB, MongoDB etc. However, there’s a lot more that comes with databases. You need to store, query, tune, manage, and optimize performance. Even if you have a Cloud platform that supports these databases, you need to compare and see which Cloud platforms have the best capabilities for optimizing your database: built-in backup and restore; ability to scale in seconds to meet the most demanding spikes; and advanced monitoring and alerting. These are critical tasks for most startups and being able not to worry about them is another job off your plate.
What is the cost of Cloud services?
Yes, a Cloud platform may have all the services that you need, but as a startup, can you afford it? For instance, you may want to use Big Data analytics that can take a long time to run. For example, after executing jobs on a server for 10 iterations, where each iteration runs for 8 hours, you may need to run to the bank for more money. Alternatively, an unpleasant surprise might await when someone forgets to delete the nodes after the jobs have completed. Take the time to cost out what you expect to spend; most Cloud providers have a cost calculator you can use to make rough estimates.
You should also check to see if there some workarounds available to you, like using other technologies. For example, you could use a serverless execution pipeline like Azure Data Factory to run your Big Data jobs. These solutions are often much more cost-effective because you're not charged so much for compute and not charged when they are not in use.
This risk is why pricing estimates and even a Proof-of-Concept (POC) are critical before making a Cloud platform commitment. These costings are also useful to know when pitching to investors when you're trying to raise capital.
Does the Cloud provider have excellent Customer Service and documentation?
No matter how good a Cloud provider is if they do not provide excellent Customer Service, Documentation or YouTube tutorials then run! Let’s face it; as a startup, you probably do not have the privilege to pick up the phone and call a Cloud provider whenever you run into an issue or have questions. So, it’s critical to do a quick POC of your application on the Cloud platform. This POC gives you insight into how good their documentation and tutorials are and how easy the platform is to use. If you get unlucky and run into issues or questions, examine how responsive and helpful their online support center is. This response gives you insight into what your future business dealings with the Cloud provider are likely to be. As a startup, you need a quick to market solution for your revenue and customers, delays from a Cloud provider equal delays in your product or feature release.
How are Disaster and Recovery handled?
As a startup, you need to protect your business from unplanned events ranging from human error, transient hardware failures, network or power outages, and even natural disasters and so on. Bad is your application being down in this circumstance, even worse is losing customer data. Even with backups, how long will your users or customers experience downtime before the application is back up and running? As a startup you need to evaluate the replication options of your resources; the cost to store the backups, service-level agreements (SLA), and automated tools that are in place to back up and restore your application when there’s an issue. Comparing all these factors for different Cloud Platforms is essential.
In conclusion, when choosing a Cloud platform, some startups go by industry hype, what someone has told them, or the last blog post they read. However, this is not a task to be taken lightly. Every platform has pros and cons. Your startup is not the same as everyone else's company. You need to assess each platform to see what capabilities it offers for your unique business. Next, time and cost are essential factors for a startup. The more the Cloud platform provides robust solutions that take these burdens off you and allow you to focus exclusively on building and delivering a great product, the better.
Ruth Yakubu is a Cloud Advocate at Microsoft.