amonroy has asked for the wisdom of the Perl Monks concerning the following question:
Dear monks,
I would like to hear your comments/critiques about my design of a perl program that will deploy updates for a database-driven web application. I can change everything excep the design of the web app itself.
About the web app.
It's the typical LAMP (Linux, Apache, MySQL, Perl) application. It's composed of CGI's running under mod_perl, lot's of perl modules and a database. All of the components change quite frequently: the software (sw) and the database (db). A change in the db typically involves a change in some pieces of sw. There are also sw fixes that are independent from sw-db changes. Some customers pay for sw-db updates others pay just for sw-fixes.
About the update mechanism.
There will be about 1,000 clients using this mechasim on a monthly basis. Each client has it's own installation of the web app in a dedicated server. They have to apply the monthly updates sequentially, meaning that they shouldn't apply the October update if the September update hasn't been applied.
I am thinking in implementing it in a way that it could be executed in the command line (similar to how you execute yum or apt-get), as a cron process or even with a web interface (in the future).
About the montly releases.
Each release is composed of three tar files:
The content of the sw-db.tar and sw-fixes.tar is just a group of .pm and .pl files that will be deployed in certain directories.
The content of the db.tar is an xml file with a section for DB table. Each table section in the xml file has an <update>, a <delete> and an <insert> section.
The process.
Depending on the IP address of the client, the update server might not provide db and sw-db packages.
Some clients are not able to connect their servers to the internet so the mechanism should allow for other means of distribution of packages, ie. bringing the files in a CD or something like that.
The program should be able to stop at any give step and continue.
Thanks in advance,
-Andrés
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Designing a monthly software and database update for a web app
by Zaxo (Archbishop) on Oct 16, 2004 at 22:31 UTC | |
by amonroy (Scribe) on Oct 17, 2004 at 00:26 UTC | |
|
Re: Designing a monthly software and database update for a web app
by pg (Canon) on Oct 17, 2004 at 00:02 UTC |