Four things you should consider before choosing a cloud provider
1 —What are you going to build?
This is the first thing you need to reflect on. You’re supposed to know the premises behind the product that you’re going to build. If you don’t, you may end up failing to see everything that needs to be covered. It can lead you to several mistakes like over-engineering, ignoring costs or using buzzwords that don’t relate to your product.
2 — Is it time to worry about Infrastructure, DevOps or SRE?
If it is, you should also be worried about finding solutions for Kubernetes that offer whole control of your application and its infrastructure. Here follows a few examples that can help you building a great solution for your product: Amazon EKS, GCP Kubernetes Engine, Azure AKS, and DigitalOcean Kubernetes.
Pros:
- Fully managing your application;
- Taking control over how your Kubernetes Clusters perform and scale;
- Optimizing and predicting the costs of infrastructure.
Cons:
- It takes a team to maintain;
- Losing delivery speed due to the complexity of Kubernetes Cluster.
If you don’t want to worry about this at the moment, you can choose a serverless solution: AWS Lambda, Google Cloud Functions or Azure Functions let you develop and upload production ready code.
Another option would be to use a Platform as a Service (PaaS) solution (e.g. Google App Engine or AWS Elastic Beanstalk), which basically works like a serverless solution for the entire application instead of only for a single function.
Pros:
- Delivery speed and agility to change;
- Automatic scale and high availability;
- A DevOps team isn’t necessary.
Cons:
- No control of the environment where your code is executed;
- Since you pay as you use, cost prediction is compromised.
3 — Do you understand the pricing model?
Look for sustained use discounts, free quotas, and partnership programs in the services you intend to use. Almost all of them allow elastic scale, and that can save you money. You can also use tools in order to generate metrics to help your team negotiate a discount with the cloud provider.
4 — Have you read the service-level agreement?
Last but not least, you need to be familiar with the service-level agreement (SLA) of the chosen cloud provider. Take your time to read and get to know it deeply, since it displays critical information as commitments for uptime and connectivity.
You can also look for answers to questions like this: “During the last years, how many hours have services from this cloud provider been unavailable? Which services have been affected?”
You can gather this kind of information directly from the SLA webpages (e.g AWS and Azure).
Conclusion
Basically, these are the first four things that I consider whenever I need to choose a cloud provider.
There are many other important stuff that need to be considered before developing software, as the programming language, database, and messaging queue services that are going to be used.
But now you already have a place to start!
We hope that information can help you decide which cloud provider makes more sense for your project.
You could end up using one, maybe two, and why not all of them? Multi-Cloud is going to be discussed in an upcoming post so stay tuned!
P.S. — Save the time of your engineering team with the Reactivehub platform and grow your business faster, keeping the quality and reliability of your product. START NOW FOR FREE