devops on aws · devops and continuous delivery automated deployments repeatable and safer smaller...

Post on 30-Sep-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related