On Thu, Mar 26, 2009 at 03:12:08PM -0400, David Golden wrote:
> On Thu, Mar 26, 2009 at 2:59 PM, Ovid <publiustemp-perl...@yahoo.com> wrote:
> > That's the main reason why our tests don't run on production right now.  I 
> > would like, at the very least, to have a './Build sanity' target to ensure 
> > that guaranteed non-destructive tests are run, but the strange argument I'm 
> > facing is that "production should be an exact copy of staging and thus 
> > tests on staging should be enough".
> > The word "should" makes my trigger finger itch.
> So test the assertion that production is an exact copy of staging.
> E.g. md5sum of a manifest of files.  If there's a concern about
> processor load, use a cheaper checksum and bump up if there is a
> collision.
> Or handle it via process -- who's on the hook if the assertion fails
> and make them sign something affirming it.  Pass the buck.  :-)

Live and staging aren't the same and never will be. They probably have
different IPs, probably are on different networks, probably have
different data in their databases, (eg where I work, live will have
patient data on it, staging won't, because the whole point of staging is
that it's there to catch errors in the code like sending SMSes to the
wrong people at the wrong time telling them to take their drugs), and
they certainly have different loads, hence different running processes,
and different interesting ways in which processes trample on each others'
temp files.

But the software should be the same.  That's what a package manager is
for, and why you don't 'Makefile.PL;make;make install' on live, you do
that in dev and test, create a package, install that on staging, test
to buggery again, then install on live.

I wish.

-- 
David Cantrell | Hero of the Information Age

  Longum iter est per praecepta, breve et efficax per exempla.

Reply via email to