SlideShare a Scribd company logo
! 
From ‘Legacy' to ‘Edge' 
2014 edition 
! 
Hiroshi SHIBATA 
@hsbt 
OedoRubyKaigi04
SHIBATA Hiroshi(@hsbt)
asakusa.rb
ruby-lang.org
Rails Girls in Japan
Ruby Committer
ミドルウェアのアップグレード 
アクセス解析基盤の構築 
セキュリティ監査 
Ruby/Rails 
技術リ基ーンス盤タートチアップ 
ーム 
社内開発基盤の構築 
JSOXの運用整備 
統計基盤の構築 
github 
テスト基盤の構築コードレビュー 
新人教育 
開発プロセス 
原稿執筆 
カンファレンス発表 
Jenkins 
RDBMS 
OSS開発サーバー構成管理の刷新
http://30d.jp
from 2007/5
380,000 users 
230,000,000 photos
Our Rails app 
46 models 
5000 lines in controllers 
400 lines in routes.rb 
1:1.3 code to test ratio
system architecture
application server
storage server
job server
transaction server
storage is over 
450 TB
database size 
is over 
250 GB
Development 
Culture
文字github workflow
IRC 
github issue 
costomer’s 
contact 
nagios
DevOps
4 deploy/day
How to migrate 
edge rails 
from 
legacy rails?
Ruby 1.8.6 
Rails 2.0.2
Ruby 1.8.6 
Rails 2.0.2 
Ruby 2.1.1 
Rails 4.1.0 new!
Why?
Ruby on Rails
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
Slow 
4.0 Fast
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
Rails 2.0 
Rails 2.3
Rails 2.0 
hotfix A 
Rails 2.3 
migration A
Rails 2.0 
hotfix A 
Rails 2.3 
migration A
Rails 2.0 
hotfix A 
Rails 2.3 
migration A
文字
Zero 
Downtime 
Deploy
cookpad/kage
Kage (kah-geh) is an HTTP shadow 
proxy server that sits between 
clients and your server(s) to 
enable "shadow requests".
the basic of kage 
real request
_人人 人人__人人 人人_! 
> 突然のサーバー再起動 <! 
‾Y^Y^Y^YY^Y^Y^YY^Y
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
rails 2.3 with bundler
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'!
require "./config/environment"! 
! 
use Rails::Rack::LogTailer! 
use Rails::Rack::Static! 
run ActionController::Dispatcher.new 
rack with rails 2.3
can’t use 
hyphen 
30days-front 
can’t use 
number 
can’t convert 
! application.rb...
Reduce 
customer frustration.
app1 
app2 
backgroundrb to dj
文字
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
Use trunk everyday.
文字
文字
Use modern architecture
app1 
app2
kyoto tycoon is slower 
than mysql…
1.8 to 2.0
文字
2.0 to 2.1
CPU Usage(%) 
100 
75 
50 
25 
0 
49 
2.0 2.1 
69
Resp. time(ms) 
250 
200 
150 
100 
50 
0 
189 
2.0 2.1 
221
4 
3 
memory usage(giga byte) 0 
2 
1 
3.8 
2.0 2.1 
3.2
文字https://www.ruby-lang.org/en/news/2014/03/10/regression-of-hash-reject-in-ruby-2-1-1/
Ruby 
1.8.6 1.8.7 1.9.3 2.0.0 2.1 
Rails 
2.0/2.1 
2.3 
3.0 
3.2 
4.0
文字
Resp. time(ms) 
300 
240 
180 
120 
60 
0 
287 
3.2 4.0 
189
Ruby 
1.9.3 2.0.0 2.1 2.2 
Rails 
3.0 
3.2 ? 
4.0 ? 
4.1 ?
Ruby 
1.9.3 2.0.0 2.1 2.2 
Rails 
3.0 
3.2 ? 
4.0 ? 
New!! 
4.1 ?
文字
1. Flash structure changes 
2. Mutator methods called on Relation
文字
Resp. time(ms) 
300 
240 
180 
120 
60 
0 
266 
4.0 4.1 
287
Ruby 
1.9.3 2.0.0 2.1 2.2 
Rails 
3.0 
3.2 ? 
4.0 ? 
4.1 ?
class Bar! 
def bar(foo = foo())! 
foo! 
end! 
! 
def buzz(foo = foo)! 
foo! 
end! 
! 
def foo! 
:buzz! 
end! 
end! 
! 
p Bar.new.bar! 
p Bar.new.buzz
% ruby -v r45272.rb! 
ruby 2.2.0dev (2014-04-13 trunk 45580) [x86_64-darwin13]! 
:buzz! 
nil! 
! 
% ruby -v r45272.rb! 
ruby 2.1.2p80 (2014-03-01 revision 45231) [x86_64-darwin13.0]! 
:buzz! 
:buzz
文字
conclusion
1. fix your code 
2. fix gem 
3. fix Rails 
4. fix Ruby

