Your SlideShare is downloading. ×
0
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Deployment Patterns in the Ruby on Rails World
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Deployment Patterns in the Ruby on Rails World

7,784

Published on

Nikhil Mungel and Ajey Gore from ThoughtWorks presented this at DevOpsDays Bangalore 2011.

Nikhil Mungel and Ajey Gore from ThoughtWorks presented this at DevOpsDays Bangalore 2011.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,784
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Single file instead of managing the entire src code as a folder.Should not contain files like .htaccess or db.yml, but contain symlinks for these.
  • API to provide LATEST, STABLE and so on…
  • API to provide LATEST, STABLE and so on…
  • Even the repo sources are in config mgmt.
  • Transcript

    • 1. DEPLOYMENT PATTERNSIN THE RUBY on RAILS WORLD
      Devopsdays India
      2011
    • 2. Nikhil Mungel
      Ajey Gore
      @AjeyGore
      @hyfather
    • 3. Rails
      Apache
      Apache
      Apache
      Apache
      Passenger
    • 4. * Ruby on Rails
      /app
      /config
      /db
      /doc
      /lib
      /log
      /public
      /script
      /test
      /tmp
      /vendor
      config.ru
      README
      Rakefile
    • 5. run updated script
      App
      Server
      App
      Server
      Pull
      Pull
      Git
      1
      2
      3
      signal over SSH
      Local Repository
      contains all scripts
    • 6. SCM-aware
      deployments
      fast and effortless
      dev and deployment on ruby
      transfers only delta
      devenv mess can overflow
      admin-hell for IT/Ops
      compiling native gems
    • 7. Git
      Pull
      CI
      Runs
      Tests
      Tests
      Code
      $ deploy 77ef185d7
      $ deploy 77ef185d7
      QA
      Prod.
      Staging
    • 8. Git
      Pull
      Tests
      CI
      Runs
      Tests
      Code
      $ deploy 77ef185d7
      $ deploy 77ef185d7
      QA
      Staging
      Production
    • 9. CI
      Runs
      Tests
    • 10. Git
      Pull
      Unit
      Tests
      CI
      Perf
      Tests
      Functional
      Tests
    • 11. Git
      Pull
      Unit
      Tests
      CI
      Functional
      Tests
      Push a Tag
      tag: mainline-234
      Perf
      Tests
    • 12. Git
      Pull
      Unit
      Tests
      CI
      Functional
      Tests
      Perf
      Tests
    • 13. Git
      CI
      mainline
      unit
      tests
      func
      tests
      perf
      tests
    • 14. mainline
      unit
      tests
      func
      tests
      perf
      tests
      1
      2
      3
      tag
      Git
      on remote
      machine
      on CI
      machine
      deploy
      emit
      consume
      package
    • 15. RPM
      mainline
      unit
      tests
      func
      tests
      perf
      tests
      tarball
      war
      2
      1
      tag
      Git
      rubygem
      deb
      3
      on remote
      machine
      on CI
      machine
      deploy
      emit
      package
      consume
    • 16. tarball
      better than a directory
      extremely simple to setup
      no metadata
    • 17. RPM, deb
      stored in a repository
      standard locations -- /etc
      first-class system service
      effected by chef/puppet
      toolchain expertise
      maintain a repository
      less common
    • 18. rubygem
      tarball with metadata
      effected by chef/puppet
      stored in a repository
      maintain a gem repository
    • 19. mainline
      unit
      tests
      func
      tests
      perf
      tests
      upload to a repo
      2
      expose over
      CI artifact API
      1
      tag
      Git
      3
      on remote
      machine
      on CI
      machine
      deploy
      emit
      package
      consume
    • 20. mainline
      unit
      tests
      func
      tests
      perf
      tests
      2
      1
      tag
      Git
      3
      on remote
      machine
      on CI
      machine
      deploy
      emit
      package
      consume
    • 21. Config Management
      gem install
      yum install
      apt-get install
    • 22. /etc
      my.cnf
      httpd.conf
      ssh_config
    • 23. /etc
      database.yml
      .htaccess
      private keys for external systems
    • 24. /etc/myapp
      First Class
      Linux Application Software
    • 25. bundle install --deployment
      install to vendor/bundle
      bundle install --without test development
      bundle package
      .gem files to vendor/cache
      bundle install --local
    • 26. Thanks!
      @hyfather
      @AjeyGore

    ×