DevOps'Toolkit
Jonas&Rosland
Developer(Advocate(@(EMC({code}
@virtualswede
emccode.github.io
What%is%DevOps?
An#idea#or#collabora-ve#culture/philosophy#
between#technical#teams
Unified'processes'and'tools'for'faster'end1to1
end'delivery'of'quality'so6ware
NOT!a!job!descrip-on
So#why#should#you#care?
You$can't$wait$6$months$for$a$feature$upgrade/
bug$fix/etc
Solve&configura.on&dri1&issues&quickly
Know%exactly%what's%wrong,%where%and%why
Last%but%not%least,%improve%team%
communica3on
So#what's#the#result#of#DevOps?
It's%really%big%actually...
DevOps'prac+ces'and'IT'performance'impact'
organiza(onal'performance
h"p://www.slideshare.net/realgenekim/20148state8of8devops8findings8velocity8conference
Let's&start&with
Infrastructure+As+Code
What%do%we%define%as%
infrastructure?
Why$define$infrastructure$as$code?
• Deploy,)monitor)and)connect)together)all)the)pieces)needed)to)
run)services)for)the)organiza9on
• Processes)and)tools)for)faster)end;to;end)delivery)of)quality)
services
• Automa9on)comes)built;in
How$do$we$do$this?
• Desired(state(specified(in(text(files
• Autonomic((self7corrects(to(desired(state)
• State(should(be(known(through(monitoring
• Remove(snowflake(servers
Why$store$them$in$text$files?
• Easy&to&read&and&edit
• Shareable
• Can&use&standard&version&control&like&Git&or&SVN
• Becomes&executable&documenta=on
Simple'example
node 'www2' {
class { 'apache': } # use apache module
apache::vhost { 'awesomewebsite.com': # define vhost resource
port => '80',
docroot => '/var/www/html'
}
}
Change'root'password
user { root:
ensure => present,
password => '$ecretP@ssw0rd',
}
Manually'configured'environments'
are'like'a'house'of'cards'in'a'china'
shop
—"Neal"Ford
Snowflake)servers
Deploying,+provisioning+and+scaling+automa5cally+is+virtually+
impossible+if+every+server+is+unique
Adds$fric)on$between$the$requestor$and$the$deployer
Mistakes(happen
We're%all%human
What%can%happen%if%you%don't%treat%
infrastructure%as%code?
Some%firms%have%found%that%up%to%
60%%of%failures%are%caused%by%human%
error,%not%hardware%failure
Example()(Knight(Capital(Group
Knight'Capital'Group'0'What'
happened?
Manual&deployment&of&new&trading&so4ware
7"of"8"servers"correctly"updated
Old$func)on$s)ll$alive$on$the$8th$server$led$to
$440$million$loss$in$45$minutes
Treat&your&infrastructure&as&code
Benefits
Self%documen,ng%infrastructure
You$now$have$source$code$for$how$anything$in$your$datacenter$is$
setup
Executable*documenta/on
Alright
Then%what?
Automate(more!
Deployment*automa-on
• Jenkins(CI
• Travis(CI
• Codeship
• CloudFoundry
• OpenShi9
Containers
• Docker
• Framework,for,applica1on,container,
management
• Huge,community
Log$management
• Splunk
• Loggly
• LogInsight
• ELK3Stack3(Elas7cSearch,3LogStash3and3
Kibana)
Performance*management
• vCenter(Opera,ons
• New(Relic
• AppDynamics
• DataDog
Monitoring
• Nagios
• Sensu
• VictorOps
• PagerDuty
Communica)on
• Slack
• HipChat
• Trello
• Asana
Collabora'on
• Github
• Quip
Use$these$tools$smartly
• And%by%smartly%we%mean%coopera3vely%between%Devs%and%Ops
• Will%help%operators%understand%what's%running%and%happening%in%
the%infrastructure
• Will%give%developers%insight%into%the%underlying%infrastructure%
and%the%way%it%behaves%under%load
So#how#do#we#get#started?
• Start&talking&about&it
• Choose&low4hanging&fruit
• Learn,&make&wrong&decisions,&learn&again
• Involve&the&broader&team
• Give&books,&presenta?ons,&blog&posts&etc.
DevOpsDays)@)EMC)World
Sunday'2PM+6PM
Free!
Ques%ons?
Jonas&Rosland
Developer(Advocate(@(
EMC({code}
@virtualswede

2015 03-19-devops-toolkit-varrow-madness