Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
DevOps on AWS:Getting Started
Wes Novack
● Cloud Architect and Engineer
● 5+ years AWS experience
● 17+ years IT industry experience
@WesleyTech
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
DevOps and Continuous Delivery
Automated deployments
Repeatable and safer
Smaller change sizes
Deploy more frequently
Faster feedback loops
Learn and react quicker
Deliver more value
AWS Developer Tools
AWS Developer Tools
AWS Continuous Delivery Tools
AWS Developer Tools
AWS Continuous Delivery Tools
Code Suite
AWS Developer Tools
AWS Continuous Delivery Tools
Code Suite
Code *
CodeDeploy
AWS Developer Tools
CodeDeploy
AWS Developer Tools
CodeBuild
CodeDeploy
AWS Developer Tools
CodeBuild CodePipeline
Benefits of CodeDeploy
Automate your deployments
Fully managed serverless service
Free within AWS
$0.02 per on-premises instance update
Centralize control
Versatile
Benefits of CodeDeploy
Automate your deployments
Fully managed serverless service
Free within AWS
$0.02 per on-premises instance update
Centralize control
Versatile
Benefits of CodeDeploy
Automate your deployments
Fully managed serverless service
Free within AWS
$0.02 per on-premises instance update
Centralize control
Versatile
Benefits of CodeDeploy
Automate your deployments
Fully managed serverless service
Free within AWS
$0.02 per on-premises instance update
Centralize control
Versatile
Benefits of CodeDeploy
Automate your deployments
Fully managed serverless service
Free within AWS
$0.02 per on-premises instance update
Centralize control
Versatile
Benefits of CodeDeploy
Automate your deployments
Fully managed serverless service
Free within AWS
$0.02 per on-premises instance update
Centralize control
Versatile
ApplicationThe core component
CodeDeploy Components
Deployment GroupA target for your
deployment
DeploymentRoll out an app
revision
AppSpec File: appspec.yml
version: 0.0os: linuxfiles: - source: /src destination: /var/www/html
AppSpec File: appspec.yml
version: 0.0os: linuxfiles: - source: /src destination: /var/www/htmlhooks: BeforeInstall: - location: scripts/before_install.sh timeout: 300 runas: root
AppSpec File: appspec.yml
Install CodeDeploy - Red Hat
#!/bin/bash -xe
Install CodeDeploy - Red Hat
#!/bin/bash -xeyum install -y ruby
Install CodeDeploy - Red Hat
#!/bin/bash -xeyum install -y ruby
cd /optcurl -O https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/install
Install CodeDeploy - Red Hat
#!/bin/bash -xeyum install -y ruby
cd /optcurl -O https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/install
chmod +x ./install./install auto
Install CodeDeploy - Red Hat
CodeDeploy
Connecting All the Pieces
CodeDeploy
Connecting All the Pieces
IAM
CodeDeploy EC2
Connecting All the Pieces
IAM
CodeDeploy EC2
Connecting All the Pieces
IAM
agent
CodeDeploy EC2
Connecting All the Pieces
IAM
agent IAM
CodeDeploy EC2
Connecting All the Pieces
IAM
GitHub or S3
agent IAM
CodeDeploy EC2
Connecting All the Pieces
IAM
GitHub or S3
Revisionsagent IAM
CodeDeploy
ELB
EC2
Connecting All the Pieces
IAM
GitHub or S3
Revisionsagent IAM
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tight AWS integrations
Extensible
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tight AWS integrations
Extensible
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tight AWS integrations
Extensible
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tight AWS integrations
Extensible
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tight AWS integrations
Extensible
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tightly knit AWS integrations
Extensible
Benefits of CodeBuild
Fully managed build service
Elastic scaling
Pay only for build time used
CLI and API driven
Define builds as code
Tightly knit AWS integrations
Extensible
How Is CodeBuild Used in a CI/CD pipeline?
Runs builds
How Is CodeBuild Used in a CI/CD pipeline?
Static code analysis
Runs builds
How Is CodeBuild Used in a CI/CD pipeline?
Static code analysis
Compiles codeRuns builds
How Is CodeBuild Used in a CI/CD pipeline?
Runs testsStatic code analysis
Compiles codeRuns builds
How Is CodeBuild Used in a CI/CD pipeline?
Runs testsStatic code analysis
Publishes artifactsCompiles codeRuns builds
How Is CodeBuild Used in a CI/CD pipeline?
Sends notificationsRuns testsStatic code
analysis
Publishes artifactsCompiles codeRuns builds
How Is CodeBuild Used in a CI/CD pipeline?
CodeBuild Components
Build projectThe definition of your project
CodeBuild Components
Build projectThe definition of your project
Build or Build runAn execution of your Build
project
CodeBuild Components
Connecting All the Pieces
CodeBuild
Connecting All the Pieces
CodeBuild
Connecting All the Pieces
Projects
CodeBuild
Connecting All the Pieces
Projects Builds
CodeBuild
Connecting All the Pieces
Git repo or S3
SourceProjects Builds
CodeBuild
Connecting All the Pieces
Git repo or S3
SourceProjects Builds
CodeBuild
Connecting All the Pieces
Git repo or S3
Source
Artifact store
Projects Builds
Build Spec File: buildspec.yml
version: 0.2
Build Spec File: buildspec.yml
version: 0.2env: variables: key: “value” parameter-store: key: “value”
Build Spec File: buildspec.yml
version: 0.2env: variables: key: “value” parameter-store: key: “value”phases: build: commands: - compile commands - test commands
Build Spec File: buildspec.yml
version: 0.2env: variables: key: “value” parameter-store: key: “value”phases: build: commands: - compile commands - test commandsartifacts: files: - target/messageUtil-1.0.jar
Build Spec File: buildspec.yml
Benefits of CodeDeploy
? ? ?
Benefits of CodePipeline
Fully managed pipeline service
Pay only for active pipelines
Tightly knit AWS integrations
Third party developer tool actions
Extensible via Lambda and custom actions
Benefits of CodePipeline
Fully managed pipeline service
Pay only for active pipelines
Tightly knit AWS integrations
Third party developer tool actions
Extensible via Lambda and custom actions
Benefits of CodePipeline
Fully managed pipeline service
Pay only for active pipelines
Tightly knit AWS integrations
Third party developer tool actions
Extensible via Lambda and custom actions
Benefits of CodePipeline
Fully managed pipeline service
Pay only for active pipelines
Tightly knit AWS integrations
Third party developer tool actions
Extensible via Lambda and custom actions
Benefits of CodePipeline
Fully managed pipeline service
Pay only for active pipelines
Tightly knit AWS integrations
Third party developer tool actions
Extensible via Lambda and custom actions
CodePipeline Components
PipelinesThe definitions of software
release processes
CodePipeline Components
PipelinesThe definitions of software
release processes
ExecutionsThe invocations of a defined
pipeline
CodePipeline Components
Pipeline Components
StagesA collection of action groups that contain
actions
Pipeline Components
TransitionsThe connections between stages
StagesA collection of action groups that contain
actions
Pipeline Components
ArtifactsBundles of code
produced by a stage and ingested by another stage
TransitionsThe connections between stages
StagesA collection of action groups that contain
actions
Pipeline Components
A CodePipeline Stage
Pipeline Stage
A CodePipeline Stage
Action Group
Pipeline Stage
A CodePipeline Stage
Action Group
Pipeline Stage
Action Group
A CodePipeline Stage
Action Group
Actions
Pipeline Stage
Action Group
A CodePipeline Stage
Action Group
Actions
Pipeline Stage
Action Group
A CodePipeline Stage
Action Group
Actions
Pipeline Stage
Action Group
Actions
A CodePipeline Stage
Action Group
Actions
Pipeline Stage
Action Group
Actions
A CodePipeline Stage
Action Group
Actions
Pipeline Stage
Action Group
Actions
runOrder: 1
runOrder: 1
A CodePipeline Stage
Action Group
Actions
Pipeline Stage
Action Group
Actions
runOrder: 1
runOrder: 1
runOrder: 2
runOrder: 2
Visualizing CodePipeline
Pipeline
Visualizing CodePipeline
Source Stage
Pipeline
Visualizing CodePipeline
Source Stage
Action Group
GitHubaction
Pipeline
Visualizing CodePipeline
Transition
Source Stage
Action Group
GitHubaction
Build Stage
Pipeline
Visualizing CodePipeline
Transition
Source Stage
Action Group
GitHubaction
Build Stage
Action Group
CodeBuildaction
Pipeline
Visualizing CodePipeline
Transition
Source Stage
Action Group
GitHubaction
Build Stage
Action Group
CodeBuildaction
Deploy Stage
Action Group
CodeDeployaction
Transition
Pipeline
Visualizing CodePipeline
Transition
Source Stage
Action Group
GitHubaction
Build Stage
Action Group
CodeBuildaction
Deploy Stage
Action Group
CodeDeployaction
Transition
Pipeline
Action Types
Source Action
Action Types
Source Action Build Action
Action Types
Test ActionSource Action Build Action
Action Types
Test ActionSource Action Build Action
Deploy Action
Action Types
Test Action
Approval Action
Source Action Build Action
Deploy Action
Action Types
Test Action
Approval Action
Source Action Build Action
Deploy Action Invoke Action
Action Types
AWS Paths & Courses
QUESTIONS?
THANK YOU
Resources
Pluralsight Course, DevOps on AWS: Getting Started
https://www.pluralsight.com/courses/aws-operations-devops-getting-started
Pluralsight Path, AWS Certified DevOps Engineer – Professional
https://www.pluralsight.com/paths/aws-certified-devops-engineer
Pluralsight AWS Paths
https://www.pluralsight.com/search?q=AWS%20paths
Codedeploy-demo repository
https://github.com/wes-novack/codedeploy-demo
Codebuild-demo repository
https://github.com/wes-novack/codebuild-demo