The ideal DevOps team structure


68 points | by torvald 98 days ago


  • dcsommer 98 days ago

    Whenever I see articles about DevOps, I find myself wondering what exactly it is. It seems to mean different things to different people. Without any definitions in this article, I find it hard to understand what they mean by "Dev", "Ops", and "DevOps".

    • the_common_man 98 days ago

      Devs are those who dabble in code. Ops are those who run and administer systems that run the code.

      Devops is the act of codifying your operations. Automating deployments, ci/CD things like that. Putting alert and monitoring systems in place.

      That's my understanding.

      • nodesocket 98 days ago

        The following bullet points encapsulate DevOps to me:

        - Codifying infrastructure with tools such as Packer, Terraform, Ansible. The infrastructure should be just as auditable, repeatable, and transparent as the code.

        - Empowering and allowing the engineers who write code to deploy it.

        - Immutable servers/containers.

        - A solid suite of monitoring and alerting tools that auto-heal (preferred) or at least notify when things go wrong.

        • ryeguy_24 98 days ago

          I think 1 and 3 are just certain ways of doing DevOps. Out of the 4, I think 2 seems most accurate.

          • paulddraper 98 days ago

            #2 is the human combination of Dev and Ops

            #1 is the technological combination of Dev and Ops

            #3 is a corollary to #2

            #4 is just good Ops

        • jiveturkey 98 days ago

          That's not it. Those are all things your normal (non-devops) ops teams do. Ops teams run the gamut from "I can barely install an rpm, we have dedicated people to configure postfix", to teams that write their own batch scheduling systems. At the high end, we call these teams SREs. At the low end, tier-1 helpdesk.

          Devops is when those things cross over into normal developer work. The developers take on these "ops" duties themselves. It may or may not involve actual development. It always involves devs having to understand the infrastructure their code runs on.

          Done right, it's a good thing. It makes devs sensitive to how their code is deployed and run in production, without being able to blame some other team for the application not performing well, not having adequate availability, etc.

          Usually, it's not done right.

        • fuzz4lyfe 98 days ago

          Its when you do three jobs at once and get paid for one in my experience.

          • empath75 98 days ago

            You get paid for at least 1.5 jobs if you have the right buzzwords on your resume.

          • riffic 98 days ago

            It's said that if you ask ten different people to define "DevOps" you will receive ten different answers. I would try to look past giving the word a formal definition.

            • nineteen999 98 days ago

              > It's said that if you ask ten different people to define "DevOps" you will receive ten different answers.


              > I would try to look past giving the word a formal definition.

              I would hesitate to even classify it as a word, given that it is not found in most well regarded dictionaries. A portmanteau, perhaps.



              • david-s 98 days ago

                i would not look to dictionaries as the arbiters of what is a word or not. they seem to me to be convenient references at best. they frequently leave out common technical jargon.

              • spikefromspace 97 days ago

                I feel DevOps is similar to Agile. It defines a set of principles from which an organization can derive and implement practices that are most appropriate for them. Once enough organizations implement such practices, it leads to some industry wide best practices and some organization specific practices and that is totally fine in my opinion.

              • empath75 98 days ago

                Devops is a way of organizing teams such that developers, qa, and operations involved in a particular product are all working on the same (usually fairly small) team, using the same work backlog, usually using some kind of agile methodology like scrum. You could have people specialized on the team for those tasks, but generally people on devops teams are expected to work any issues that come in so developers will be deploying servers or writing tests and operations people might add features to the app, etc.

                Devops as most people use it also refers to a suite of technologies used by teams organized that way as well as engineers who specialized in that set of tools. Jenkins, aws, containers, chef, etc.

                People might also use it to describe common deployment patterns that devops teams use like ci/cd and infrastructure as code.

                It’s a buzzword, but it does mean something real.

                • dsumenkovic 98 days ago

                  You can check for more details about DevOps term. Also if you are wondering about GitLab DevOps lifecycle, here's the page explaining DevOps tooling

                  • erik_landerholm 97 days ago

                    For us (Truecar) we define it as the developers that work on our orchestration platform (Spacepods). So, we have an entire CI/CD pipleline now and our devops (developers) work on our orchestrator and networking. Our entire infrastructure is represented in code (Spacepods, terraform, docker,ECS,lambda, nginx, Postgres setup, ES setup etc) and our devops employees work on those tools.

                    • jdlshore 98 days ago

                      Their definition of DevOps is encapsulated in the first two sentences of the article. In short, "Developers and IT Operations working together as a single team."

                      This is the original definition of DevOps, which was an outgrowth of the Agile movement. (Agile, of course, has a strong emphasis on cross-functional collaboration.)

                    • upcrob 98 days ago

                      My experience has been summarized pretty well by Charlie Murphy:

                    • k-ian 98 days ago

                      At AWS there is rarely a distinction between dev and ops. Developers manage their service and join the oncall rotation for their own team. We also write all our own tests and manage deployments ourselves (albeit with the help of other AWS teams who maintain test frameworks and deployment tools.)

                      This seems a lot cleaner than the alternative. Sure the devs have greater responsibility, but there's no dev/ops disconnect here.

                      • spikefromspace 97 days ago

                        >>Sure the devs have greater responsibility, but there's no dev/ops disconnect here.

                        I feel this greater responsibility also leads to better code. Do devs in this model also have on-call responsibilities?

                      • blackadder 98 days ago

                        Recommend looking at Good to understand the interplay between different team structures.

                        • petoskystone 98 days ago

                          Ugh ads