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