+ All Categories
Home > Technology > Continuous Delivery in the AWS Cloud

Continuous Delivery in the AWS Cloud

Date post: 15-Jan-2015
Category:
Upload: nigel-fernandes
View: 3,174 times
Download: 2 times
Share this document with a friend
Description:
A presentation on Continuous Delivery by Fabio Lessa and Nigel Fernandes at the Amazon Web Services summit in Melbourne and in Sydney
Popular Tags:
70
Continuous Delivery in the cloud
Transcript
Page 1: Continuous Delivery in the AWS Cloud

Continuous Delivery in the

cloud

Page 2: Continuous Delivery in the AWS Cloud

@flessa

github.com/flessa

Page 3: Continuous Delivery in the AWS Cloud

@nigelfds

github.com/nigelfds

Page 4: Continuous Delivery in the AWS Cloud
Page 5: Continuous Delivery in the AWS Cloud

BIG IDEAS

Page 6: Continuous Delivery in the AWS Cloud

Real World Tested

Page 7: Continuous Delivery in the AWS Cloud

What are we talking about?

Page 8: Continuous Delivery in the AWS Cloud

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 9: Continuous Delivery in the AWS Cloud

Infrastructure as code

Page 10: Continuous Delivery in the AWS Cloud

Application

Environment

Infrastructure

Page 11: Continuous Delivery in the AWS Cloud
Page 12: Continuous Delivery in the AWS Cloud

consistency from development to production

accidental inconsistency

necessary inconsistency>>

deployment process

environment configuration

testing tools

Page 13: Continuous Delivery in the AWS Cloud

Automation

Page 14: Continuous Delivery in the AWS Cloud

Rebuild from code + data

Page 15: Continuous Delivery in the AWS Cloud
Page 16: Continuous Delivery in the AWS Cloud

Disk

CPUNetwork

Memory

Page 17: Continuous Delivery in the AWS Cloud
Page 18: Continuous Delivery in the AWS Cloud

Dev Ops

Dev Ops

Page 19: Continuous Delivery in the AWS Cloud

In short.

Page 20: Continuous Delivery in the AWS Cloud

1 2 3

Automate DevOpsInfrastructureas code

Page 21: Continuous Delivery in the AWS Cloud

continuous delivery

software always production readyreleases tied to business needs, not IT constraints

minimize the lead time from idea to liveconcept to cash

time

small feature chunks

Page 22: Continuous Delivery in the AWS Cloud

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 23: Continuous Delivery in the AWS Cloud

SampleApp

Sample Application for #AWS Tweets

Page 24: Continuous Delivery in the AWS Cloud

github.com/nigelfds/aws-twitter-feed

Page 25: Continuous Delivery in the AWS Cloud

WebApp

Java/JVM

Executable War

Unix Service

Native Packaging/RPM

~ 30 lines of code

Page 26: Continuous Delivery in the AWS Cloud

Lets see this working

Page 27: Continuous Delivery in the AWS Cloud
Page 28: Continuous Delivery in the AWS Cloud

I win with

Continuous Integration

Page 29: Continuous Delivery in the AWS Cloud

while (true) {if (change checked into vcs) then build & testsleep 60

}

Page 30: Continuous Delivery in the AWS Cloud

aws-twitter-feed repository

while (true) {if (change checked into vcs) then build & testsleep 60

}

RPM

Page 31: Continuous Delivery in the AWS Cloud

Building Useful Servers

Page 32: Continuous Delivery in the AWS Cloud

Application

Environment

Infrastructure

Page 33: Continuous Delivery in the AWS Cloud

Puppet is IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to patch management and compliance.

Page 34: Continuous Delivery in the AWS Cloud

Puppet definition for our GO machine

Page 35: Continuous Delivery in the AWS Cloud

Puppet definition continued…

Page 36: Continuous Delivery in the AWS Cloud

Don’t make the Version Control Sad

Page 37: Continuous Delivery in the AWS Cloud

github.com/nigelfds/configuration-master

Puppet definitions and AWS scripts