More Related Content

What's hot

The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
Hiroshi SHIBATA
 
20141210 rakuten techtalk
20141210 rakuten techtalk20141210 rakuten techtalk
20141210 rakuten techtalk
Hiroshi SHIBATA
 
Dependency Resolution with Standard Libraries
Dependency Resolution with Standard LibrariesDependency Resolution with Standard Libraries
Dependency Resolution with Standard Libraries
Hiroshi SHIBATA
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
Hiroshi SHIBATA
 
Gems on Ruby
Gems on RubyGems on Ruby
Gems on Ruby
Hiroshi SHIBATA
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
Hiroshi SHIBATA
 
What's new in RubyGems3
What's new in RubyGems3What's new in RubyGems3
What's new in RubyGems3
Hiroshi SHIBATA
 
Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3
Hiroshi SHIBATA
 
The Future of library dependency management of Ruby
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of Ruby
Hiroshi SHIBATA
 
Ruby Security the Hard Way
Ruby Security the Hard WayRuby Security the Hard Way
Ruby Security the Hard Way
Hiroshi SHIBATA
 
How to Begin to Develop Ruby Core
How to Begin to Develop Ruby CoreHow to Begin to Develop Ruby Core
How to Begin to Develop Ruby Core
Hiroshi SHIBATA
 
20140626 red dotrubyconf2014
20140626 red dotrubyconf201420140626 red dotrubyconf2014
20140626 red dotrubyconf2014Hiroshi SHIBATA
 
How to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHow to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHiroshi SHIBATA
 
Leave end-to-end testing to Capybara
Leave end-to-end testing to CapybaraLeave end-to-end testing to Capybara
Leave end-to-end testing to Capybara
Hiroshi SHIBATA
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
Hiroshi SHIBATA
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
Hiroshi SHIBATA
 
Gemification plan of Standard Library on Ruby
Gemification plan of Standard Library on RubyGemification plan of Standard Library on Ruby
Gemification plan of Standard Library on Ruby
Hiroshi SHIBATA
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
Hiroshi SHIBATA
 

What's hot (20)

The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
 
20141210 rakuten techtalk
20141210 rakuten techtalk20141210 rakuten techtalk
20141210 rakuten techtalk
 
Dependency Resolution with Standard Libraries
Dependency Resolution with Standard LibrariesDependency Resolution with Standard Libraries
Dependency Resolution with Standard Libraries
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
 
Gems on Ruby
Gems on RubyGems on Ruby
Gems on Ruby
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
 
What's new in RubyGems3
What's new in RubyGems3What's new in RubyGems3
What's new in RubyGems3
 
Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3
 
The Future of library dependency management of Ruby
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of Ruby
 
Ruby Security the Hard Way
Ruby Security the Hard WayRuby Security the Hard Way
Ruby Security the Hard Way
 
How to Begin to Develop Ruby Core
How to Begin to Develop Ruby CoreHow to Begin to Develop Ruby Core
How to Begin to Develop Ruby Core
 
20140626 red dotrubyconf2014
20140626 red dotrubyconf201420140626 red dotrubyconf2014
20140626 red dotrubyconf2014
 
How to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHow to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rb
 
Leave end-to-end testing to Capybara
Leave end-to-end testing to CapybaraLeave end-to-end testing to Capybara
Leave end-to-end testing to Capybara
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
 
Gemification plan of Standard Library on Ruby
Gemification plan of Standard Library on RubyGemification plan of Standard Library on Ruby
Gemification plan of Standard Library on Ruby
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 

Viewers also liked

20131208 agile samuraibasecamp
20131208 agile samuraibasecamp20131208 agile samuraibasecamp
20131208 agile samuraibasecampHiroshi SHIBATA
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
Hiroshi SHIBATA
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
Hiroshi SHIBATA
 
The story of language development
The story of language developmentThe story of language development
The story of language development
Hiroshi SHIBATA
 
Usecase examples of Packer
Usecase examples of Packer Usecase examples of Packer
Usecase examples of Packer
Hiroshi SHIBATA
 
Continuous Delivery in Ruby World
Continuous Delivery in Ruby WorldContinuous Delivery in Ruby World
Continuous Delivery in Ruby WorldHiroshi SHIBATA
 
Awesome Inquiry Management System
Awesome Inquiry Management SystemAwesome Inquiry Management System
Awesome Inquiry Management SystemHiroshi SHIBATA
 
Ruby遺産とレガシーコード修理技術
Ruby遺産とレガシーコード修理技術Ruby遺産とレガシーコード修理技術
Ruby遺産とレガシーコード修理技術Hiroshi SHIBATA
 
How to discover the Ruby's defects with web application
How to discover the Ruby's defects with web applicationHow to discover the Ruby's defects with web application
How to discover the Ruby's defects with web applicationHiroshi SHIBATA
 
RailsGirls Japan
RailsGirls JapanRailsGirls Japan
RailsGirls Japan
Hiroshi SHIBATA
 
Create Responsive Learning, Engage Mobile Users
Create Responsive Learning, Engage Mobile UsersCreate Responsive Learning, Engage Mobile Users
Create Responsive Learning, Engage Mobile UsersXyleme
 
20131019 rails girlstokyo3rd
20131019 rails girlstokyo3rd20131019 rails girlstokyo3rd
20131019 rails girlstokyo3rdHiroshi SHIBATA
 
Paychex Single Source Authoring
Paychex Single Source AuthoringPaychex Single Source Authoring
Paychex Single Source AuthoringXyleme
 
The Princeton Review: A Case Study in Scalable Learning Content Delivery
The Princeton Review: A Case Study in Scalable Learning Content DeliveryThe Princeton Review: A Case Study in Scalable Learning Content Delivery
The Princeton Review: A Case Study in Scalable Learning Content Delivery
Xyleme
 
Learning Delivery: Meeting the Learner Where They Are - Part 1
Learning Delivery: Meeting the Learner Where They Are  - Part 1Learning Delivery: Meeting the Learner Where They Are  - Part 1
Learning Delivery: Meeting the Learner Where They Are - Part 1
Xyleme
 
Using personalization to create next generation performance support
Using personalization to create next generation performance supportUsing personalization to create next generation performance support
Using personalization to create next generation performance support
Xyleme
 
技術的負債との付き合い方
技術的負債との付き合い方技術的負債との付き合い方
技術的負債との付き合い方
Hiroshi SHIBATA
 
Caterpillar Single Source
Caterpillar Single SourceCaterpillar Single Source
Caterpillar Single SourceXyleme
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
Hiroshi SHIBATA
 

Viewers also liked (20)

20131208 agile samuraibasecamp
20131208 agile samuraibasecamp20131208 agile samuraibasecamp
20131208 agile samuraibasecamp
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
 
The story of language development
The story of language developmentThe story of language development
The story of language development
 
Usecase examples of Packer
Usecase examples of Packer Usecase examples of Packer
Usecase examples of Packer
 
Continuous Delivery in Ruby World
Continuous Delivery in Ruby WorldContinuous Delivery in Ruby World
Continuous Delivery in Ruby World
 
Awesome Inquiry Management System
Awesome Inquiry Management SystemAwesome Inquiry Management System
Awesome Inquiry Management System
 
Ruby遺産とレガシーコード修理技術
Ruby遺産とレガシーコード修理技術Ruby遺産とレガシーコード修理技術
Ruby遺産とレガシーコード修理技術
 
How to discover the Ruby's defects with web application
How to discover the Ruby's defects with web applicationHow to discover the Ruby's defects with web application
How to discover the Ruby's defects with web application
 
RailsGirls Japan
RailsGirls JapanRailsGirls Japan
RailsGirls Japan
 
Create Responsive Learning, Engage Mobile Users
Create Responsive Learning, Engage Mobile UsersCreate Responsive Learning, Engage Mobile Users
Create Responsive Learning, Engage Mobile Users
 
20131109 ruby conf2013
20131109 ruby conf201320131109 ruby conf2013
20131109 ruby conf2013
 
20131019 rails girlstokyo3rd
20131019 rails girlstokyo3rd20131019 rails girlstokyo3rd
20131019 rails girlstokyo3rd
 
Paychex Single Source Authoring
Paychex Single Source AuthoringPaychex Single Source Authoring
Paychex Single Source Authoring
 
The Princeton Review: A Case Study in Scalable Learning Content Delivery
The Princeton Review: A Case Study in Scalable Learning Content DeliveryThe Princeton Review: A Case Study in Scalable Learning Content Delivery
The Princeton Review: A Case Study in Scalable Learning Content Delivery
 
Learning Delivery: Meeting the Learner Where They Are - Part 1
Learning Delivery: Meeting the Learner Where They Are  - Part 1Learning Delivery: Meeting the Learner Where They Are  - Part 1
Learning Delivery: Meeting the Learner Where They Are - Part 1
 
Using personalization to create next generation performance support
Using personalization to create next generation performance supportUsing personalization to create next generation performance support
Using personalization to create next generation performance support
 
技術的負債との付き合い方
技術的負債との付き合い方技術的負債との付き合い方
技術的負債との付き合い方
 
Caterpillar Single Source
Caterpillar Single SourceCaterpillar Single Source
Caterpillar Single Source
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
 

Similar to 20140419 oedo rubykaigi04

Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
Fabio Akita
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
Fabio Akita
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
DNAD
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)
Flowdock
 
Stack Exchange Infrastructure - LISA 14
Stack Exchange Infrastructure - LISA 14Stack Exchange Infrastructure - LISA 14
Stack Exchange Infrastructure - LISA 14
GABeech
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
Shubhra Kar
 
Ruby on Rails workshop for beginner
Ruby on Rails workshop for beginnerRuby on Rails workshop for beginner
Ruby on Rails workshop for beginner
Umair Amjad
 
Understanding the Rails web model and scalability options
Understanding the Rails web model and scalability optionsUnderstanding the Rails web model and scalability options
Understanding the Rails web model and scalability options
.toster
 
Toster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsToster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability Options
Fabio Akita
 
RESTful OGC Services
RESTful OGC ServicesRESTful OGC Services
RESTful OGC Services
Pat Cappelaere
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
Robert Dempsey
 
Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013
Fabio Akita
 
Scaling Mapufacture on Amazon Web Services
Scaling Mapufacture on Amazon Web ServicesScaling Mapufacture on Amazon Web Services
Scaling Mapufacture on Amazon Web Services
Andrew Turner
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
Gautam Rege
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
Marcus Frödin
 
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.comRuby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ilya Grigorik
 
ASP.NET MVC Performance
ASP.NET MVC PerformanceASP.NET MVC Performance
ASP.NET MVC Performance
rudib
 

Similar to 20140419 oedo rubykaigi04 (20)

Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Rails
 
Rails Performance
Rails PerformanceRails Performance
Rails Performance
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)
 
Stack Exchange Infrastructure - LISA 14
Stack Exchange Infrastructure - LISA 14Stack Exchange Infrastructure - LISA 14
Stack Exchange Infrastructure - LISA 14
 
Sinatra
SinatraSinatra
Sinatra
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Ruby on Rails workshop for beginner
Ruby on Rails workshop for beginnerRuby on Rails workshop for beginner
Ruby on Rails workshop for beginner
 
Understanding the Rails web model and scalability options
Understanding the Rails web model and scalability optionsUnderstanding the Rails web model and scalability options
Understanding the Rails web model and scalability options
 
Toster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsToster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability Options
 
RESTful OGC Services
RESTful OGC ServicesRESTful OGC Services
RESTful OGC Services
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
 
Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013
 
Scaling Mapufacture on Amazon Web Services
Scaling Mapufacture on Amazon Web ServicesScaling Mapufacture on Amazon Web Services
Scaling Mapufacture on Amazon Web Services
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.comRuby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
 
ASP.NET MVC Performance
ASP.NET MVC PerformanceASP.NET MVC Performance
ASP.NET MVC Performance
 

More from Hiroshi SHIBATA

Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
Hiroshi SHIBATA
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
Hiroshi SHIBATA
 
Deep dive into Ruby's require - RubyConf Taiwan 2023
Deep dive into Ruby's require - RubyConf Taiwan 2023Deep dive into Ruby's require - RubyConf Taiwan 2023
Deep dive into Ruby's require - RubyConf Taiwan 2023
Hiroshi SHIBATA
 
How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
Hiroshi SHIBATA
 
How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
Hiroshi SHIBATA
 
Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発
Hiroshi SHIBATA
 
Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?
Hiroshi SHIBATA
 
RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
Hiroshi SHIBATA
 
OSS Security the hard way
OSS Security the hard wayOSS Security the hard way
OSS Security the hard way
Hiroshi SHIBATA
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
Hiroshi SHIBATA
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
Hiroshi SHIBATA
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
Hiroshi SHIBATA
 
The secret of programming language development and future
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and future
Hiroshi SHIBATA
 

More from Hiroshi SHIBATA (13)

Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Deep dive into Ruby's require - RubyConf Taiwan 2023
Deep dive into Ruby's require - RubyConf Taiwan 2023Deep dive into Ruby's require - RubyConf Taiwan 2023
Deep dive into Ruby's require - RubyConf Taiwan 2023
 
How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
 
How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
 
Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発
 
Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?
 
RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
 
OSS Security the hard way
OSS Security the hard wayOSS Security the hard way
OSS Security the hard way
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
The secret of programming language development and future
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and future
 

20140419 oedo rubykaigi04