<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- This document is licensed using the GNU Public License version 2 -->
<html>
<head>
- <link rel="stylesheet" href="../../mrtg-td/slides.css" type="text/css">
+ <link rel="stylesheet" href="../mrtg-td/slides.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Language" content="en">
<meta name="Author" content="Petter Reinholdtsen">
+ <title>Writing enterprise ready software</title>
</head>
<body>
<h2>We are in trouble</h2>
+<p>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?
+
+<h2>Trouble moving</h2>
+
<p>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
openoffice configuration. - not using relative paths
-->
-<h2>More trouble</h2>
+<h2>Downgrade trouble</h2>
<p>With 900 linux machines with common user database and home
directories while running different versions of programs, users will
full, one do not want to kick out 30000 users to take down the
database and resize the file system.</p>
-<h2>Disktrouble</h2>
+<h2>Disk trouble</h2>
<p>RAID is only only useful until the last redundancy disk is lost.
<p>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 coorporate network
+and blocked in the router -- or try to get the corporate network
gatekeeper to open up the firewall</p>
<h2>Version trouble</h2>
<h2>Usability trouble</h2>
-<p>When starting a program from the meny, where does it go if nothing
+<p>When starting a program from the menu, where does it go if nothing
appear on the screen?
<p>Do users always read their ~/.xsession-error file?
-Providing hooks to the local admins
-
-backdoor - alternative way in. fixing 800 machines by hand is not
-possible. - ssh config fuckup
-
-reduce flexibility. trying to support people over the phone when the
-gui is different for every person is a pain.
-
-
<h2>Clues for the clueless</h2>
<ul>
the operations needing root access. (build / configuration as well)
<li>make sure the software can be installed anywhere (location
- independent), avoid hardcoding paths into the binaries.
+ independent), avoid hard coding paths into the binaries.
<li>make the source available to make it possible to fix problems on
site, and to use it on different platforms (os/hw) in the future
+</ul>
+
+<h2>More tips</h2>
+
+<ul>
+
<li>Make paths into users home directories relative to ~user/, as users
will move from disk to disk, or copy their home directory from site
to site. Always convert paths when saving config files.
extra library in place
<li>use well known libraries instead of making your own implementation.
- reduses the security risk.
+ reduces the security risk.
<li>make sure libraries, and programming languages are backwards
compatible.
<li>use a well known license. it is a pain to evaluate every new
license
+</ul>
+
+<h2>Make it easier for everyone</h2>
+
+<ul>
+
<li>when distributing source, do not use vendor specific compiler
features. It will not work with the other vendors compilers used to
compile on site.
<li>system services should send messages to syslog. always log why when
crashing. always log problems and errors.
-<li>reuse configuration. ktouch have its own x layout setting.
+</ul>
+
+<h2>Final clues</h2>
+
+<ul>
+
+<li>reuse configuration when possible. ktouch have its own x layout setting.
better to fetch the current one from X like xkeycaps.
+<li>providing hooks to the local administrators
+
+<li>reduce flexibility. trying to support people over the phone when
+ the gui is different for every person is a pain.
+
+<li>do not try to cleverly find the final resting place of the installation.
+
</ul>
<h2>Solving the upgrade problem using multilevel
<li>local configuration should be kept during upgrades</li>
- <li>easiest to do if the local configration is separate from the
+ <li>do not change configuration file format</li>
+
+ <li>easiest to do if the local configuration is separate from the
package default
<li>several actors what to have a say in the service
</ul>
-
-
<h2>Thank you very much</h2>
<h3>Questions?</h3>