Highlights

Vendor lock-in is a risk for businesses relying on cloud technologies.

Cloud modeling languages can safeguard you from cloud vendor lock-in.

It is important to choose a cloud modeling language that supports multiple cloud providers

Juju and TOSCA are two prominent cloud modeling languages that support multiple clouds.

Don't get trapped in the cloud!

Low cost and high flexibility has made the cloud very attractive. Unfortunately, IT decision makers are hesitant to use the cloud as a competitive advantage due to concerns about vendor lock-in. Having the cloud as a key part of your business creates a risky dependency on the cloud provider. Giving the cloud provider the power to make or break your business isn't an attractive proposition.

The conventional way of building a service in the cloud is to interface directly with the cloud provider. A cloud provider is chosen during the initial development of the service. After that, each decision is influenced by that initial choice of cloud provider.

You hire people with experience of that cloud provider.

Application development and release workflows are adapted to the cloud provider.

Your operations automation creates and uses tools designed for the cloud provider's API's.

Your cloud solutions leverage higher-level services of the cloud provider such as the Google cloud Bigtable or AWS Lambda service

Cloud modeling languages can be used as a first line of defence against cloud vendor lock-in. Instead ofbuilding your service using the tools and API's provided by the cloud provider, you build it using a vendor-independent modeling language. Instead of being stuck with the cloud vendor you initially chose, you have the ability to revisit that choice later on and adapt to changes in the cloud ecosystem. To fully benefit from these advantages, it is important to choose a cloud modeling language that gives you this freedom and portability.

What’s out there?

Cloud modeling languages can be a great first line of defence against cloud vendor lock-in, but not all cloud modeling languages are created equal. It is important to choose a cloud modeling language that supports a number of different clouds. Languages such as AWS CloudFormation and OpenStack HEAT will provide you with all the regular benefits of cloud modeling languages, but they won’t protect you against vendor lock-in due to their platform-specific nature.

Juju and TOSCA are two prominent cloud modeling languages that support a number of different cloud providers.

Juju

Juju is an open-source cloud modeling language and orchestrator with a focus around simplicity and reuse. In Juju, everything revolves around Charm, isolated pieces of operations knowledge that are specifically designed to be reusable building blocks. You create the model of your solution by connecting a set of charms using relationships. The Charms use these relationships to coordinate with each other to setup a solution.

Juju has an active community that creates and maintains a number of reusable quality-controlled Charms and models. This gives Juju a great out of the box experience and allows you to quickly create the solution you need. Juju’s community has centers of gravity around Big Data supporting products such as Hadoop and Spark, Container orchestration with Kubernetes and Mesos, and OpenStack. Juju’s ecosystem is by far the most mature, embraced by software vendors such as IBM, and used in production in companies such as with many software vendors such as IBM and used in production by companies such as Verizon and Yahoo.

Juju’s main disadvantage is that it isn’t as flexible as other cloud modeling languages. Although it can manage both Ubuntu, Windows and Centos servers, most of the existing community work is centered around Ubuntu. Another thing to consider is that there is only one Juju orchestrator, namely, the one provided by Canonical. Although Juju gives you a lot of freedom in choosing a cloud provider, the ecosystem of Juju orchestrators is a monoculture.

TOSCA is is a cloud modeling standard focused on interoperability and flexibility. TOSCA is being developed by the OASIS consortium in association with a number of partners such as IBM, Cisco and Hewlett Packard Enterprise.

The flexibility of TOSCA makes it suitable for a number of different use-cases from modeling cloud applications, physical and virtual infrastructure to describing workflows and virtual network functions. TOSCA has a growing ecosystem with centers of gravity around software defined networks, network function virtualisation and enterprise computing operations.

TOSCA’s flexibility has the downside of complexity. The specification itself is very abstract and generic resulting in a very powerful but complicated cloud modeling standard. The TOSCA simple profile addresses some of this complexity by providing a simplified less verbose and less abstract version of the standard. The complexity and genericness of the standard has resulted in an ecosystem where every vendor supports only a subset of the specification. Recent efforts aim to reduce this fragmentation by formalizing how TOSCA models are processed. The ARIA Tosca project is another effort to reduce the fragmentation by providing an open-source codebase to create TOSCA-compliant orchestration engines.

Contrary to Juju, the TOSCA ecosystem contains a number of companies, projects and orchestrators that have varying levels of support for TOSCA models.