Saturday, May 10, 2008

Book - Release It!: Design and Deploy Production-Ready Software

I came across the book from the announcement of 2008 Jolt Productivity Award. This book talks about what could go wrong (antipatterns) once a system go into production and what we could do about it (patterns). The focus of the book is not about what's in the spec but about what's not in the spec. There are 4 parts in the book, stability, capacipity, general design issues and operations. I listed below several points which impressed me most.

  • Timeout - "Any resource pool that blocks threads must have a
    timeout to ensure threads are eventually unblocked whether resources become available or not
    ".
  • Conway's law - "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations." It's communication structure that matters, not hierarchical structure.
  • Multiplier effect - For a webpage containing only 40kb of useless data, if that page is hit 1000 times a day, it means 40mb of bandwidth is wasted per day.
  • Multihomed Servers - Server sockets of an application should bind to the networks they listen to. For a server socket handling administrative requests, it should bind to the administration network, not backup network or production network.
  • Protocol Versioning - No matter what protocol systems use to interact, it will change. So having the version be part of the message exchange will help ease the chage of protocols.

6 comments:

Anonymous said...

Hi Ken:
我無意間在google上面找到你的blog, 並瀏覽過你的blog. 看完後, 有種找到高手的感覺. 我本身也是從事軟體開發, 不知道是不是可以跟你交個朋友. 謝謝.

我的英文名字:Feynman KJ Huang.
Email:feynman.kj.huang@gmail.com

Ken Wu said...

Feynman,

I'm glad to make a friend like you. Hope the information here is useful to you.

Anonymous said...

Ken:
Could you please send me your email, and we could talk together?

Regards,
Feynman

Ken Wu said...

Feynman,

Sorry about that. I've updated my profile to include my email address.

Jack said...
This comment has been removed by the author.
Jack said...

Data processing services are helpful in streamlining a wide range of corporate activities and operations. Data processing and related other services are not only good to present the full and processed data that is to be used for the overall benefit rather their primary function is to present an insightful explanation of the data.
sap upgrade planning