DevOps Zone is brought to you in partnership with:

Patrick Debois has been working on closing the gap between development and operations for many years. In 2009 he organized the first conference and since then the world is stuck with the term 'devops'. Always seeking for opportunities to optimize the global IT instead of local optimizations. Patrick is a DZone MVB and is not an employee of DZone and has posted 39 posts at DZone. You can read more from them at their website. View Full User Profile

Translating Code Smells in Server Smells

  • submit to reddit

At xpdays Benelux 2009, I attended an interesting session called 'Developing a Sense of Smells' by Kevin RutherFord and Lindsay McEwan.

The exercise we did went as follows: suppose you are asked to do some work on code you never saw before. How would you assess this, go about estimating the effort and explaining that effort to justify the price/number of days. The first round resulted in terms like 'look for design patterns', 'readibility of the code', ...

Then they explained code smells patterns: f.i. a greedy function: one function that does way to much making it difficult to change, hidden secret: internal knowledge such as the real interpretations of a CSV file data format that can not be deduced by looking at the code. The code smells made it easier to express the problems.

The devops in me,thinks that this can be translated to the sysadmin world. Here are some of the 'smells' I've come up.


Private Playground

The sysadmin uses the system as his toy playground, doesn't clean up.

  • /tmp & /var/tmp full of old install files
  • / full of files

Gready Server

One server that does every function

  • combined mail and web and dns and fileshares
  • all users on the same system

Root is the cause of all evil

  • last show login all root
  • no sudo is activated
  • no sshd keys for logins
  • nfs share/root?
  • Chmod 777
  • most processes run as root

Cranky Crutches

Things that are needed to keep the system alive when failed

  • /etc/ start but no stop scripts
  • kill /stop/start in cron jobs

Nobody lives here anymore

Mainly indicate not much maintenance is done any more

  • Last update is a long time ago
  • Older kernel versions
  • last login was more then x days ago
  • olders reboot is a long time ago

Complexity Conspiracy

Loadbalancers, Cluster software, Dependencies

More is Less

  • All packages installed
  • All services running
  • All ports are open

This is just the beginning, so if you have your own ideas/names, just leave a comment.

Published at DZone with permission of Patrick Debois, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Kyane Ben replied on Thu, 2012/03/15 - 11:09am

Another great idea Patrick!

I would add:

Manually Managed
* all servers are different
* applications are deployed and configured by hand
* no central store of configuration information

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.