Pro Yearly is on sale from $80 to $50! »

From 'Legacy' to 'Edge'

From 'Legacy' to 'Edge'

Eabad423977cfc6873b8f5df62b848a6?s=128

SHIBATA Hiroshi

June 08, 2013
Tweet

Transcript

  1. ࣲాതࢤ SHIBATA Hiroshi QBQFSCPZDP BTBLVTBSC paperboy&co., Inc. Continuous Upgrades For

    Rails Apps. ൃද৔ॴ3FE%PU3VCZ$POG 2013-06-08(Sat) From 'Legacy' to 'Edge'
  2. None
  3. TFMG

  4. SHIBATA Hiroshi(@hsbt)

  5. Rails Girls in Japan

  6. asakusa.rb

  7. asakusa.rb takoyaki!

  8. asakusa.rb

  9. Ruby Committer

  10. Great News

  11. ruby/www.ruby-lang.org

  12. Please join us

  13. http://bugs.ruby-lang.org

  14. asakusarb/redmine4ruby-lang

  15. None
  16. None
  17. None
  18. http://30d.jp

  19. from 2007/5

  20. 280,000 users 174,000,000 photos

  21. Our Rails app 44models 9000lines in controllers 220lines in routes.rb

  22. system architecture

  23. application server

  24. storage api server

  25. storage server

  26. customer management

  27. storage is over 400TB

  28. Ruby 1.8.6 Rails 2.0.2

  29. Rails in Kansas

  30. Rails in Tokyo

  31. Ruby 1.8.6 Rails 2.0.2 Ruby 2.0.0 Rails 3.2.13

  32. Ruby Ruby Ruby Ruby 1.8.6 1.8.7 1.9 2.0 Rails 2.0/2.1

    Rails 2.3 Rails 3.0 Rails 3.2
  33. Ruby Ruby Ruby Ruby 1.8.6 1.8.7 1.9 2.0 Rails 2.0/2.1

    Rails 2.3 Rails 3.0 Rails 3.2
  34. Ruby Ruby Ruby Ruby 1.8.6 1.8.7 1.9 2.0 Rails 2.0/2.1

    Rails 2.3 Rails 3.0 Rails 3.2
  35. How to migrate edge rails from legacy rails?

  36. Test to specify

  37. Continuous Integration

  38. staging environment

  39. puppet

  40. 1-8 deploy/day

  41. Rails 2.0 Rails 2.3

  42. Rails 2.0 Rails 2.3 hotfix A migration A

  43. Rails 2.0 Rails 2.3 hotfix A migration A

  44. Rails 2.0 Rails 2.3 hotfix A migration A

  45. offensive system operation

  46. Zero Downtime Deploy

  47. app1 app2

  48. should not use slave-read in database caution

  49. the basic of slave-read

  50. None
  51. cookpad/kage

  52. Kage (kah-geh) is an HTTP shadow proxy server that sits

    between clients and your server(s) to enable "shadow requests".
  53. the basic of kage real request

  54. Kage::ProxyServer.start do |server| config = YAML.load_file(File.expand_path("../config.yml", __FILE__))[ENV['RAILS_ENV']] server.port = 8090

    server.host = config[:host] server.debug = false # backends can share the same host/port server.add_master_backend(:production, config[:production], 8080) server.add_backend(:sandbox, config[:sandbox], 80) server.client_timeout = 15 server.backend_timeout = 10 # Dispatch all GET requests to multiple backends, otherwise only :production server.on_select_backends do |request, headers| if request[:method] == 'GET' && rand(9) == 0 [:production, :sandbox] else [:production] end end end
  55. hsbt/puppet-kage

  56. None
  57. app1 app2

  58. monitoring and alerting

  59. newrelic

  60. nagios

  61. exception_notification

  62. IRC github issue costomer’s contact nagios

  63. munin

  64. people

  65. newcomer bootcamp sergeant sergeant sergeant

  66. github and github:e

  67. webistrano

  68. None
  69. confusion of programmer is causes of low productivity

  70. Ruby Ruby Ruby Ruby 1.8.6 1.8.7 1.9 2.0 Rails 2.0/2.1

    Rails 2.3 Rails 3.0 Rails 3.2 always on the edge is motivating
  71. Ruby 1.8.7 Rails 2.3.18 Ruby 1.8.7 Rails 3.0.20

  72. rails 2.3 with bundler

  73. source 'https://rubygems.org' gem 'rails', '~> 2.3.18' gem 'rake', '~> 0.9.2'

    gem 'rdoc' gem 'rake-confirm' gem 'mysql' gem "mysql_retry_lost_connection" gem 'acts_as_paranoid', :github => 'paperboy-30days/acts_as_paranoid' gem 'passenger', '~> 3.0' gem 'memcache-client', :require => 'memcache' gem 'system_timer' gem 'yajl-ruby', :require => 'yajl' gem 'will_paginate', '~> 2.3' gem 'mail' gem 'sass' gem 'compass-rails' gem 'osaipo_client', :git => 'git@github.com:paperboy-all/ osaipo_client.git', :branch => 'legacy' gem 'jugem_client', :git => 'git@github.com:paperboy-all/ jugem_client.git' gem 'ppb_footer', :github => 'paperboy-all/ppb_footer'
  74. require "./config/environment" use Rails::Rack::LogTailer use Rails::Rack::Static run ActionController::Dispatcher.new rack with

    rails 2.3
  75. rails_upgrade plugin

  76. 30days-front can’t use hyphen can’t use number can’t convert application.rb...

  77. conclusion

  78. Ruby Ruby Ruby Ruby 1.8.6 1.8.7 1.9 2.0 Rails 2.0/2.1

    Rails 2.3 Rails 3.0 Rails 3.2
  79. high productivity

  80. Let’s enjoy around legacy system!!