php - How to manage gradual deployment of a web app -
i developing web app , want able stagger deployment of new builds , versions across our users. example...
- deploy new version of app , migrate couple of test accounts testing
- when testing happy, move 5% of customers new version , monitor support problems , server load problems customers.
- if still going ok, gradually move more , more customers on new version until updated.
fogbugz , kiln fogcreek using deployment system this. can read here...
the problem trying solve @ moment that different accounts on system can using different versions of code.
what way of managing , controlling this? can apache of heavy lifting here? want avoid overhead, or weird loader scripts work out send request. how web apps fogbugz on demand deal problem? there recognised design pattern this?
the users identified via domain name (eg user1.example.com, user-bob.example.com, etc).
there hundreds of ways accomplish this; let's think @ high level without talking specifics of architecture:
- large public sites yahoo , msn handle design changes random samples , set cookies long timeouts identify should receiving new design.
- for paid upgrades , beta invites should able identify , tag customer accounts receive new 'design' or feature set upon login. instance, new updates digg v4 logged-in , opted-in customers only. facebook had similar rollout across system new profile pages.
- you may decide pay beta testers. can use amazon's mechanical turk or sites custfeedback.com
the specifics , architecture. you've written software functionality in mind; , you've provided easy ways provide both application , database upgrades @ deploy time. magento (an open-source e-commerce platform) handles well. each module built in form of plugin , each of components keep record of own version. database upgrades performed on fly install , upgrade scripts based on new/future version retained in configuration files.
you may choose move beta testers new domain or database has more detailed logging , realtime analysis production machine. method mentioned in kiln blog post - referenced site http://martinfowler.com/bliki/bluegreendeployment.html - eventually, accomplish segregation of accounts , traffic, have consolidate. you'll need perform migration in maintenance window , same version.
best of luck!
Comments
Post a Comment