TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Upgrading GitHub to Rails 3 with Zero Downtime

252 pointsby dewskiover 10 years ago

11 comments

icsover 10 years ago
<p><pre><code> For those of you keeping score: - Yes, Rails 3 was released four years ago - Yes, the current stable version is Rails 4.1, which left us two major versions behind We had work to do in order to live in the modern world again. </code></pre> Okay, so why didn&#x27;t aren&#x27;t they transitioning to Rails 4? I&#x27;m not clued in to much more than the version numbers so I suppose there are reasons that go a little deeper than &#x27;the lowest version that works with the gems we want&#x27;. They&#x27;ve been working on the transition for six months according to the post, making it recent enough that 4 would be the &#x27;obvious&#x27; choice unless there were fears that it wouldn&#x27;t be stable (IIRC Rails 4 has only been so for a few months).
评论 #8322411 未加载
评论 #8322363 未加载
评论 #8322349 未加载
评论 #8322341 未加载
评论 #8323275 未加载
评论 #8322337 未加载
评论 #8326472 未加载
评论 #8322342 未加载
hemancusoover 10 years ago
Am I the only one who read this as: tl;dr - don&#x27;t get too far behind Rails, it&#x27;s fucking painful and expensive if you do.
评论 #8322928 未加载
chippyover 10 years ago
The article describes how they compared them for performance but didn&#x27;t say which was better, and showed a graph which indicated that Rails 3 was worse for longer times in garbage collection for requests. I&#x27;d imagine that Rails 2 in GitHub would have been heavily optimized, but....<p>Is Rails 3 worse performing than Rails 2? Would some performance loss be okay if they had a better codebase?
reedlawover 10 years ago
I&#x27;m curious how they handled the differences between the Rails 2 and Rails 3 applications once they enabled dual boot. Surely not all of the changes were compatible. In the Gemfile example, there is some conditional logic that loads different gems depending on whether or not they used RAILS3=true. Was the entire codebase similarly littered with conditionals? That seems like it would be quite a mess.
评论 #8322742 未加载
评论 #8322413 未加载
jrochkind1over 10 years ago
I think Rails 3 is _already_ security-fix only.<p>But I understand why they did it. And I sympathize. The Rails treadmill is a harsh regime.<p>I wonder if they&#x27;re considering what the heck they are going to do when Rails 5 comes out (target: spring&#x2F;summer of 2015. Less than 12 months) and Rails 3.x stops even receiving security updates. I mean, clearly they have the resources to backport security updates themselves that&#x27;s not a problem -- it&#x27;s just that they&#x27;re still not quite in &#x27;the modern world&#x27;, they&#x27;ve just kept from falling even further behind.
评论 #8322826 未加载
评论 #8323390 未加载
dazonicover 10 years ago
In the multi-version, how would they handle the different DSLs in things like route mapping?<p>map.resources :users<p>vs.<p>resources :users
评论 #8324478 未加载
jjulianoover 10 years ago
Been There, Done That..<p>yep, I&#x27;ve upgraded a hundreds of thousands of Rails 2 codebase to Rails 3 point or so and it is a real pain. (Not to mention Ruby 1.8.7 to Ruby 1.9.3 conversion, oh boy!)<p>The good thing about the experience is that I have mastered upgrading Rails 2&#x27;s codebases to Rails 3 or so and Ruby 1.8&#x27;s codebases to Ruby 1.9&#x27;s or so.
评论 #8324169 未加载
flowerpotover 10 years ago
Very interesting! Just wondering, does GitHub actually have so few dependencies as described?
评论 #8322692 未加载
yuhongover 10 years ago
So are they using Rails LTS or forking Rails 3.0 themselves?
评论 #8323443 未加载
kevinsf90over 10 years ago
For a large codebase, these upgrades will be a pain, especially on ruby&#x2F;rails. To scale in the long run, it&#x27;d probably be wise to modularize &amp; split the codebase into microservices, and at the same time, port to, say, a scala or java based framework (like Play).
评论 #8323051 未加载
评论 #8323513 未加载
tootieover 10 years ago
I feel like the lesson here is not to put mission-critical systems on leading edge software. I&#x27;d be porting to Java at this point. GitHub is a big boy company.
评论 #8322966 未加载
评论 #8323410 未加载