This post about multi-cloud was originally published on ImageKit’s Medium blog as “Is a multi-cloud strategy right for a startup?“
If you are a cloud-based SaaS startup, ensuring high availability and performance at all times is a huge challenge. There are several cloud providers currently in the market — from the large cloud platforms like AWS, Google Cloud and Microsoft Azure that provide an array of cloud services to the relatively small cloud computing providers like DigitalOcean, Vultr.
Different cloud platforms have different performance for comparable services. Selecting the right platform or a combination of platforms is hence essential.
Multi-cloud strategy is to select the best services from different cloud platforms and combining them to create the best possible solution for your business.
This strategy not only allows you to pick the best services from each of the cloud providers but also helps you mitigate risks of downtime by intelligently distributing your application across different cloud platforms.
According to a report shared by RightScale, 85% of the cloud-based enterprises use multi-cloud strategy in 2017 vs 82% in 2016. Bigger organisations have the budget and resources to do this despite extra complexity.
But, the question is that “Given the budget and resource constraints, is multi-cloud strategy a good strategy for a startup?”. According to me, and at least for a lot of startups, the answer is “yes”.
It totally makes sense to go for a multi-cloud setup from the beginning or at least have it in the back of your head while developing the product. Building your application with this interoperability in mind will save you the migration costs in the future when you have a bigger application stack.
As for the budget constraints for a startup, with the cloud war going on, every provider provides credits to companies at different stages of their business. These credits are meant to support a startup’s development by covering their infrastructure costs and luring them to use their platform in the future as well. For example — Google, AWS and DigitalOcean have launched their credit programs for startups.
Additionally, most cloud providers, offer a free-tier to get started. You can explore the credits and free tiers from different cloud service providers and evaluate what would work the best in your case.
Benefits of using Multi-Cloud
1. Minimise the vendor lock-ins
The cloud provider with which you start may not be ideal for you at later stages once you grow beyond a certain point. And, it might become difficult to move out because of the dependency on a particular service. For example, a cloud provider could have a very attractive pricing plan at low usage which will quickly become expensive as compared to other services at a larger scale.
2. Mix and match services and solutions
One can totally exploit the advantage of using a better and cost-effective service on one platform instead of the other. You should mix and match services from different cloud-providers to create most suitable solution for your business. For example, a private cloud behind a firewall can be used for running compliance restrained applications with the rest of the application running on a public cloud as a hybrid approach.
3. Reduces possibility of downtime
You could load balance the traffic between cloud providers with efficient DNS routing and autoscale your application within each cloud infrastructure. You can design this for the whole application stack or an individual service depending on your business requirements.
4. Make most of the public cloud cost-savings
Businesses or startups looking for cost savings might get benefit from the cloud computing war which has started recently with several players coming in this space. All cloud providers have reduced their prices to stay in the game. If you can migrate to a robust yet economical cloud infrastructure, then you can save a lot of money over the years.
5. Better geo-presence and disaster recovery
With a multi-cloud setup, you can take advantage of better geo-presence of one cloud provider than the other. All latency sensitive applications can benefit from this.
Things to look out for
Not as easy as it seems, developing and maintaining a multi-cloud infrastructure comes with a lot of challenges. To effectively operate in a multi-cloud environment, you need to have the right tools.
1. Usage monitoring
It is important to monitor your application across different clouds. Monitoring the usage of your application would not only help in better maintenance but also, if you are looking for cost savings from a particular cloud platform, then you would be able to monitor how your cost varies with usage on different platforms.
2. Operational and Opportunity cost
Managing your solution across different providers and vendors needs to be managed and controlled properly. You need to maintain application deployments, security updates and bug patches across all platforms. If you do not have a dedicated IT resource to manage it, you should look for managed cloud service providers.
3. Platform independence
Making your application platform independent will help you deploy and manage it across multi-clouds. It will also help reduce dependency on a particular provider. As a startup you can design your application or make the necessary changes for this early on. Choosing the right tools, for example Docker containers for deployment, can solve many problems.
4. Test for Fault Tolerance
Fault tolerance is a major benefit of a multi-cloud setup. Make sure you test it properly by emulating all types of network or application failures and load testing. That’s the only way of knowing how robust your multi-cloud setup is.
Growing a startup is hard, especially if you are trying to bootstrap your way to success. But, the right infrastructure strategy at an early stage, will help you build a great sustainable product.
The future isn’t cloud, it’s multi-cloud.
What are your thoughts on using a multi-cloud setup for companies at different stages of their business? How has your experience been when moving to a multi-cloud setup?
ImageKit is a one-stop solution for delivering optimized images via a CDN to give better and lighter experience to your end users. We use multiple cloud providers for different parts of our service and work with multiple CDNs for the last-mile image delivery. We have a multi-region setup which helps us reduce latency by processing images closer to the location of the user and also provides confidence to our customers on the reliability of our services.