[EMAIL PROTECTED] wrote:

Please help me with a debate....

Who looks after your stack of software - such as in a typical LAMP environment?

I propose that in most cases, it's been the UNIX admins who put together the
systems then install and basically configure the apps that make up the
suite of apps that can be called an Information System such as a httpd,
php/perl plus SSL/TLS and a databases such as Mysql or Postgres.

Of course there are also support shared objects and so on to consider
as well.  They maintain all this when there is an upgrade required
or if a new feature needs to be added.

How are you all doing this?

Interesting question, since right now myself (the app developer) and another
party (the sysadmins) are working together for the same client to deliver
a web-based product.

In order that responsibilities are clearly known and understood from the
beginning, we have agreed that the sysadmins are responsible for:

(*) installing the O/S
(*) installing the LAMP components
(*) maintaining the system and doing upgrades
(*) system backups, data backups, system monitoring
(*) testing backups really work
(*) assist with documenting system config
(*) keep things like cron, rsync, mail, etc. up & running

As a programmer/analyst, I insist on thoroughly testing the fruits
of their labours before I proceed to write and deploy an application.

(*) I usually have to to tweak parts of the LAMP install after testing,
    e.g. database: incorrect permissions for users
    e.g. httpd.conf needs tweaking for a specific add-on, sub-system, whatever
         esp. mod_perl: things only the programmer can discover
    e.g. some security considerations may need tweaking
    BUT! These kinds of changes are really minimal and do not affect the
    overall installation of a fresh system
(*) I am responsible for the source code tree of the app I am writing
    and maintaining it in revision control
(*) I am usually responsible for writing, testing and deploying any
    cron jobs that are required: they are usually intricately linked to
    the application I am writing
(*) Writing documentation (user / system / test/ configuration)
(*) Ensure documentation and edited config files are stashed in the
    revision control system as well.
(*) TESTING: I can only test so much (esp. unit test). I will write
    regression tests when possible. Then I leave the remainder of testing
    (esp. acceptance test) with the end client. They must sign off on
    the app and any changes to it. If they do not want to do the acceptance
    testing, they must hire skilled consultants who can do it.

The separation of responsibilities is a practical one. If a new box
needs to be cloned, the sysadmins should be able to do it in a few
hours, based on the documented existing server. Then I should be able
to grab a database replica, deploy the source code and test the app
within another few hours.

As well, once the software app has been signed off and accepted by the
client, I should be able to be hit by a bus without consequence: the
sysadmins can continue to run the flawless (!haha!) system with very
little intervention or tweaking.


HTH

cheers
rickw




--
_________________________________
Rick Welykochy || Praxis Services

Power corrupts and PowerPoint corrupts absolutely.
     -- Vint Cerf

--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to