Upload
wso2
View
356
Download
4
Tags:
Embed Size (px)
Citation preview
Committer and PMC member of Apache StratosSenior Software Engineer, WSO2
Sajith Kariyawasam
Cloud Bursting with Apache Stratos
Committer and PMC member of Apache StratosSoftware Engineer, WSO2
Udara Liyanage
*
Agenda
• What is cloud-bursting• Why cloud bursting is needed• Partition and Deployment Policy concept in
Apache Stratos• How to enable cloud bursting in Apache Stratos• Cloud bursting scenarios• Demonstration of PHP cartridge burst into EC2
and Openstack• Q&A, Discussion
*
What is Cloud Bursting ?
An application model where organizations can utilize the compute resources of one cloud and burst into another cloud when the demand for compute resources exceeds the limit allowed in the current cloud.
*
Why cloud bursting ?
๏ Allows organizations to seamlessly handle excess workloads
๏ Pay for the additional compute resources only when they are needed
๏ Provides high availability
*
Partitions and Policies in Apache Stratos
What is a Partition?๏ Logically group IaaS resource locations๏ Partitions are important to make application high availability๏ Cartridge instances are spawned inside these partitions๏ Partitions are defined by DevOps
What is a network partition?๏ Logical groups multiple partitions, that are in the same network๏ Stratos will spawn Load Balancers per network partition๏ Since LB instances and cartridge instances reside in same network,
they can communicate using private IP addresses๏ Used in deployment policies
*
Partition{
"id": "AWSEC2AsiaPacificPartition1",
"provider": "ec2",
"property": [
{
"name": "region",
"value": "ap-southeast-1"
}
]
}
*
Deployment Policy{ "id": "myTestDepPolicy", "partitionGroup": { "id": "ec2Openstack", "partitionAlgo": "one-after-another", "partition": [ { "id": "AWSEC2AsiaPacificPartition1", "partitionMax": "1", "partitionMin": "1" }, { "id": "OpenstackPartition1", "partitionMax": "1", "partitionMin": "0" } ] }}
*
Autoscaling Policy "id": "simpleAutoscalePolicy",
"loadThresholds": {
"requestsInFlight": {
"average": "100",
"gradient": "0",
},
"memoryConsumption": {
"average": "600",
"gradient": "0",
},
"loadAverage": {
"average": "300",
"gradient": "0",
}
}
}
*
Enabling multiple IaaS <iaasProvider type="ec2" name="ec2 specific details">
<className>org.apache.stratos.cloud.controller.iaases.AWSEC2Iaas</className>
<provider>aws-ec2</provider>
<identity svns:secretAlias="elastic.scaler.openstack.identity">###########</identity>
<credential svns:secretAlias="elastic.scaler.openstack.credential">################</credential>
<property name="jclouds.ec2.ami-query" value="owner-id=123456;state=available;image-type=machine"/>
<property name="availabilityZone" value="ap-southeast-1b"/>
<property name="securityGroups" value="test_security_group"/>
<property name="autoAssignIp" value="true" />
<property name="keyPair" value="my_key_pair"/>
</iaasProvider>
<iaasProvider type="openstack" name="openstack specific details">
<className>org.apache.stratos.cloud.controller.iaases.OpenstackNovaIaas</className>
<provider>openstack-nova</provider>
<identity svns:secretAlias="cloud.controller.openstack.identity">user:user</identity>
<credential svns:secretAlias="cloud.controller.openstack.credential">abcdef</credential>
<property name="jclouds.endpoint" value="http://openstack:5000/v2.0" />
<property name="jclouds.openstack-nova.auto-create-floating-ips" value="false"/>
<property name="jclouds.api-version" value="2.0/" />
</iaasProvider>
*
Cloud bursting scenarios
• Cloud busting from a private cloud into a public cloud (eg: From an on-premise OpenStack cloud, to a public EC2 cloud)
• Cloud bursting from one private cloud into another private cloud (eg: From an on-premise OpenStack cloud, to another on-premise OpenStack cloud)
• Cloud bursting from one public cloud into another public cloud (eg: From a public EC2 cloud to another public EC2 cloud )
*
*
Demo
*
DISCUSSION
*
Thank You!