More Details on the Devot:ee Upgrade
If you were following along on Twitter, you might have heard about the 4-day long process that Ryan Masuga went through moving his EE add-on repository and storefront, Devot:ee, from EE 1.6.9 to the latest version of ExpressionEngine 2.
Because Devot-ee is such an important resource to the community, Masuga wanted to be as open and transparent as possible about the upgrade. He provided regular updates via their Twitter account and even detailed some of the problems he was running into. This long and tedious process was, unfortunately, taken by some to mean that upgrading a site from EE1 to EE2 is a messy process that takes 4 days.
I think Paulo Elias put it nicely:
I am puzzled at all of the negative “upgrade process’ tweets re the recent @devot_ee upgrade. Complex shit takes time to get right
Indeed it does.
According to Ryan, Devot:ee consisted of a lot of third party and custom add-ons. Every single one had to be updated and tested. Some of those were mission critical add-ons for e-commerce and other functionality that supported their business of giving add-on developers a place to easily sell their software. Ryan plans to eventually publish his log of what he had to do to make the upgrade happen.
I asked Ryan if he would spend a few minutes talking to EE Insider about the experience of upgrading a complex site like Devot:ee, what he learned and, most importantly: was it worth it? He obliged and below is a transcript of some of his answers during that conversation.
EE Insider: When did you start the upgrade process? There was probably a lot of planning that happened.
Ryan Masuga: We started in March and I wrote down every step because I knew that we had to do it all again in a final sweep to get any data we might have missed. Other client work got in a way, so it wasn’t like this was the only thing we were working on. We set it aside for weeks.
Was there one thing that you spent the most time working on?
RM: I spent a lot of time…on the sales reports for the developers because they need to be accurate.
The plan was to update Devot-ee over the weekend. Did you have a master plan?
RM: I ran through the 20-point checklist and it just didn’t work out that way. I thought the smart thing to do would be to make a static site first so people could still search. I set that up as a subdomain and checked out a branch that just had everything disabled, basically. You could still search the site, you could still download your stuff. You could do everything except buy stuff, really. I think that lessened the pain of our site being officially down for three or four days because people were able to, essentially, use the catalog. However, I was planning to be down maybe eight hours or something like that because I was taking my time with checklist.
When you were running the EE update wizard, were there any problems?
RM: I had zero errors going from 1.6.9 to 2, which was pretty wild. And then it was all about upgrading add-ons. Matrix, Cartthrob, Better Meta., converting Better Meta to NSM Meta, Favorites, Low Variables, Channel Ratings and then converting Solspace Ratings to Channel Ratings.
We spent a lot of time adjusting PHP in our templates and in our custom add-ons. [The extended downtime] had to do with that peripheral stuff.
Why didn’t you leave the site up and use a staging server, get everything upgraded and just flip the switch?
RM: We had to put a content freeze on the site…
Because of sales…
RM: Yeah, because of sales, rating, favorites, reviews…
And sales being the most critical.
RM: Yeah. We don’t want to recreate any of that stuff or merge data if we don’t have to. We ended up being down 4 days and we would’ve had to recapture 4 days worth of data from an EE1 database.
Was the upgrade and downtime worth it? What does it mean for Devot:ee going forward?
RM: The good work and the time [the community developers] are spending is on EE2 stuff. There are so many cool things out that we couldn’t use. I love Zenbu. I like Switchboard. None of this stuff was available for EE1, so it’s making my life easier in the Control Panel. The Control Panel seems nice and quick.
I know that EllisLab is putting a lot of dev time into EE2 and it’s just going to get better. We need to be there [on EE2] so we can take advantage of all of the stuff that EE2 provides.
And at some point if you wait too long the two versions of EE and any add-ons would be further apart and the upgrade would be even more difficult.
RM: Absolutely. We would be like a boat lost in the night with no paddles. Where do we go from here? We would be so far down a hole that we are basically going to have to rebuild the site rather than upgrade. Now we’re at a point that we’re at the latest of everything.
Now, it’s causing a couple of problems because we had some template syntax that needed to change but on the whole, it’s going to be better for everyone because we can make full use of SafeCracker. That’s a big part of the site because people can submit and edit their add-ons.
So now you can develop new features for the site without worrying that one day you’ll have to go back and redo everything for a big upgrade.
RM: Yep, we would try to keep new stuff to a minimum because we would have to do it in two places. We got a huge feature request list and stuff that we want to do. We want to vastly improve the image galleries on an add-on page. There are way too many clicks and it’s just lame. It takes the height of the highest image, adds a bunch of whitespace…it’s just kinda weird. We get a lot of emails about it. “Hey, we just want a previous and next button so I don’t have to close each one.” We can spend time on that stuff now without having to do it twice.
Thanks to Ryan for chatting with us. He’s inspired me to work on upgrading EE Insider to EE2.
Steve James — 16:39 on 08.04.2011
Great interview and insights. I’ve felt the pain of migration too, but the switch was well worth it. Thanks Ryan(s)!
Euan — 04:58 on 08.05.2011
Thanks to both Ryan’s for providing a bit of insight into the upgrade process.
Ryan Battles — 08:45 on 08.05.2011
Very nice to hear about how the reasoning behind certain decisions and where the majority of time was spent during the upgrade process. That’s an interesting argument to upgrade due to an ever-widening window of your version to the latest version. It certainly goes against the “if it ain’t broke” mentality, but apparently will save you from a complete redevelopment in the future. Thanks to both of you for the interview.
David — 13:05 on 08.06.2011
I just did a huge 2.0 conversion and it took days and days to nail down everything. We did several practice runs and still had unexpected problems.
The breadth of functionality on devotee- it must have been a beast. Congrats Ryan.