Writing enterprise ready software

http://www.hungry.com/~pere/mypapers/enterprise-software/enterprise-software.html

Petter Reinholdtsen
pere@hungry.com
Debconf5, Helsinki 2005-06-12

Overview

We are in trouble

Some things are possible for 1 to 10 machines, and impossible with 500 machines. What do you do when you break the ssh configuration file on 700 machines?

Trouble moving

With 60000 users and about 150 home directory file servers available from 12000 machines, users move from file server to file server. This break several applications when the path to the users home directory changes. (example: /mn/hegel/u1/pere to /usit/saruman/u1/pere).

Downgrade trouble

With 900 linux machines with common user database and home directories while running different versions of programs, users will run several versions of a program with the same configuration files.

Some old trouble

Some users lost the source of their production systems, and need the binaries to keep working for 10-15 years.

No room for more trouble

When the file system for the PostgreSQL database in production goes full, one do not want to kick out 30000 users to take down the database and resize the file system.

Disk trouble

RAID is only only useful until the last redundancy disk is lost.

Automatic RAID status systems need API or command line tools to extract the status. Not like afacli, which go into interactive mode when an error is detected.

Installation trouble

Trying to compile/install software on Irix, Solaris, Linux, HP-UX, Tru64 Unix, MacOSX and AIX when the process require a sysadmin to sit around to answer questions, change CDs, or insert licenses is both painful and prone to errors.

Network trouble

Trying to get some network server to work when it require to use some given port range, which is already taken by some other service and blocked in the router -- or try to get the corporate network gatekeeper to open up the firewall

Version trouble

Given three tcl or php applications, is there one version of TCL or PHP usable with all of these?

Usability trouble

When starting a program from the menu, where does it go if nothing appear on the screen?

Do users always read their ~/.xsession-error file?

Clues for the clueless

More tips

Make it easier for everyone

Final clues

Solving the upgrade problem using multilevel configuration

Thank you very much

Questions?