Simple, yet effective, strategy for cloud portability
Cloud has become de facto platform for developing and hosting enterprise applications of any size and kind. Using more than one cloud is becoming a necessity for enterprises to leverage the benefits, ranging from consuming differentiated cloud services to the benefit of safeguarding from market dynamics. Unless cloud portability is part your cloud strategy it will become difficult to reap the benefits from multi cloud landscape and not getting locked with one provider.
Strategy
One can define cloud portability at implementation level. But leaving it to the implementation level can be a costly affair and time consuming. By defining it at architectural and design level we can differ the actual porting out to a later point when actually needed. This gives freedom for us to move fast to the market, in right direction with limited costs.
Defining the portability at architectural level and combining it with open technology is one of the best ways to achieve cloud portability. This way we will be minimising the efforts, and have safety net even when the implementation level validation is postponed beyond the production. For example by containerising and orchestrating applications using Kubernetes will give the possibility to host them in any cloud that supports Kubernetes.
Conclusion
- Define cloud portability at architecture and design level.
- Use open technology to the possible extent.
- Prefer using managed services that are available around these open technologies. Use cloud specific services only when it is critical to your progress, but be aware of your use.
- Embrace right tools for developer experience. If your enterprise is mature in this space then continue to integrate your tools into cloud. Otherwise, can chose hybrid path to leverage best of cloud and open source.
- This strategy is ideally suited for custom applications