LAST Conference - Dev-Ops and Continuous Delivery

Preview:

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.

Citation preview

i.e. Applied DevOps

Continuous Deliveryin the cloud

@nigelfds

github.com/nigelfds

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Dev Ops

Dev Ops

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

#devops

“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

How do you improve the delivery process?

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

We shall do Continuous Delivery

Great Message!

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

Automate

Infrastructureas code

Configuration Management

Application

Environment

Infrastructure

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

SampleApp

Sample Application for #AWS Tweets

github.com/nigelfds/aws-twitter-feed

I win with

Continuous Integration

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

}

aws-twitter-feed repository

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

}

RPM

aws-twitter-feed repository

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

}

RPM

Building Useful Servers

Application

Environment

Infrastructure

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

Puppet definition for our GO machine

Don’t make the Version Control Sad

github.com/nigelfds/configuration-master

Puppet definitions and AWS scripts

To keep things moving, lets kick it off

BuildServer

S3 Bucket

Nigel’s Laptop

Puppet & AWS scripts

Cloud Formation

APIs

PackagedScripts

Create Machine

Self Configured

Behind the scenes

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

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

Lets see how we’re doing

Repeatable & Continuous

In Short

Infrastructure as Code (Using )

Continuous Integration (Using )

Declarative Env. Conf. (Using )

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

Everything works by itself

But they need to work together

=

Bring in the conductor

Complex !

How does this look in

AppServer

Cloud Formation

APIs

Behind the scenes

GOServer

Self Configured

Lets see this on AWS

Snapshot -> AMIsare awesome

Boot Speed

Test=

Prod

QAInstances

Ideas behind this workshop

Ideas in practice Continuous integration

System integration

Production deployment

Summary

Questions

Agenda

To keep things moving, lets kick it off

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 !

Lets see this working

Ideas behind this workshop

Ideas in practice Continuous integration

System integration Production deployment

Summary

Questions

Agenda

This stuff is hard to get right

Automate

Infrastructureas code

Configuration Management

Its about Risk

“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