Abstract
The market of cloud computing encompasses an
ever-growing number of cloud providers offering a multitude
of infrastructure-as-a-service (IaaS) and platform-as-a-service
(PaaS) solutions. The heterogeneity of these solutions hinders
the proper exploitation of cloud computing since it prevents
interoperability and promotes vendor lock-in, which increases
the complexity of executing and managing multi-cloud applications
(i.e., applications that can be deployed across multiple
cloud infrastructures and platforms). Providers of multi-cloud
applications seek to exploit the peculiarities of each cloud solution
and to combine the delivery models of IaaS and PaaS in order
to optimise performance, availability, and cost. In this paper,
we show how the Cloud Modelling Framework leverages upon
model-driven engineering to tame this complexity by providing:
(i) a tool-supported domain-specific language for specifying the
provisioning and deployment of multi-cloud applications, and (ii)
a models@run-time environment for enacting the provisioning,
deployment, and adaptation of these applications
ever-growing number of cloud providers offering a multitude
of infrastructure-as-a-service (IaaS) and platform-as-a-service
(PaaS) solutions. The heterogeneity of these solutions hinders
the proper exploitation of cloud computing since it prevents
interoperability and promotes vendor lock-in, which increases
the complexity of executing and managing multi-cloud applications
(i.e., applications that can be deployed across multiple
cloud infrastructures and platforms). Providers of multi-cloud
applications seek to exploit the peculiarities of each cloud solution
and to combine the delivery models of IaaS and PaaS in order
to optimise performance, availability, and cost. In this paper,
we show how the Cloud Modelling Framework leverages upon
model-driven engineering to tame this complexity by providing:
(i) a tool-supported domain-specific language for specifying the
provisioning and deployment of multi-cloud applications, and (ii)
a models@run-time environment for enacting the provisioning,
deployment, and adaptation of these applications