Learn how Porter executed their cloud migration at scale → Watch Now
Most technology companies start with a single cloud provider. With time, they start to adopt the cloud-native functionalities of that cloud. This is expected and completely makes sense. Moving towards cloud-native architectures brings convenience and possibly, cost-efficiency.
Most technology companies start with a single cloud provider. With time, they start to adopt the cloud-native functionalities of that cloud. This is expected and completely makes sense. Moving towards cloud-native architectures brings convenience and possibly, cost-efficiency.
But if you are not careful, you may get bound to the cloud provider.
Many would prefer to have an option to switch their cloud provider or more commonly, to run either a part of their product or their environments on another cloud. The reasons may be varied. Your customer may have a preferred cloud hosting clause. You might want to expand to a region dominated by other cloud providers. Other reasons could be data-heaven laws, pricing or a particular service of another cloud that absolutely eases things for you.
Some technology teams value this optionality so much that they forgo cloud-native functionalities and operate just like they would on a typical traditional data center. This adds up to the tooling needs significantly, making the infrastructure expensive. After all, the cloud was never meant to be run like a traditional data center!
Having the best of both worlds isn't very hard. One needs to follow some design guidelines from both Dev and Ops sides.
These are best practices even if you choose to be on a particular cloud forever.
It all boils down to following simple decision models. We like to think of them as "blue cloud" and "grey cloud".
In the above cases, we took care of the Dev Part. What about the Ops?
The Ops setup generally includes backup, recovery, code-delivery, observability, security, HA. Instead of completely building them in a cloud-agnostic way, it is prudent to use some of the cloud-native capabilities of each cloud. This would reduce the burden of building everything from scratch in an error-free way.
A few tips while you build your Ops toolchain:
Being Cloud-agnostic doesn't mean multi-cloud. It doesn't mean migrating to another cloud at will as well.
It simply means if you could host a particular environment of yours in another cloud within a reasonable time, say weeks not years. This would give the necessary optionality of the future without investing in tooling for other clouds. You don't need to sacrifice cloud-native functionalities either, you just need to manage the abstractions well.
We at Facets.cloud are building on the above principles to provide you with the necessary tooling to achieve the best of both worlds. Do write us to know more or collaborate!