Taking this one step further:

Scalability dos and don'ts for established companies:


        1. Thou shalt not simply think of bigger and beefier servers
           just to run something faster. The bigger they are, the harder
           they fall.

           Factorize! Break out apps! Make them multiple node-aware!

           And the a-word... algorithms! Revisit them for homegrown tools.

           (We once were able to invert a data structure in perl,
            leading the app runtime to drop from 25+ minutes to a
            second or two.

            Someone had suggested we put the app on faster systems --
            err, um... Wiser heads prevailed and did a proper analysis
            of root cause for the app slowdown using profiling tools,
            noticed the data structure was improperly set up, and bingo.

            Fix took a second or two to implement, with stunning results.

            Saving the company thousands of dollars is pretty good, huh?)


        2. If you want scalability in a cluster env, don't think of
           doing a single node failover cluster.

           Think of N+1 with distributed tools, distributed
           cluster-aware filesystem, amongst other things.


Thank you very much; this grumpy old man [of all of 37 years on the
third rock from the sun] now returns the gentle reader to the regularly
scheduled LOPSA rants. :-)

-Dan

P.S. If we ignore algorithms and data structures, the work of Donald
Knuth and others such as Brian Kernighan (in an excellent book) are
truly lost. Tweaking these two things are often where the largest gains
are made, if intelligently analyzed.

Even at the sysadmin level, being mindful of this can lead to much cost
savings for companies or organizations if you can deploy a small fleet
of inexpensive servers to run distributed-aware apps instead of a
colossus server to run a non-distributed app at significant markups
(including support costs and availability/downtime scheduling issues).

P.P.S. Look at the GOOG model for their gear; truly distributed at an
incredible scale. How do they do it? Think about that; what they do is
truly a model that can be emulated even at far smaller scales. Or
larger. That, by definition, is (true) scalability itself.

Of note: <-- GOOG investor albeit a single share. Fair disclosure and
all that jazz.
_______________________________________________
Tech mailing list
[email protected]
https://lists.lopsa.org/cgi-bin/mailman/listinfo/tech
This list provided by the League of Professional System Administrators
 http://lopsa.org/

Reply via email to