Often times, when hybrid cloud is discussed, the natural choices for such a discussion usually are OpenStack and VMware, or AWS and OpenStack, and even diverse clouds and container options - but Azure and OpenStack is a much less common discussion.
This is actually quite an anomaly when you think about it as both Azure’s public cloud, and OpenStack’s private cloud are highly enterprise-targeted. With Azure boasting enterprise-grade security and encryption, and even offering their newly launched Azure Stack to bridge the gap between data centers and the cloud for enterprises, and OpenStack’s inherent openness of APIs enabling enterprises to build their own cloud, these should naturally fit together in the cloud landscape. Yet this is often overlooked.
Nati Shalom, recently discussed in his post Achieving Hybrid Cloud Without Compromising On The Least Common Denominator, a survey that demonstrates that enterprises these days are often leveraging as many as six clouds simultaneously, and the list just keeps on growing with new technologies sprouting up by the minute.
What’s more with the Azure Stack currently being postponed, app migration to the cloud from traditional data centers — with all of the enterprise-grade considerations involved, is an ever-relevant issue.
Historically, in order to achieve cloud portability, you would need to cater to the least common denominator by abstracting your application from all of the underlying logic of the infrastructure below, but this type of model comes at a costly price. All of the actual advantages the specific cloud provides. What if there were a better approach? A way to achieve interoperability and extensibility between clouds, all while taking full advantage of the underlying clouds capabilities and service portfolio.
But even solutions such as the Azure Stack don’t always provide the extensibility and interoperability enterprises these days need for future-proofing, application deployment portability among other popular use cases across clouds. Hybrid cloud also has proven that it isn’t immune to future proofing with disruptive technologies arising every day — not unlike, the latest and greatest containers (read more on The Disruption Cycle). This means that the new approach needs to actually be built for hybrid stacks, not just clouds, all while providing the full functionality the underlying infrastructure provides.
Enter TOSCA (the standard by the Oasis Foundation for cloud applications). TOSCA was written for this exact scenario and provides inherent cloud interoperability and agnosticism. The TOSCA approach is intended to standardize the way applications are meant to be orchestrated in cloud environments. And enterprises love standards. Building one syntax and vocabulary enables organizations to adapt to the fast-paced world of cloud in a substantially simplified manner.
Cloudify, based on TOSCA, built from the ground up as an integration platform is leveraging standardized templating, workflows, and cloud plugins to provide a single pane of glass across technologies that wouldn’t natively or intuitively plugin to each other, such as OpenStack and Azure, and even Kubernetes or Docker, and non-virtualized environments like traditional data centers. Cloudify is making it possible to choose a technology that adapts to the way your organization works or would like to work, and not require you to adapt your technologies, stacks or practices to the technologies you adopt.
Templating languages, such as TOSCA, enable far greater flexibility for abstraction than API abstraction providing the level of extensibility and customization that enterprises require, without the need to develop or change the underlying implementation code, this is why major projects such as ARIA, Tacker, and OpenStack Heat are building solutions based on this standard.
In this way, Azure users now have a set of building blocks for managing the entire application stack and its lifecycle, across clouds, stacks, and technologies. It also provides a higher degree of flexibility that allows users to define their own level of abstraction per use case or application. In this manner, cloud portability is achievable without the need to change the underlying code, enabling true hybrid cloud.