I'm certainly not blaming you, Rob, and I fully understand the reasons why
it happens this way. This wasn't meant in any way to accuse you of
wrongdoing or even negligence, it's just a comment on the sad state of
affairs.

I'm mostly complaining about the fact that DevOps was perhaps the worst
idea we've had in systems since I came around in the early 90s, because it
led directly to the "developer-ization" of Systems, which is horrible.

I realize that the impetus was to get Systems Administration recognition
for what it does, and hopefully to raise our profession's status to that of
Development in the eyes of industry, but that was a predictable failure.
Instead of more status, better pay, and more actual power, we've gotten the
response of "Oh, you CODE too?  Great - let me give you MORE work, and take
away MORE power, but hey, we'll give you more responsibility!"   And, of
course, no more pay.  DevOps people make the same as Systems Engineers, and
less than equivalently-experienced. Which was the situation 10 years ago
before DevOps came around.

We lost the old position of Toolsmith, which at least used to be a real
software developer that worked closely with Systems people and thus was
fully aware of the requirements and limitations of systems/operational
settings, and could code appropriately.  Now, as "developer-Lite", we're
expected to not only keep up with the fad-of-the-day in development land
(and, thus, have to devote significant time and energy to actually having
to learn to code in whatever is the "hot" thing right now), but the
requirements of sys/ops are COMPLETELY glossed over.

To quote a favorite movie line:  Nice job breaking it, hero.

NodeJS is a stellar example of this.  Given the option, no sane systems
person should ever allow something that incompletely developed/mature (and,
I'm talking about the platform/language here, not specific apps) anywhere
near critical infrastructure. App-land, maybe, but certainly not running
systems services or doing stuff that has root-level privs. NodeJS is
currently worse than Java 1.0 (i.e. 1.1.8) in terms of usability,
reliability, and maturity for systems work.  But, here we are, with all
sort of systems tools written in half-baked platforms, in 19 different
ways, none of which has any hope of being understood by the average systems
person. Because they break ALL THE TIME, and no matter how good you are, I
have yet to meet a systems person that can debug system-app-level problems
efficiently in more than a couple of languages.

For instance, a typical setup here at my place requires me to understand
how to read stack traces of Ruby, Java core dump/stack traces, NodeJS
errors, SQL dumps, Python errors, C/C++ core files, bash script errors, and
that doesn't even include the Windows-specific stuff (PowerShell, .Net
dumps, and VBScript crap).   It's ridiculously impossible to be good at all
that. Even sharing the workload across a team isn't practical, since you
need at least 3 people to understand EACH setup well enough to get decent
coverage.  The numbers don't lie - you'd need a team of 6, presuming each
person was good at 4 of the preceding.  The environment has 3.   So, when
stuff breaks, the most we can do many times is take a brief look, look for
stuff that sticks out like a sore thumb, and pray we didn't miss anything
more. <sarcasm> Which does absolute *wonders* for stability and
reliability. </sarcasm>  And that's typical for most places.

I can cope, because I've been doing this 20 years, and I've also got a lot
more developer-style experience than typical for a systems person (I do
release mgmt, also).  But I weep for the new generation, because what
happens is that they don't know what to learn that's useful, and the
over-emphasis on the "Dev" in DevOps means that I see seriously deficient
systems skills in the new generation, and a decided lack of emphasis on
them learning those skills.  This isn't the new gen's fault - they're being
forced to learn the "tool of the week" and spent lots of time coding, when
the reality is that systems are nowhere near transparent and automated
enough to have us skimp on traditional systems-level knowledge, like
performance (network and systems) analysis, understanding of hardware (i.e
why is a Xeon X5500 different than a X5600), and the like.

We've desperately needed reasonable, ENFORCEABLE standards for the
profession for over two decades now, and we keep failing to understand
that.  At this point, the lack of a Professional Association (like the AMA
or Bar Association, or heck, just the National Society of Professional
Engineers) is really, really hurting the industry, and it's getting worse.

Frankly, with all the technological advances we've made since 1990, we've
taken several huge steps backward in professional standards, conduct, and
developing the systems profession into something more than highly-skilled
janitors.  At least janitors have a union, and can reasonably get shit
cleaned up. We can't.

Sorry for the screed. I'll shut up now.

-Erik



On Sat, Sep 14, 2013 at 4:14 AM, Robert Fisher <[email protected]> wrote:

> I largely agree with you Erik, but over the last few years, as admins
> write more and more code, I have got used to the fact that baseline
> standards for languages vary from site to site. . Back in the day we
> *had* to use C, shell, and Perl, because there were no other options,
> but now we've gone from famine to feast, and there's too much choice.
> Whenever I'm asked to write code by any of my clients, I always ask
> "what language do you want me to write it in?" The worst answer is:
> "whatever you want". I much prefer to see a standard enforced,
> whatever that standard might be. Otherwise, everyone does it in
> "whatever they want", and no one understands anyone else's code.
> r
> At the site I'm on at the moment, Node,js is part of the standard
> toolchain. We have lots of internal code written in it, so all the ops
> team are comfortable using it. It's also used on our front-end, so we
> can better understand what our developers are doing. My last job was
> with a very big Chef house, so everything that was too much for a very
> simple shell scripts was done in Ruby, because everyone already knew
> it.
>
> These days, I can probably count on one hand the number of ops/admins
> I know who are happy using C, and (decent) Perl knowledge is much
> thinner on the ground than it was. I doubt I've done anything serious
> in either of those for close on 15 years. I know critical pieces of
> Solaris are written in Python these days, but IMO they shouldn't be,
> and so far I've felt no pressing need to learn any more than the
> rudiments that language. Obviously the shell wouldn't be an
> appropriate language for handling HTTP requests, so I decided my best
> options for SexyMF were Ruby or Node. (I'd never dream of writing
> system software in Java, even if I understood the language well enough
> to do so.
>
> I picked Node for two main reasons: first, I've been working
> increasingly with SmartOS and Joyent products, and Node is most
> definitely part of the toolchain there. Second, I wanted to know more
> about the language, and there's nothing like doing a proper project to
> get your head round something.
> I didn't know that Node does run on SPARC until I was some way into
> the project. If I'd realized sooner, I might have gone with Ruby. But,
> it's been an enjoyable learning exercise, so no regrets. If you wish
> to rewrite it in C, be my guest! :-)
>
>
> Rob
>
>
> -------------------------------------------
> illumos-discuss
> Archives: https://www.listbox.com/member/archive/182180/=now
> RSS Feed:
> https://www.listbox.com/member/archive/rss/182180/21319143-b7837b05
> Modify Your Subscription:
> https://www.listbox.com/member/?&;
> Powered by Listbox: http://www.listbox.com
>



-------------------------------------------
illumos-discuss
Archives: https://www.listbox.com/member/archive/182180/=now
RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4
Powered by Listbox: http://www.listbox.com

Reply via email to