Ops for Devs

Ops for Devs

A quick introduction to the "devops" buzzword for those that don't like dealing with servers.

A2d0a8d7b09e3651f71d86c2299e7d25?s=128

Peter Sobot

May 03, 2013
Tweet

Transcript

  1. OPS FOR DEVS

  2. None
  3. OPS FOR DEVS

  4. Developers like to write CODE

  5. Developers hate dealing with SERVERS

  6. happiness

  7. Hardware happiness

  8. Operating System Hardware happiness

  9. Configuration Operating System Hardware happiness

  10. Framework Configuration Operating System Hardware happiness

  11. Business Logic Framework Configuration Operating System Hardware happiness

  12. LIFE WOULD BE AMAZING IF WE ONLY HAD TO WORRY

    ABOUT BUSINESS LOGIC
  13. BUT

  14. 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!
  15. how do we make servers look like code?

  16. None
  17. full-featured Turing-complete very well supported

  18. 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'], } }
  19. configuration becomes code

  20. puppet code! app code!

  21. useful for one server

  22. invaluable for many servers

  23. also good for zero servers

  24. None
  25. magical Vagrantfile

  26. 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
  27. None
  28. puppet code environment =

  29. puppet code environment = using the same using the same

  30. dev/prod parity

  31. need ? mysql postgres memcached redis rabbitmq cassandra nginx buzzword

    buzzword buzzword
  32. capture in Puppet code

  33. test with Vagrant

  34. deploy with confidence

  35. setting up servers becomes trivial

  36. so when this happens...

  37. None
  38. questions? @psobot