(DVO306) AWS CodeDeploy: Automating Your Software Deployments

Preview:

Citation preview

© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Andy Troutman, SDM Deployment Services

Josh McFarlane, Senior SDE Deployment Services

October 7 2015

AWS CodeDeploy:Automating Your Software Deployments

DVO 306

(Where my dogs at?)

We’re quitting!

(No we aren’t, don’t believe him!)

We got the business plan together…

1. Dog addressable market - 525 million dogs

2. Dogs need suits

3. The existing dog suit market is ready to be disrupted…

the quality of dog fashion lacks our unique perspective.

We’re not selling dog suites, we’re selling a lifestyle.

4. ???

5. Profit.

Building Block Service

1. Easy to

integrate

2. Available

everywhere

3. Scaled for

our biggest

customers

Application

“Any collection of content that you want

to distribute to your servers in a single

deployment”

Web Server

Framework

Content

Deployment Group

“A collection of instances you want

to deploy to as a group”

Dev Test Prod

v2.0 v1.2 v1.1

v2.0 v1.2 v1.1

v2.0 v1.2 v1.1

AppSpec fileos: linux

files:

- source: Config/config.txt

destination: webapps/Config

- source: Service

destination: /webapps/DogSuit

hooks:

ApplicationStop:

- location: Scripts/Deactivate_Service

BeforeInstall:

- location: Scripts/Flush_Logs.sh

AfterInstall:

- location: Scripts/Decrypt_Secrets.sh

ApplicationStart:

- location: Scripts/Start_Pooch_Style_Service.sh

timeout: 3600

ValidateService:

- location: Scripts/Check_Dogs_Barking.sh

runas: codedeployuser

AppSpec fileos: linux

files:

- source: Config/config.txt

destination: webapps/Config

- source: Service

destination: /webapps/DogSuit

hooks:

ApplicationStop:

- location: Scripts/Deactivate_Service

BeforeInstall:

- location: Scripts/Flush_Logs.sh

AfterInstall:

- location: Scripts/Decrypt_Secrets.sh

ApplicationStart:

- location: Scripts/Start_Pooch_Style_Service.sh

timeout: 3600

ValidateService:

- location: Scripts/Check_Dogs_Barking.sh

runas: codedeployuser

AppSpec fileos: linux

files:

- source: Config/config.txt

destination: webapps/Config

- source: Service

destination: /webapps/DogSuit

hooks:

ApplicationStop:

- location: Scripts/Deactivate_Service

BeforeInstall:

- location: Scripts/Flush_Logs.sh

AfterInstall:

- location: Scripts/Decrypt_Secrets.sh

ApplicationStart:

- location: Scripts/Start_Pooch_Service.sh

timeout: 3600

ValidateService:

- location: Scripts/Check_Dogs_Barking.sh

runas: codedeployuser

ApplicationStop

BeforeInstall

AfterInstall

ApplicationStart

ValidateService

DownloadBundle

Install

Start

End

Deployment Config

v2 v2 v2 v2 v2 v2 v2 v2All-at-onceMin. healthy hosts = 0

v2 v2 v2 v2 v1 v1 v1 v1Half-at-a-timeMin. healthy hosts = 50%

v2 v2 v1 v1 v1 v1 v1 v1[Custom]Min. healthy hosts = 75%

v2 v1 v1 v1 v1 v1 v1 v1One-at-a-timeMin. healthy hosts = 99%

• minimal host footprint

• quick to get started

• little to no automated

validation

Development

(Early fit algorithm needs work.)

Development

• Minimal host footprint

• quick to get started

• little to no automated

validation

• Host footprint enables

load testing

• Debug messaging

present

• Automated validation

Test

(Dated style, but good fit)

What’s changing in test?

Auto Scaling supportRequest Routing with ELBValidation and testing

• Over scaled for

production workloads

• Debugging through

logs

• More validation

Production

(Looking Sharp.)

if [ "$DEPLOYMENT_GROUP_NAME" == “Production" ] then

/user/bin/ConfigSalesBanner

fi

How do deployments change to Production?

Large Fleets, with redundancyCustom Deployment Configs

“1/3 at a time”

Environment Variables

Test ProductionDevelopment

(See you at the launch party!)

CloudFormation Support

What else can we do with CodeDeploy?

Reactive DeploymentsCI/CD and Config MGMT PartnersMultiple Platforms

Thank you!

Remember to complete

your evaluations!

Recommended