diff --git a/Code/_CodeDeploy.md b/Code/_CodeDeploy.md index cdbd554..526d827 100644 --- a/Code/_CodeDeploy.md +++ b/Code/_CodeDeploy.md @@ -25,3 +25,19 @@ Contains the deployment actions that CodeDeploy should execute during deployment ### Revision This is everything required to deploy a new version: AppSpec file, application files, configuration files, executables. + +## Deployments +### In-Place +- The app on each instance in the deployment group is **stopped**. +- The latest app revision is installed, and the new version of the application is started and validated. +- You can use a **load balancer** so that each instance is unregistered during its deployment and then restored to service after the deployment is complete. +- ==Only deployments that use the EC2/On-Premises compute platform can use in-place deployments.== + +### Blue/Green +- Instances are provisioned for the replacement environment. +- The latest application version is installed on the replacement instances +- An optional wait time occurs for activities such as application testing and system verification. +- Instances in the replacement environment are registered with an ELB, causing traffic to be rerouted to them. +- Instances in the original environment are unregistered and can be terminated or kept running for other uses. + + diff --git a/_Concepts/Deployments.md b/_Concepts/Deployments.md new file mode 100644 index 0000000..9ddec01 --- /dev/null +++ b/_Concepts/Deployments.md @@ -0,0 +1,24 @@ +# Deployments + +[[_CodeDeploy|CodeDeploy]] +[[_Elastic BeanStalk|_Elastic BeanStalk]] + +| Service | Kind | Impact | Description | Service Scope | +|---|---|--|---|--| +| `CodeDeploy` | In-place | Lowered Capacity | Stops apps on _every_ instance, installs latest version, then new version is started and then validated. Can be used in conjunction with a load balancer so that each instance is unregistered before update and the reregistered after being verified. | EC2 / On-Prem. | +| `CodeDeploy` | Blue/Green | Higher Cost | Make a new set of instances, install the latest version, start the latest version and then validate them. Once validated, they replace and existing instance in the ELB. The old instances can be terminated or kept running. | EC2 / On-Prem, Lambda & ECS. | +| `ElasticBeanstalk` | All at Once | Downtime | Default policy. Takes everything out of service. Recreates the instances and boots them again. Fastest deployment for EB. | EB | +| `ElasticBeanstalk` | Rolling | Lowered Capacity | Slowly switch out instances over time. Safer than **All at Once**. | EB | +| `ElasticBeanstalk` | Rolling with Aditional Batches | Higher Cost | You spin up an extra batch. Then you switch out the old instances over time until one is left, which you discard. | EB | +| `ElasticBeanstalk` | Immutable | Higher Cost | You spin up an entire extra Auto Scailing Group, then once ready, point the ELB to the new ASG. The safest way to deploy applications because the old instances remain. | EB | +| `ElasticBeanstalk` | Blue/Green | Higher Cost | You spin up an entire extra ELB, then switch out the URLs. | EB | +| `ElasticBeanstalk` | Traffic Shifting | Higher Cost | You spin up and extra ELB, the split the traffic between the two, until you are satisfied your application works. | EB | +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| .............................................................................................................................................. | | | | | + + +