Skip to content

Instantly share code, notes, and snippets.

@DanBradbury
Created October 15, 2013 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DanBradbury/6995806 to your computer and use it in GitHub Desktop.
Save DanBradbury/6995806 to your computer and use it in GitHub Desktop.
Migrating admin to 1.9.3
Upgrade Strategy
----------------
The goal of this is to outline the plan to update admin to Ruby 1.9.3 as
seemlessly as possible. The document is broken into phases that need to be
taken to fully upgrade the application.
### Testing ###
We are going to need to be able to stand up an App box to allow for QA to fully
run the integration tests they need to verify there are no issues with the
upgrade.
1. Full testing on CRUD
2. Integration testing with RIC/Cooking
3. Script Testing (for all scripts on Proc01)
4. API testing (using "GREAT GRILL")
5. Exterior database connections
All we will need to make this happen is to be able to build a box that can
mirror production as close as possible.
I assume we will run into quite a few issues here but hopefully the test suite
has picked up most of the issues. Once we get the box running we can go through
the list above to verify all is good.
Another possible option would be to upgrade a single app server and fed it
traffic for 15 minutes, collecting all the errors returned. And go from there.
> @justinforce: If we want to create a "Ghetto" box to fiddle with configs and
> anything else that Chef would have to do when we are ready to deploy. Maybe
> we try an experimental chef deploy to that single box and just modify that.
> Not sure thoughts?
>> @ProfArithmetic: The thing to do here is build a staging admin box and then manually fiddle with it. Document your changes, and we'll integrate them into the Chef config. —@justinforce
### Productizing the App ###
Once we get the ok from QA it will be time to start rolling the upgrade into our app cluster. Not sure about the best approach to do this but I am going to suggest the following:
Upgrade 1 box and toss traffic at it and collect/analyze the logs for more issues that may come up.
### Transition away from Mongrels ###
This is mostly just a side effect of the 1.9 upgrade but nonetheless needs to be
done. To accomplish this we will use Thin.
We should see huge improvements here because Thin is just better in every way.
We need to determine what options we will pass (number of servers, etc)
### Other Miscallany ###
Read removed plugins?
Not sure this is mandatory as NewRelic was only plugin that has been removed to
date. If we want to use it again we can just add it as a gem. We don't really
need NewRelic to do this for us since we can use some pretty cool tools thanks
to 1.9
### Update Resources ###
* Zendesk upgrade: http://www.zendesk.com/blog/upgrade-the-road-to-1-9
* Getharvest: http://techtime.getharvest.com/blog/harvest-is-now-on-ruby-1-dot-9-3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment