Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Ops for Devs
Peter Sobot
May 03, 2013
Programming
6
220
Ops for Devs
A quick introduction to the "devops" buzzword for those that don't like dealing with servers.
Peter Sobot
May 03, 2013
Tweet
Share
More Decks by Peter Sobot
See All by Peter Sobot
psobot
0
98
psobot
0
110
psobot
0
24
Other Decks in Programming
See All in Programming
minamijoyo
3
460
vixentael
0
310
sters
2
120
joergneumann
0
120
yoshinoriiiii
0
110
legalforce
PRO
0
600
grapecity_dev
0
170
dqneo
3
290
zwass
0
350
emmaglorypraise
0
120
takara9
0
150
grapecity_dev
0
170
Featured
See All Featured
mza
80
4.1k
orderedlist
PRO
328
36k
cassininazir
347
20k
shlominoach
176
7.5k
shpigford
369
42k
ammeep
656
54k
morganepeng
18
1.2k
aarron
257
36k
addyosmani
311
21k
brad_frost
157
6.4k
jcasabona
8
550
keavy
106
14k
Transcript
OPS FOR DEVS
None
OPS FOR DEVS
Developers like to write CODE
Developers hate dealing with SERVERS
happiness
Hardware happiness
Operating System Hardware happiness
Configuration Operating System Hardware happiness
Framework Configuration Operating System Hardware happiness
Business Logic Framework Configuration Operating System Hardware happiness
LIFE WOULD BE AMAZING IF WE ONLY HAD TO WORRY
ABOUT BUSINESS LOGIC
BUT
WE HAVE TO CARE ABOUT SERVERS bugs in production! version
mismatches! kernel issues! hardware failures! security holes! architecture mismatches! missing hardware instructions! virtualization bugs! performance drops! server bills! client latency! bandwidth costs! internet!!1! omg hakx!
how do we make servers look like code?
None
full-featured Turing-complete very well supported
class nginx { package { 'nginx': ensure => latest }
service { 'nginx': ensure => running } file { '/etc/nginx/nginx.conf': ensure => present, source => 'puppet:///modules/nginx/nginx.conf', notify => Service['nginx'], } }
configuration becomes code
puppet code! app code!
useful for one server
invaluable for many servers
also good for zero servers
None
magical Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box" config.vm.network
:forwarded_port, guest: 80, host: 8080 config.vm.network :forwarded_port, guest: 443, host: 8443 config.vm.synced_folder "./", "/var/www/" config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "2048"] end config.vm.provision :puppet do |puppet| puppet.module_path = "puppet/modules" puppet.manifests_path = "puppet" puppet.manifest_file = "wubmachine.pp" end end choose any OS use your Puppet code share folders map ports
None
puppet code environment =
puppet code environment = using the same using the same
dev/prod parity
need ? mysql postgres memcached redis rabbitmq cassandra nginx buzzword
buzzword buzzword
capture in Puppet code
test with Vagrant
deploy with confidence
setting up servers becomes trivial
so when this happens...
None
questions? @psobot