Page 38: Continuous Delivery in the AWS Cloud

To keep things moving, lets kick it off

Page 39: Continuous Delivery in the AWS Cloud

BuildServer

S3 Bucket

Nigel’s Laptop

Puppet & AWS scripts

Cloud Formation

APIs

PackagedScripts

Create Machine

Self Configured

Behind the scenes

Page 40: Continuous Delivery in the AWS Cloud

AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources.

Page 41: Continuous Delivery in the AWS Cloud

Once deployed, you can modify and update the AWS resources in a

controlled and predictable way allowing you to version control your AWS infrastructure in the same way as you version control your software

Page 42: Continuous Delivery in the AWS Cloud

Cloud Formation Template…… "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : "c1.medium", "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], "KeyName" : { "Ref" : "KeyName" }, "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}, "UserData": { "Ref": "BootScript" } } },……

Page 43: Continuous Delivery in the AWS Cloud

Creating the stack with CloudFormation

Name of the stack

Self configuration scripts (Invokes Puppet)

Create the stack

Page 44: Continuous Delivery in the AWS Cloud

Lets see how we’re doing

Page 45: Continuous Delivery in the AWS Cloud

Repeatable & Continuous

Page 46: Continuous Delivery in the AWS Cloud
Page 47: Continuous Delivery in the AWS Cloud

Puppet definition for our GO machine

Server Monitoring

Page 48: Continuous Delivery in the AWS Cloud

In Short

Page 49: Continuous Delivery in the AWS Cloud

Packaging for the target ( Using PMs)

Infrastructure as Code (Using )

Continuous Integration (Using )

Declarative Env. Conf. (Using )

Page 50: Continuous Delivery in the AWS Cloud

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 51: Continuous Delivery in the AWS Cloud

Everything works by itself

Page 52: Continuous Delivery in the AWS Cloud

But they need to work together

Page 53: Continuous Delivery in the AWS Cloud

=

Bring in the conductor

Page 54: Continuous Delivery in the AWS Cloud

Complex !

Page 55: Continuous Delivery in the AWS Cloud

How does this look in

Page 56: Continuous Delivery in the AWS Cloud
Page 57: Continuous Delivery in the AWS Cloud

AppServer

Cloud Formation

APIs

Behind the scenes

GOServer

Self Configured

Page 58: Continuous Delivery in the AWS Cloud

Create an AMI from the running instace

Creating the AMI

Save a reference to the Image IdDelete the running instance

Page 59: Continuous Delivery in the AWS Cloud

Lets see this on AWS

Page 60: Continuous Delivery in the AWS Cloud

Snapshot -> AMIsare awesome

Page 61: Continuous Delivery in the AWS Cloud

Boot Speed

Test=

Prod

QAInstances

Page 62: Continuous Delivery in the AWS Cloud

Ideas behind this workshop

Ideas in practice Continuous integration

System integration

Production deployment

Summary

Questions

Agenda

Page 63: Continuous Delivery in the AWS Cloud

To keep things moving, lets kick it off

Page 64: Continuous Delivery in the AWS Cloud

ELB

Autoscaling

APPV1.0

APPV1.0

APPV2.0

Terminate InstanceID-1

Remove ID-1

ID-1 ID-2ID-3

Terminate InstanceID-2

Remove ID-2

APPV2.0

ID-4

ZERO DOWNTIME !

Page 65: Continuous Delivery in the AWS Cloud

Lets see this working

Page 66: Continuous Delivery in the AWS Cloud

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 67: Continuous Delivery in the AWS Cloud

1 2 3

Automate DevOpsInfrastructureas codeContin

uous

Delivery !

Page 68: Continuous Delivery in the AWS Cloud

Thank you and …

Page 69: Continuous Delivery in the AWS Cloud

How? By fast, automated feedback on the production readiness of your applications every time there is a change whether code, infrastructure, configuration or database

Jez HumbleAuthor Continuous Delivery

Page 70: Continuous Delivery in the AWS Cloud

Ps. We’re hiring ;-)


Recommended