Slashdot Mirror


The Cult of DevOps

packetrat writes "I was at OmniTI's Surge conference today, which turned out to be, among other things, a meeting of the cult of DevOps. Ars Technica covered the keynote and some of the presentations, but some of the best stuff is in the comments. Google CIO Ben Fried told the tale of a really poorly engineered trading application at Morgan Stanley that he was associated with, and how the way IT was structured there contributed to that engineering and to its spectacular failure, costing the bank untold millions in stock trade processing fees from its institutional customers. He said what he learned from cleaning up the mess has informed how Google runs its IT operations, and a culture that promotes generalist skills. A lot of how he describes Google's approach sounds like the DevOps kool-aid a lot of the other speakers were serving, but it also sounds like common sense — are most IT organizations really that poorly run that developers are totally unaware their software is sending messages that are generating network storms, or network engineers are clueless enough about QoS to route leased lines into their data center through their public-facing Internet?"

18 of 114 comments (clear)

  1. Cult of DevOps? by merlinokos · · Score: 4, Insightful

    I'm not sure I can take anybody who calls an attempt to make IT and Development more aware of each other a cult, seriously.
    The traditional way of doing things didn't work for 30 years. Why is it that when people are trying to make (and apparently making) a difference to how companies work, they're regularly denigrated by a large subset of the very people whose working lives they're trying to improve.
    Haters gonna hate, I guess.

    1. Re:Cult of DevOps? by wisty · · Score: 4, Insightful

      I'm guessing the main haters are sysadmins, who see threats to their importance and way of working.

      It's no longer desirable to have a gradually grown system. Everything should be built on virtual machines from scripts. You no longer need a wise old guy with a beard to change anything - who cares if your modification might trash the system? You can spin up a test instance, and dump it if it doesn't work right. If you have two apps that don't play nice with each-other, just put them on difference machines. The philosophy of a DevOps guy is very different to that of a sysadmin - you don't do brain surgery on a horse while it's in the middle of a race. Just shoot the damn thing, and send in a healthy clone. (Or would you prefer a car analogy?)

      There was a world of difference between "works on the dev box", and "works in the production environment, without screwing up anything else". That gap is getting bridged by DevOps practices. OK, you still need people with sysadmin skills, but the way they work (and the things they have to learn) is becoming a lot more like development than sysadmin work, and sysadmins are not bred to like change.

    2. Re:Cult of DevOps? by gmack · · Score: 4, Interesting

      And how do you know the new VM won't have the same problem? If you never know what went wrong and fix the actual problem you will just end up restarting VMs constantly.

    3. Re:Cult of DevOps? by Vanders · · Score: 2

      I'm guessing the main haters are sysadmins, who see threats to their importance and way of working.

      I started life as a traditional sysadmin. Now I'm very much a DevOps guy. I love it. DevOps is a massive improvement on the old throw-it-over-the-wall, compartmentalised way of doing things.

    4. Re:Cult of DevOps? by gmack · · Score: 2

      Sorry but no. What you are suggesting is a more modern "reboot the server and see if that fixes it" and it solves nothing. Somewhere the bug is lurking and waiting to rear it's ugly head again. It could happen in a week or it could happen tomorrow but it's very likely it will happen.

    5. Re:Cult of DevOps? by cduffy · · Score: 2

      I don't think DevOps is new or non-traditional. The *label* might have been invented recently but it's not like Dev and Ops never worked together before. Everyone should know something about everyone else's job, or maybe (from your post)IT and Development should maintain an awareness of each others' status. I've seen a bunch, they all pretty much mean the same thing, and they're all one sentence.

      Huh?

      DevOps isn't about mere communication or awareness -- it's about operations being automated via tools maintained by development, using traditional development methodologies.

      That's a far tighter integration than what's traditional, even in a shop without a wall between the groups.

    6. Re:Cult of DevOps? by gmack · · Score: 2

      I think you have missed the entire point. You still need people who know what they are doing to make the scripts and setup in the first place.

      What DevOps fixes are places where any problem gets passed off on someone else. Software is too slow? Software devs blame the database people who blame the systems people who blame the networking people (if they can) and as a result pretty much any problem is fixed with hardware upgrades and when that becomes impossible you end up with a badly running system but either way the whole thing costs more than it ever should have.

      Case in point: At a company I previously worked at they were building some some bingo software for another customer that required a front end server and a dedicated database server (with hot failover). That's three top of the line servers for 300 concurrent users. Software devs blamed the hardware and when that failed they blamed Java.

    7. Re:Cult of DevOps? by mverwijs · · Score: 2

      I'm guessing the main haters are sysadmins...

      And that is exactly the chasm of the "us" and "them" attitude that the DevOps folks (IMHO) are trying to bridge. Thank you for your fine example, sir.

  2. Recently by prefec2 · · Score: 2

    A while ago I thought most OSS application and framework projects including such Gnome and KDE are in trouble, due to the large use of the fumble-around development approach. Also known as the first code then think approach. All the great model-based, model-driven and agile development methods seam to be far away from the way many OSS projects are developed.

    However, lately I came out of my ivory tower and stood eye in eye with experts from the industry who largely believe that they are professionals and really do great stuff. They also use the fumbling approach. The main difference is the call it agile. Even though it is far away from such an approach. I always thought that one of the problems of our new economy company back in the 2000 originated from being too deep in code and too light on design, planning and documentation. But it looks like, that tinkering is a more widespread way of software development. So I guess that leaves me with bad management (which was not my responsibility).

    Most of these tinkering approaches originate in the absence of developer discipline and the "Add this quick"-management method. but I am telling nothing new. We all know for decades now what is wrong in software development. A lot of people wrote books on patterns (design and otherwise), but in the end if no one follows these patterns the problems remain.

    The "Add this quick"-management originates at large by a misconception of IT and its importance for businesses and other organizations.

    1. Re:Recently by Junta · · Score: 3, Interesting

      Also known as the first code then think approach

      No, it's think *as* you code. You do think some before starting to code, a vague rough picture of the pieces, but you don't invest a lot of time in that 'pure' design phase because the more detailed you plan without proving it out, the more you *should* throw away as you start implementation and realize how ill-conceived your design was or that maybe your design was adequate, but a better way makes itself apparent when actually implementing. Generally when I see a development team incapable of operating at all in this manner and fail to achieve any measure of 'complete', they only 'complete' under other strategies of development on a technicality and produce low quality product. Some management people think that methodology can be used to make piss-poor (cheap) developers serviceable and avoid having to reward/retain good talent.

      A lot of people wrote books on patterns (design and otherwise), but in the end if no one follows these patterns the problems remain.

      I think there are two aspects to this. One is that most development an organization is predestined to operate in a specifc way depending on who comprises it, regardless of what name they pick to describe it. I know organizations that did 'waterfall' and 'changed' to 'Agile', but really just renamed things they did, acted the same, and called it 'Agile'. However, I don't know if this is a bad thing. I think getting too hung up on a specific 'pattern' others preach in conferences is bad, and organically feeling your way for a process that works for your team is better. Awareness is good, but getting locked in is bad.

      However, I have found in the sea of Agile and Waterfall and all sorts of buzzwords a methodology that really resonates with me:
      http://programming-motherfucker.com/

      --
      XML is like violence. If it doesn't solve the problem, use more.
    2. Re:Recently by DrgnDancer · · Score: 2

      It's like anything else. The better your initial plan or design the less likely you are to get surprised and the more likely that the surprises will be small. There's an old saying about plans in the military "The best plans only last until the first bullet flies" and it's true... but that doesn't mean I didn't spend hours and hour planning operations. Sure nothing ever goes exactly according to plan, but a good plan considers as many variants and contingencies as possible in order to anticipate reactions and minimize disruptions to operations.

      Software design is the same. The more time you spend planning and designing, the more likely the final product is to look like the design. It's never going to free the process entirely of surprises and gotchas, but it can minimize them and help to predict how to fit them in. Of course if you keep working toward the "perfect" plan you'll never get anywhere, but spending at least part of your development life cycle on a realistic design rarely hurts and often helps.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    3. Re:Recently by dbIII · · Score: 2

      It makes me think of a conversation from quite a few years ago.
      "Flowcharts? What is it with you engineers. It's software, it's not as if we're building a bridge or anything. We just keep on typing stuff in until it happens and that gets the job done. If it doesn't work we can clean it up later."

  3. You are kidding, right? by sanborn's+man · · Score: 2

    The answer to that question is "yes". In my experience what is it uncommon is to find a truly competent IT organization. And normaly the biggest it is the worse the problems are. But, what could you expect in an age where your IT group is composed with the cheapest guys you could hire with no experienced (and more costly) ones?. Or what about the clueless IT managers with little or no experience on IT?. They can't plan against what they don't know. Yeah, as a colleague told me not long ago, IT life is nowadays like war: long periods of boredom punctuated by moments of sheer terror.

  4. The curse of 'enterprise' by Junta · · Score: 3, Insightful

    I've been around enough to know that this 'new' 'DevOps' philosophy is just the way it always has been done at many successful companies making extensive use of technology.

    I have come to associate the phrase 'enterprise IT' with those who *don't* work that way, and make their lives needlessly complicated. Of course, every last party to the mess will generally recognize it and know what could hypothetically be done about it, but only bitch in private about it and rarely ever push for meaningful change. The reason is simple, so long as it is a complicated mess, it requires a great deal of human care and feeding, meaning job security. Management can't force things to change without huge risk as everyone has sufficiently entrenched themselves.

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:The curse of 'enterprise' by dkleinsc · · Score: 2

      Size of an organization definitely also makes a real practical difference.

      When you're part of (as I am) a technical staff small enough to all fit in the same room, it's very easy to consult across the admin-developer boundary, along the lines of a quick phone call or stop by somebody's desk. Admins and devs regularly interact, both professionally and socially. That also creates a culture where the admins and devs are very much on the same team, are working towards the same goals, and collectively creating less suckitude. Someone who tried to hold back on helping out someone on the other side would find themselves in hot water.

      When you're part of a giant technical staff, though, it's much easier to get silo effects, where in order to consult across the dev-admin boundary you have to go up your chain of command until you get somebody who knows somebody on the other side, then work your way down the other chain of command until you find somebody who can actually work with you on solving the problem. And chances are not tiny that you'll encounter somebody somewhere along those chains of commands that really doesn't like the cross-team work (officially because it's allowing people to work outside of their area of expertise, but probably because they think it will help job security, as you suggested).

      For instance, consider a dev who's trying to make sure they're not doing something stupid with a database. In a smaller organization, they might do something like "Hey, DBAs, is the plan on this query hitting the indexes I think it's supposed to if we run it in production, and is that a reasonably fast way of doing it?" In a large organization, this may be a multi-day multi-meeting effort to track down somebody, so that dev may skip that step so that they can meet their deadline and find that what they did that worked perfectly well in a development or test environment wreaked havoc in the production environment.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
  5. Re:It is always IT's fault by bobaferret · · Score: 3, Interesting

    I think this is the whole point of the devops stuff. It's not IT's fault, it's not the developer's fault, nor is it QA's fault. The larger your organization, the larger communications gap between these 3 areas. The devops folks are there to coordinate and communicate between the three. They may review/write a little code, they may consult on infrastructure, they may make sure things get tested appropriately and meet the customers expectations. For small shops/teams this fairly straight forward. Big shops have to have someone who's job is to know everything about the project. There is a similar position in commercial building. It's the "site manager" they make sure that the contractor is building what the architect asked for. From the number of bathroom stalls, to the depth of the foundation. Which at the same time working with the architect to fix problems that arise from misplaced city sewers lines, an unavailability italian terrazzo tiles in rural Illinois. All the while making sure that the customer is getting what they paid for and understanding and approving changes. Sorry I didn't have a good car analogy.....

  6. WTF are you talking about? Devops is nothing new by Colin+Smith · · Score: 3, Interesting

    Historically a sysadmin has been able to and does write, fix software, and administering large scale systems has always meant templating and then deploying from updated templates... which means having a build system which can build to a template usually automatically (it's boring) which apparently is now called continuous integration. You also need an infrastructure designed to easily deploy changes. VM or physical is almost totally irrelevant, VMs make life a little easier.

    Lets see... Infrastructures.org for example was definitely there mid nineties (and still is, cool.). That's almost a whole generation ago, how old are you?

    I have no idea what makes people think this devops stuff is new. Is it just the fact that there are now thousands of newbies trying to make names rediscovering good practices? Is it just that we now have more large scale systems, or is it that we now tend to have highly distributed vs centralised systems?

    And it's not development. It's engineering. The difference is maths.

    Go on, get off my lawn!

    --
    Deleted
  7. The "it's not my problem" problem by Opportunist · · Score: 2

    It can be summed up like that: If the problem will arise in an area he isn't responsible for, and if implementing it that way regardless is cheaper, faster or less problematic for his department, he will implement it that way.

    Running the traffic through the internet instead of the LAN? Why not? It's not going to be the development's problem (since that's operation's problem), and it's faster to do it that way, so it's done that way. A user interface that makes users beg to break the programmer's fingers and make him a consultant? Not the programmer's problem, it's the user's problem, and if he can implement it faster with a shabby interface, it will be done that way.

    The problem isn't that the people wouldn't know that these problems will surface. Often they know that quite well. The problem is that this is not a criterion, while the time they spend on solving the problem is. Hence, whatever lets him get it faster off his table will be the way it is done.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.