Ask HN: What does “DevOps” mean to you?
I'd like to hear your answers! I'm currently on the job market for DevOps roles, and I've been asked this question multiple times. It's not a question with a "right" answer, but it doesn't seem like an "opinion" thing, either - it's not that being right means someone else is wrong. Rather, it seems to be a question of perspective. Which seems like a good question for the HN community... what are our perspectives on "What is DevOps?"
10 comments
OP here, and I'll try to answer this myself.
For me, DevOps is about communication. This is a little different from the common "DevOps culture" response. How do different people and different teams communicate for the shared goal of moving software from a developer-facing world to a customer-facing world?
This generally means "deployment", a handoff of some sorts, and copying the software from development to production environments. How is this communicated? How does the producer know what to tell the consumer so the consumer can deploy to a new environment? How does the consumer communicate what they need to know?
In more traditional environments, this means meetings and written plans and tickets. Details are written by humans, for humans. In a "DevOps" environment, the communication is via automation. The steps to deploy are fully programmed; only configuration data varies between environments. This way, development and operations teams are speaking a common, formal language. Vagueness and interpretation are banished. The plain meaning is there, in the configuration. The deployment itself becomes configuration! Humans only need to be involved to provide go/no-go approvals.
Of course, that's not everything. But that's what matters to me. When development and operations stop communicating with words, and start communicating with formal, machine-readable configuration, a language free of opinion and interpretation.
For me, DevOps is about communication. This is a little different from the common "DevOps culture" response. How do different people and different teams communicate for the shared goal of moving software from a developer-facing world to a customer-facing world?
This generally means "deployment", a handoff of some sorts, and copying the software from development to production environments. How is this communicated? How does the producer know what to tell the consumer so the consumer can deploy to a new environment? How does the consumer communicate what they need to know?
In more traditional environments, this means meetings and written plans and tickets. Details are written by humans, for humans. In a "DevOps" environment, the communication is via automation. The steps to deploy are fully programmed; only configuration data varies between environments. This way, development and operations teams are speaking a common, formal language. Vagueness and interpretation are banished. The plain meaning is there, in the configuration. The deployment itself becomes configuration! Humans only need to be involved to provide go/no-go approvals.
Of course, that's not everything. But that's what matters to me. When development and operations stop communicating with words, and start communicating with formal, machine-readable configuration, a language free of opinion and interpretation.
The key ingredient is a culture of developing for a production operations in mind. Throwing 'works in dev' code over the wall is its antithesis. This entails wider-scoped work for ease of operation. The interesting bits for me is better called OpsDev where development is specifically for automating operation for improved reliability and performance.
Not trying to discourage more discussion here, but I actually recently wrote an article on this exact topic that I think you'd find helpful: https://stackshare.io/posts/experts-explain-what-is-devops
Thanks! I'm writing about it too, but while writing, I realized it would make an excellent HN thread.
I think John Willis is one of the "core four" who helped create the term, and he has a good writeup at <https://itrevolution.com/the-convergence-of-devops/>.
Here in Austin, one of the leaders in this space that I follow is Ernest Mueller, and his writeup is at <https://theagileadmin.com/what-is-devops/>.
There's a reason why Ernest and crew helped create DevOpsDaysAustin, and thankfully for us, he's still one of the key figures behind it.
Here in Austin, one of the leaders in this space that I follow is Ernest Mueller, and his writeup is at <https://theagileadmin.com/what-is-devops/>.
There's a reason why Ernest and crew helped create DevOpsDaysAustin, and thankfully for us, he's still one of the key figures behind it.
Another fad that will be gone leaving little to no meaningful change like all the other fads before it.
It's when my "compiler errors" are system outages.
I think that is called DevOops
Based on what I see out there I've come to learn that DevOps means "sysadmins with containers".
imho DevOps means setting up, for a development team, the tooling and the infrastructure they need to create and move their work into product ... it is specifically not system administration