Continuous Cloud Integration
We want to automate the deployment of newly assembled bits into AWS.
Ensure that QA has a suitable testing environment always available. We can also use this technique to control production deployments.
Combine Bamboo Deployment Plans with Amazon ECS.
Atlassian's Continuous Delivery offering that we use to automate our builds. We are currently using the 5.9.7 build 5920 - 14 Oct 15 version.
Amazon's Elastic Container Service. Automatic Docker container scheduling. Requires a cluster of EC2 instances.
Zone A
Zone B
Cluster
EC2
EC2
EC2
EC2
{
"cluster": "${clusterName}",
"serviceName": "${serviceName}",
"taskDefinition": "${family}",
"loadBalancers": [
{
"loadBalancerName": "${loadBalancerName}",
"containerName": "${containerName}",
"containerPort": 8080
}
],
"desiredCount": ${desiredCount},
"clientToken": "${clientToken}",
"role": "${ecsInstanceRole}",
"deploymentConfiguration": {
"maximumPercent": 200,
"minimumHealthyPercent": 25
}
}
{
"family": "${family}",
"containerDefinitions": [
{
"name": "${containerName}",
"image": "${registry}/${imageName}:${imageTag}",
"memory": 256,
"portMappings": [
{
"containerPort": 8080,
"hostPort": 1234,
"protocol": "tcp"
}
],
"essential": true,
"hostname": "${containerName}",
"dockerLabels": {
"release": "${imageTag}"
}
}
]
}
{
"cluster": "${clusterName}",
"service": "${serviceName}",
"desiredCount": ${desiredCount},
"taskDefinition": "${family}",
"deploymentConfiguration": {
"maximumPercent": 200,
"minimumHealthyPercent": 25
}
}