last conference - dev-ops and continuous delivery

58
i.e. Applied DevOps Continuous Delivery in the cloud

Upload: nigel-fernandes

Post on 24-Jun-2015

2.627 views

Category:

Technology


5 download

DESCRIPTION

This is a talk I gave at the Lean, Agile and Systems Thinking conference in Melbourne, July 2012. http://www.lastconference.com/ Covering DevOps as a movement. Ideas behind continuous delivery and a sample implementation covering some of those principles in practise using Puppet and Amazon Web Services.

TRANSCRIPT

Page 1: LAST Conference - Dev-Ops and Continuous Delivery

i.e. Applied DevOps

Continuous Deliveryin the cloud

Page 2: LAST Conference - Dev-Ops and Continuous Delivery

@nigelfds

github.com/nigelfds

Page 3: LAST Conference - Dev-Ops and Continuous Delivery
Page 4: LAST Conference - Dev-Ops and Continuous Delivery

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 5: LAST Conference - Dev-Ops and Continuous Delivery

Dev Ops

Dev Ops

Page 6: LAST Conference - Dev-Ops and Continuous Delivery

Devops is not something you build, it’s something you do

#devops

Page 7: LAST Conference - Dev-Ops and Continuous Delivery

“Some people get stuck on the word ‘devops’, thinking that it’s just about development and operations working together. Systems thinking advises us to optimize the whole; therefore devops must apply to the whole organization, not only the part between development and operations.”

— Patrick Debois

Page 8: LAST Conference - Dev-Ops and Continuous Delivery
Page 9: LAST Conference - Dev-Ops and Continuous Delivery
Page 10: LAST Conference - Dev-Ops and Continuous Delivery

How do you improve the delivery process?

Page 11: LAST Conference - Dev-Ops and Continuous Delivery

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 12: LAST Conference - Dev-Ops and Continuous Delivery

We shall do Continuous Delivery

Great Message!

Page 13: LAST Conference - Dev-Ops and Continuous Delivery

Automated implementation of your system’s build, deploy, test, and approval processes.

Page 14: LAST Conference - Dev-Ops and Continuous Delivery
Page 15: LAST Conference - Dev-Ops and Continuous Delivery

Automate

Infrastructureas code

Configuration Management

Page 16: LAST Conference - Dev-Ops and Continuous Delivery

Application

Environment

Infrastructure

Page 17: LAST Conference - Dev-Ops and Continuous Delivery

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 18: LAST Conference - Dev-Ops and Continuous Delivery

SampleApp

Sample Application for #AWS Tweets

Page 19: LAST Conference - Dev-Ops and Continuous Delivery

github.com/nigelfds/aws-twitter-feed

Page 20: LAST Conference - Dev-Ops and Continuous Delivery
Page 21: LAST Conference - Dev-Ops and Continuous Delivery

I win with

Continuous Integration

Page 22: LAST Conference - Dev-Ops and Continuous Delivery

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

}

Page 23: LAST Conference - Dev-Ops and Continuous Delivery

aws-twitter-feed repository

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

}

RPM

Page 24: LAST Conference - Dev-Ops and Continuous Delivery

aws-twitter-feed repository

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

}

RPM

Page 25: LAST Conference - Dev-Ops and Continuous Delivery

Building Useful Servers

Page 26: LAST Conference - Dev-Ops and Continuous Delivery

Application

Environment

Infrastructure

Page 27: LAST Conference - Dev-Ops and Continuous Delivery

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

Page 28: LAST Conference - Dev-Ops and Continuous Delivery

Puppet definition for our GO machine

Page 29: LAST Conference - Dev-Ops and Continuous Delivery

Don’t make the Version Control Sad

Page 30: LAST Conference - Dev-Ops and Continuous Delivery

github.com/nigelfds/configuration-master

Puppet definitions and AWS scripts

Page 31: LAST Conference - Dev-Ops and Continuous Delivery

To keep things moving, lets kick it off

Page 32: LAST Conference - Dev-Ops and Continuous Delivery

BuildServer

S3 Bucket

Nigel’s Laptop

Puppet & AWS scripts

Cloud Formation

APIs

PackagedScripts

Create Machine

Self Configured

Behind the scenes

Page 33: LAST Conference - Dev-Ops and Continuous Delivery

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

Page 34: LAST Conference - Dev-Ops and Continuous Delivery

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 35: LAST Conference - Dev-Ops and Continuous Delivery

Lets see how we’re doing

Page 36: LAST Conference - Dev-Ops and Continuous Delivery

Repeatable & Continuous

Page 37: LAST Conference - Dev-Ops and Continuous Delivery

In Short

Page 38: LAST Conference - Dev-Ops and Continuous Delivery

Infrastructure as Code (Using )

Continuous Integration (Using )

Declarative Env. Conf. (Using )

Page 39: LAST Conference - Dev-Ops and Continuous Delivery

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 40: LAST Conference - Dev-Ops and Continuous Delivery

Everything works by itself

Page 41: LAST Conference - Dev-Ops and Continuous Delivery

But they need to work together

Page 42: LAST Conference - Dev-Ops and Continuous Delivery

=

Bring in the conductor

Page 43: LAST Conference - Dev-Ops and Continuous Delivery

Complex !

Page 44: LAST Conference - Dev-Ops and Continuous Delivery

How does this look in

Page 45: LAST Conference - Dev-Ops and Continuous Delivery
Page 46: LAST Conference - Dev-Ops and Continuous Delivery

AppServer

Cloud Formation

APIs

Behind the scenes

GOServer

Self Configured

Page 47: LAST Conference - Dev-Ops and Continuous Delivery

Lets see this on AWS

Page 48: LAST Conference - Dev-Ops and Continuous Delivery

Snapshot -> AMIsare awesome

Page 49: LAST Conference - Dev-Ops and Continuous Delivery

Boot Speed

Test=

Prod

QAInstances

Page 50: LAST Conference - Dev-Ops and Continuous Delivery

Ideas behind this workshop

Ideas in practice Continuous integration

System integration

Production deployment

Summary

Questions

Agenda

Page 51: LAST Conference - Dev-Ops and Continuous Delivery

To keep things moving, lets kick it off

Page 52: LAST Conference - Dev-Ops and Continuous Delivery

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 53: LAST Conference - Dev-Ops and Continuous Delivery

Lets see this working

Page 54: LAST Conference - Dev-Ops and Continuous Delivery

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Page 55: LAST Conference - Dev-Ops and Continuous Delivery

This stuff is hard to get right

Page 56: LAST Conference - Dev-Ops and Continuous Delivery

Automate

Infrastructureas code

Configuration Management

Page 57: LAST Conference - Dev-Ops and Continuous Delivery

Its about Risk

Page 58: LAST Conference - Dev-Ops and Continuous Delivery

“I do believe that complexity is the enemy. Until we better understand complexity, our chances of building better IT systems is limited. The first thing we must understand about complexity is that not all complexity is equal. And the complexity on which most people focus is probably the least complex complexity of all.”

http://simplearchitectures.blogspot.com/2009/03/cancer-of-complexity.html

Roger Sessions