Luke Kanies wrote:

I actually think problem modeling in the different tools is really, really interesting.

But actually, problem modeling exists independent of any tool.

I know that the way Puppet forces people to model problems is different than how other tools would (at least partially because of the closure work that you did); some of this is really good and makes for clean configurations, but there are some negative trade-offs, too. Also, because Puppet can only operate at the level of resource -- a whole file, a package -- there are yet more tradeoffs made.

I have two "practice" case studies for the group to consider.
Both are about modeling, and both represent workable ways of thinking.
Neither is tool-centered.

a) When I learned about VLANs, I had to completely relearn network
   management, because they were so foreign an abstraction. But, as a
   result, our network became thousands of times easier to manage.
   But it literally took an expert engineer taking me in hand and
   training me on how to *think* about VLANs before I could grasp the
   impact. Just reading about them in the manual bounced off. And I'm
   an *expert* on classical networking. In particular, it was difficult
   for me to stop thinking "routers" and start thinking "switches".
   The problem was that I was thinking of the switches as boundaries.
   A better model of a VLAN-centered network is as a series of
   intermeshed *clouds* made each from multiple switches!  The hardest
   thing to learn in this environment was how the clouds behave. It took
   an expert to guide me, change by change, to a new way of thinking.

b) Our staff here has turned use of package management for configuration
   management into an art. To accomplish a change, one encapsulates that
   change into a package. Most packages are idempotent in the sense that
   applying them twice via -force has no detrimental effect. The metric
   of success for this is that:
   i) When I point out that something is broken, they can fix it in
      seconds by forcing a package re-install.
   ii) I have to point out that it's broken:)
   More important than this, though, is the way they have learned to
   interact with the package system. Our configuration management
   strategy is 90% discipline and 10% tools. The staff have evolved
   a way of *thinking* about configuration changes that keeps them
   out of trouble; they know to encapsulate idempotent operators in
   packages, which they do with some care.

Now these two cases point out the human condition that pervades our discipline. I could only adopt a new strategy by being led by an expert.
No amount of reading could make me *think* in a different way.
On the other hand, my staff has a "highly effective" configuration management strategy for the needs we have. Its only detriment is that
it lacks a monitoring mechanism for feedback. And it is 90% practice,
10% tool base (it is powered by a very short script)!

In both cases, the "rosetta stone" was a way of *thinking* about the
problem that is independent of tool base. While adopting a tool can
be a very heavyweight process, adopting a way of thinking is easier
and often more productive!

--
Dr. Alva L. Couch
Associate Professor of Computer Science
Associate Professor of Electrical and Computer Engineering
Tufts University, 161 College Avenue, Medford, MA 02155
Phone: +1 (617) 627-3674
Web: http://www.cs.tufts.edu/~couch
_______________________________________________
lssconf-discuss mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/lssconf-discuss

Reply via email to