Think you can benefit from all worlds when going multi cloud? Can’t decide which cloud provider to go with so you decide to go with all of them? You might want to rethink that. Our CTO Hillel Solow sat down with Jeremy Daly from AlertMe to discuss this interesting topic. They concluded that in most cases it is far better to use one cloud provider than a few. But are there use-cases for going multi-cloud? And why shouldn’t you do it anyway? Let’s dive into the latest Serverless Smarts Podcast recap.
Jeremy, an AWS Serverless Hero, feels very confident in his AWS skills and is pretty sure he is following best practices when it comes to developing on AWS. However, if he was asked to say the same thing about Azure or Google Cloud – he wouldn’t. The point here is, it takes a long time to be a pro in a cloud platform, to understand the ins and outs and to feel very confident in your practices, and that is a serious factor to consider.
There are a lot of factors that make a multi-cloud strategy not ideal for most use-cases. From a security perspective, whether it’s a smaller startup or a big organization, Jeremy thinks multi cloud strategy makes little to no sense other than maybe hitting a SaaS here and there. Going multi-cloud puts a lot of strain on the security team (that is if there even is one). It takes a lot of time and effort to understand and learn those different services, how permissions work and so forth.
Hillel adds to this point by saying that people often don’t consider some of the technical and security debt they accumulate by making some of these decisions. A lot might think, “it’s a best-of-breed technology”, or “I got the orders from on top not to be reliant on a single cloud provider”. But when it comes to deployment, operations, setting up and monitoring security, those things become A) significantly harder and requires more effort when dealing with more than one type of system, and B) particularly with security and operational problems, you often end up with some sort of lowest common denominator rather than being able to use the best practices you could when using a particular cloud provider.
Obviously, there are some business cases where it makes a lot of sense to use different services. For instance, there’s nothing wrong with using a third-party API and having a token for it, but sometimes it’s better to try and stick with a single ecosystem. For security, it will not only make your life easier, but it will make a lot of decision-making better and as a result, improve security efforts.
Now some might say, “We have to go with containers because we need to be able to move those between Google and AWS and Azure”, and that might be the right choice, but usually
there are better ways to do it. Running lambda functions on Firecracker is extremely fast and has no complexity in terms of layers of abstraction with Kubernetes and pods and containers running. As a developer, it wouldn’t matter too much to my daily process, but if you have to make certain decisions and you can’t go with DynamoDB because you need a database that can run in multiple clouds, then it starts to have a negative effect on the quality of your application.
To summarize, a multi-cloud strategy is almost never recommended in our opinion. It is usually much better to stick to one ecosystem and do it well, get your team’s experts in that platform and feeling confident in their practices, than having all these different providers running different parts of your application. It is better for security, operations and eventually – the entire organization.