Hopville 2.0 Migration (Week of July 2, 2012)

The 2.0 project was a major undertaking, involving a complete rewrite of the application and a restructuring of the database powering the site.  (Don’t worry, all your data will be preserved.)  It’s also the time when the site graduates from a cheap hosting provider to a professional-grade, not-so-cheap one.

So, the migration is quite a juggling act.  With so many technical hurdles to worry about, the website feature set has been cut back dramatically to launch a pared-down, more stable beta site.  The 2.0 beta will roll live in a minimalist state and then features will begin to reappear (along with the inevitable bug fixes) over the next few days/weeks as things stabilize and get tested in the wild.  Hopville will continue to be 100% free until all the major features planned for the 2.0 release are live, after which it will transition to the “freemium” model as announced previously.  At this point the full feature set is at least a few weeks out, maybe a few months.

Meanwhile, Hopville has to move house.  Starting tonight I’ll post updates about outages and major bugs below for those who’d like to follow along.

  • [Latest] July 4 @ 5:30 PM: The stripped-down site is finally live!
  • July 4 @ 5 PM: Setting up DB replication, which helps the site stay fast and ensures that there are multiple copies of the data in case of catastrophic failure. If I waited until after the site launched, I’d have to disable it again to start the replication process, so I’m taking care of it now.
  • July 4 @ 3 PM: Looking good to switch on the minimalist initial version of the new site later today.  Currently working to migrate all of the brewer profile images to the new service.
  • July 3 @ 9:30 PM: Okay, I think I have ironed out everything with the data migration, my suite of test recipes is looking solid, so I’m now prepping to release the initial minimalist 2.0 site tomorrow. I have the whole day off tomorrow…but I’m being extra careful about the migration part of this process.  Since the data model is changing in a few ways, there is no turning back once the new site goes live – that’s why I’ve kept it dark during the transition.  For safekeeping, I will continue to run the “final state” of old website under a private domain so that I can use it to QA any issues and run incremental data fixes as necessary.
  • July 2 @ 9 PM: At this point I’m going to run another complete import to help ensure a clean, finalized database before releasing anything to the brewing public.  I’ll need to test that tomorrow once the fresh build is complete, but I won’t have the whole day free as I did today. Sorry folks, but  it’s looking like the site might remain in the dark through much if not all of Tuesday July 3.
  • July 2 @ 6 PM: Working out some kinks in the migration script for recipes, making sure all customizations saved under the old codebase are preserved in the new one.
  • July 2 @ 4 PM: Data migration looks okay but I’ll continue the QA process to make sure recipes transfer successfully. Also migrating brewer profile images, etc.  A few hours of work still remain.
  • July 2 @ 7:30 AM: All brewer information has been fully migrated. Next up: recipes!  That’s the juicy one – it might take several hours to migrate all the recipe data and QA it before switching the site back on.
  • July 2 @ 6 AM: The migration script caught a couple data validation problems overnight. That’s good, because it’s enforcing stronger data integrity for version 2.0.  But I’ll have to spend this morning running the final migration incrementally so I can babysit each step to make sure everything gets carried over correctly and completely.
  • July 2 @ 1:15 AM: Migrating DB from 1.0 to 2.0. This is a long-running process so I’ll let it complete overnight and then start work again in the morning. No further updates this evening, folks!
  • July 2 @ 12:30 AM: Creating final, redundant backups of Hopville’s 1.0 database.
  • July 2 @ Midnight: Hopville.com has been disabled.  Off we go…
  • July 1 @ 10 PM: Site migration scheduled to begin at midnight PDT tonight.
Advertisements

6 Comments »

  1. Chris Hart said

    Thanks for all the great, hard work! I’ll be reminding customers at Hoggetowne Ale Works in Gainesville, FL that the site will be down but to look for it up soon. I’ve been relying on Hopville to develop and store not only my own recipes but also some of the brew shop’s Recipes of the Month and some commercial guest brews I’m doing at Alligator Brewing Company. It’s great to have such an at-your-fingertips online resource available. I’ve donated in the past and I can tell you that whatever the new structure, I’ll be donating in the future as well. It’s worth it!

  2. Willie said

    You should do a post discussing the technology stack you are using. I know there is an early mention of jQuery and HAML but I know there is more technology behind it all.

  3. Andy said

    It is great to see progress. I love hopville!

  4. Craig said

    Dontcha just love conversions? 🙂

    Seriously, thanks for the hard work and dedication to the site. It has been invaluable to me as a new brewer. I’ll be joining as a paid member once you get the new site stable.

  5. Bros Brew said

    It’s very generative of you to share the status of this undertaking. Thank you. I look forward to seeing the new site!

  6. tom_thinks said

    Thanks for the upgrade! Wish I would have known though, just prepped the gear and can’t look at my recipe! (Also shout out to Chris Hart and the Hoggetowne Ale Works. I didn’t start brewing until I moved away, but was definitely inspired by you guys.

RSS feed for comments on this post · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: