Describing portable applications with TOSCA

James DesLauriers, University of Westminster

With cloud adoption on the rise, the number of cloud service providers is increasing and is providing more choice and flexibility for running workloads off-premise. There are clear advantages in bursting or migrating to a different cloud provider, whether it be to take advantage of specific resources or services in the short-term, or to relocate or handover a project on a permanent basis. The OASIS Standard TOSCA (Topology and Orchestration Specification for Cloud Applications) aims to enhance the portability of cloud applications and services by offering a generic approach to their description. Most TOSCA adopters, such as Cloudify, Alien4Cloud, or Indigo-DC use a DSL (domain-specific language) based on TOSCA and orchestrate using internal tools and scripts. The MiCADO cloud orchestration platform, developed in the EU H2020 Project COLA, takes a novel approach to TOSCA. An internal component translates from TOSCA to the native language of one of a number of already established orchestrators (Docker & Kubernetes for application containers, Terraform & Occopus for cloud resources), which are then executed to build and manage the application and its infrastructure. This approach offers more flexibility in choice of tool, while TOSCA still acts as a generic language for describing portable, reusable software.