s Technology for a better society
Cloud Modelling Language (CloudML)
Alessandro Rossini
INF5120
6 May 2013
s Technology for a better society
Alessandro Rossini
Education • 2004-2006 M.Sc., Università dell'Aquila (Italia) Universitetet i Bergen • 2008-2011 Ph.D., Universitetet i Bergen Employment • 2007 Software engineer, Integrator, Bergen • 2008-2012 Research fellow, Universitetet i Bergen • 2012 Lecturer, Høgskolen i Bergen • 2012- Research scientist, SINTEF, Oslo
s Technology for a better society
Cloud computing
s Technology for a better society
Cloud computing
A computing model enabling ubiquitous network access to a shared and virtualised pool of
computing capabilities (e.g., network, storage, processing, and memory) that can be rapidly provisioned with minimal management effort
source: NIST
s Technology for a better society
source: Graviant
s Technology for a better society
Applications
Data
Run-time
OS
Virtualisation
Servers
Storage
Network
Applications
Data
Run-time
OS
Virtualisation
Servers
Storage
Network
Applications
Data
Run-time
OS
Virtualisation
Servers
Storage
Network
Cons
umer
Pr
ovid
er
Cons
umer
Pr
ovid
er
Prov
ider
IaaS PaaS SaaS
s Technology for a better society
Benefits
• Scalability
• Performance
• Availability
• Cost
s Technology for a better society
Challenges
• Heterogeneity
• Incompatibility
• Lack of standards
• Lack of methodologies
s Technology for a better society
CloudML
s Technology for a better society
Cloudify Cloud Foundry Scalr
jclouds Simple Cloud Deltacloud
Amazon AWS OpenStack vCloud
Amazon AWS Rackspace
IBM SmartCloud Terramark
…
…
…
…
Frameworks
Libraries
Stacks
PaaS
IaaS
s Technology for a better society
CloudML
• Domain-specific language (DSL) for modelling the provisioning and deployment of multi-cloud systems at design-time
• Models@run-time environment for enacting the provisioning and deployment of these systems at run-time
s Technology for a better society
EU Projects
• MODAClouds
• PaaSage
• REMICS
s Technology for a better society
Resources
• http://cloudml.org (overhaul coming soon)
• https://github.com/SINTEF-9012/cloudml/
s Technology for a better society
Design-time
s Technology for a better society
Cloud Provider-Independent Model (CPIM)
s Technology for a better society
CPIM
• Generic provisioning and deployment model that is independent of the cloud provider
• Consists of node types and artefacts types
s Technology for a better society
Node type
• Generic virtual machine – a virtual machine running GNU/Linux
s Technology for a better society
Node type
• Provisioning requirements – 2 cores ≤ compute ≤ 4 cores
– 2 GiB ≤ memory ≤ 4 GiB
– storage ≥ 10 GiB
– location = Europe
s Technology for a better society
Node type example (JSON) "nodeTypes": [
{
"id": "SmallGNULinux",
"os": "GNULinux",
"compute": [ 2, 4 ],
"memory": [ 2048, 4096 ],
"storage": [ 10240 ],
"location": "eu",
"provides": [
{ "id": "SSHCapability" }
]
}
]
s Technology for a better society
Artefact types
• Generic component of the application – a Java servlet of an application for document
collaboration
– a Jetty container
– a MongoDB database
s Technology for a better society
Artefact types
• Deployment commands – retrieve the Java servlet from cloudml.org
– configure it
– run it
s Technology for a better society
Artefact types
• Deployment dependencies – the Jetty container and the MongoDB database have
to be deployed before the Java servlet
s Technology for a better society
Artefact types
• Communication channels – a Java servlet communicates with another Java
servlet through Hypertext Transfer Protocol Secure (HTTPS) on port 443
s Technology for a better society
Artefact A Artefact B
Artefact C
Provided applicative capability
Communication channel
Required applicative capability
Provided deployment capability
Required deployment capability
Dependency
Resources (binaries, scripts, etc.)
s Technology for a better society
Artefact type example (JSON) "artefactTypes": [
{
"id": "MongoDB",
"retrieval": "wget http://cloudml.org/services/mongodb.sh",
"deployment": "sudo mongodb.sh",
"provides": [
{ "id": "MongoDBCapability" }
]
},
…
s Technology for a better society
Artefact type example (JSON) …
{
"id": "Jetty",
"retrieval": "wget http://cloudml.org/services/jetty.sh",
"deployment": "sudo jetty.sh",
"provides": [
{ "id": "JettyCapability" }
]
},
…
s Technology for a better society
Artefact type example (JSON) …
{
"id": "Docs",
"retrieval": "wget http://cloudml.org/apps/docs.war; wget http://cloudml.org/apps/docs_configure.sh; wget http://cloudml.org/apps/docs_deploy.sh",
"configuration": "sudo docs_configure.sh",
"deployment": "sudo docs_deploy.sh",
"requires": [
{ "id": "JettyCapability" },
{ "id": "MongoDBCapability" }
]
}
]
s Technology for a better society
Cloud Provider-Specific Model (CPSM)
s Technology for a better society
CPSM
• Specific provisioning and deployment model that is dependent on the cloud provider
• Consists of node instances and artefact instances
s Technology for a better society
Node instance
• Instance of a virtual machine on a specific cloud provider – a virtual machine running GNU/Linux on Amazon EC2
s Technology for a better society
Node instance example (JSON) "nodeInstances": [
{
"id": "aws1",
"type": "SmallGNULinux",
"provider": "aws-ec2",
"provides": [
{
"id": "ssh1",
"type": "SSHCapability"
}
]
}
]
s Technology for a better society
Artefact instance
• Instance of a component of the application on a specific virtual machine – an instance of the Java servlet on the virtual
machine above
– an instance of the Jetty container on …
– an instance of the MongoDB database on …
s Technology for a better society
Artefact instance example (JSON) "artefactInstances": [
{
"id": "mongodb1",
"type": "MongoDB",
"provides": [
{
"id": "mongodb1",
"type": "MongoDBCapability"
}
]
},
…
s Technology for a better society
Artefact instance example (JSON) …
{
"id": "jetty1",
"type": "Jetty",
"provides": [
{
"id": "jetty1",
"type": "JettyCapability"
}
]
},
…
s Technology for a better society
Artefact instance example (JSON) …
{
"id": "docs1",
"type": "Docs",
"destination": "aws1",
"requires": [
{ "id": "jetty1" },
{ "id": "mongodb1" }
]
}
]
s Technology for a better society
Cloud Provider-Independent Model
Cloud Provider-Specific Model
Models@run-time
Provisioning and Deployment
JSON XMI
jclouds
…
Cloudify
Amazon AWS
…
Rackspace …
s Technology for a better society
Run-time
s Technology for a better society
Models@run-time
• CPSM causally connected to the running system
• A change in the CPSM is reflected on-demand in the running system
• A change in the running system is automatically reflected in the CPSM
s Technology for a better society
Models@run-time
Provisioning and Deployment
Current CPSM Adaptation
Target CPSM
Reasoning Model Checking
Target CPSM
Diff
s Technology for a better society
Provisioning and deployment
• Provisioning requirements
• Deployment commands
• Deployment dependencies
• Communication channels
• Expressed with CloudML
s Technology for a better society
Service-Level Agreement (SLA)
• Internal QoS requirements – compute load ≤ 90%
– memory load ≤ 90%
• External QoS requirements – response time ≤ 1s
• Not expressed with CloudML
s Technology for a better society
Service-Level Agreement (SLA)
• Adaptation rules – if response time > 1s then scale out by provisioning a
new virtual machine
– if compute load ≤ 10% then scale down by deprovisioning an existing virtual machine
• Not expressed with CloudML, but enacted through CloudML
s Technology for a better society
Reference
Nicolas Ferry, Alessandro Rossini, Franck Chauvel, Brice Morin, Arnor Solberg
Towards model-driven provisioning, deployment, monitoring, and adaptation of multi-cloud systems
In IEEE CLOUD 2013
To appear
s Technology for a better society
Demo
s Technology for a better society
Thank you!
? Follow me:
twitter.com/alerossini
alessandrorossini.org