AWS CodeCommit, CodeDeploy & CodePipeline

29
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Julien Simon, Principal Technical Evangelist [email protected] @julsimon 13/04/2016 AWS User Group Turkey AWS Code{Commit,Deploy,Pipeline} Based on DVO202 from AWS re:Invent 2015

Transcript of AWS CodeCommit, CodeDeploy & CodePipeline

Page 1: AWS CodeCommit, CodeDeploy & CodePipeline

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

Julien Simon, Principal Technical Evangelist [email protected]

@julsimon

13/04/2016 AWS User Group Turkey

AWS Code{Commit,Deploy,Pipeline} Based on DVO202 from AWS re:Invent 2015

Page 2: AWS CodeCommit, CodeDeploy & CodePipeline

What to expect from the session

The Amazon DevOps story Developer tools for everyone

•  AWS CodeDeploy •  AWS CodePipeline •  AWS CodeCommit

End-to-end demo with a simple web application

Page 3: AWS CodeCommit, CodeDeploy & CodePipeline

What is DevOps?

DevOps = anything that automates, accelerates, strengthens this lifecycle

developers customers

release test build

plan monitor

delivery pipeline

feedback loop

Software development lifecycle

Page 4: AWS CodeCommit, CodeDeploy & CodePipeline

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

The Amazon DevOps story

Page 5: AWS CodeCommit, CodeDeploy & CodePipeline
Page 6: AWS CodeCommit, CodeDeploy & CodePipeline

Monolith development lifecycle

developers

release test build

delivery pipeline app

Page 7: AWS CodeCommit, CodeDeploy & CodePipeline

Service-Oriented Architecture (SOA) Single-purpose Connected through APIs Highly decoupled “Microservices”

Page 8: AWS CodeCommit, CodeDeploy & CodePipeline

Two-pizza teams Full ownership Full accountability Aligned incentives “DevOps”

Page 9: AWS CodeCommit, CodeDeploy & CodePipeline

Missing tools

developers delivery pipeline services

???

Page 10: AWS CodeCommit, CodeDeploy & CodePipeline

Self-service Technology-agnostic Encourage best practices Single-purpose services

Page 11: AWS CodeCommit, CodeDeploy & CodePipeline

Deployment service No downtime deployments Health tracking Versioned artifacts and rollbacks

Page 12: AWS CodeCommit, CodeDeploy & CodePipeline

Pipelines Continuous delivery Automated release process Faster and more reliable releases >90% of teams

Page 13: AWS CodeCommit, CodeDeploy & CodePipeline

Microservice development lifecycle

developers delivery pipelines services

release test build

release test build

release test build

release test build

release test build

release test build

Page 14: AWS CodeCommit, CodeDeploy & CodePipeline

= 50 million deployments a year (1.5 deployment every second)

Thousands of teams × Microservice architecture

× Continuous delivery × Multiple environments

Page 15: AWS CodeCommit, CodeDeploy & CodePipeline

How can others do this?

Page 16: AWS CodeCommit, CodeDeploy & CodePipeline

Setting up a delivery pipeline

Testing Staging Production

deploy

deploy

deploy Source Build

release

AWS CodeDeploy

AWS CodePipeline

AWS CodeCommit

Page 17: AWS CodeCommit, CodeDeploy & CodePipeline

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

AWS Code Services

Page 18: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodeCommit

Use standard Git tools Scalability, availability, and durability of Amazon S3 Encryption at rest with customer-specific keys

git  pull/push   CodeCommit

Git objects in Amazon S3

Git index in Amazon DynamoDB

Encryption key in AWS KMS

SSH or HTTPS

Page 19: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodeDeploy

Easy and reliable deployments (zero downtime) Scale with ease Deploy to any server

Test CodeDeploy v1, v2, v3

Production

Dev

Page 20: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodeDeploy and EC2 Instances

•  CodeDeploy requires an agent, available for Linux and Windows

•  CodeDeploy can deploy to: •  On-premise instances (configuration required) •  Existing EC2 instances (configuration required) •  New EC2 instances pre-configured for CodeDeploy thanks to a

CloudFormation templates (no configuration required)

Page 21: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodeDeploy Key Components

Revision: versioned code + application specification file (AppSpec) Deployment group: a set of individual instances with a specific tag Deployment configuration: a set of rules and conditions used during a deployment Application: a name pointing to a revision, a deployment group and a deployment configuration

Page 22: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodeDeploy Key Components

Page 23: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodePipeline

Connect to best-of-breed tools Accelerate your release process Consistently verify each release

Build 1) Build 2) Unit test

1) Deploy 2) UI test

Source Beta Production 1) Deploy 2) Perf test

Gamma 1) Deploy canary 2) Deploy region 1 3) Deploy region 2

1) Pull

Page 24: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodePipeline Key Components

Stage: a specific part of the pipeline (source, build, etc.), containing a sequence of actions Action: a task performed on an artifact in a stage. Actions occur in a specified order, in sequence or in parallel Revision: a change made to a source that is configured in a source action Transition: moving a revision to the next stage in the pipeline

Page 25: AWS CodeCommit, CodeDeploy & CodePipeline

AWS CodePipeline Key Components

Page 26: AWS CodeCommit, CodeDeploy & CodePipeline

AWS Code partners

Page 27: AWS CodeCommit, CodeDeploy & CodePipeline

Hands on with the AWS Code services

CodeCommit source control

CodePipeline continuous delivery

CodeDeploy automated deployment

https://blogs.aws.amazon.com/application-management/post/Tx2CIB02ZO05ZII/Explore-Continuous-Delivery-in-AWS-with-the-Pipeline-Starter-Kit

Page 28: AWS CodeCommit, CodeDeploy & CodePipeline

Next steps

DEEP DIVE ON CODE DEPLOY @ AWS re:Invent 2015 AWS CodeDeploy: Automating Your Software Deployments (DVO306) LEARN MORE

aws.amazon.com/awscode AWS CodeDeploy & CodePipeline User Guides GET STARTED

console.aws.amazon.com J

Page 29: AWS CodeCommit, CodeDeploy & CodePipeline

Thank you!

Julien Simon, Principal Technical Evangelist [email protected]

@julsimon