Proposal: DevOps
Unfortunately there is currently too much (negative) hype attached to the word devops. But there is also increasing interest into this field, as you can see new proposal are being opened on topics that would be a subset of this one (namely, continuous integration, chef, software quality assurance...). So I am trying to reboot this proposal, which already had many good questions here: http://area51.stackexchange.com/proposals/66151/devops
Trying to stay away from that (the hype), and simultaneously trying not to start the customary religion war between SOers doing sysadmin and SFers writing code, I can tell you what are the responsibilities of my work position, and why my questions would most possibly be off-topic on stackoverflow and serverfault (and several questions that are already in the proposed examples were real questions which had been closed). Sometimes because they are just off-topic, sometimes because opinion-based, sometimes just nobody will answer them. Note please that all of these examples do not define a different scope to the questions, but do address and require a different scope for the answers: so that a "give me options for task" question that would rejected on SO and SF would be well accepted here (if it is not blatantly lame, obvious).
development support
This spans from configuration of a code-review system, like gerrit, or static code analysis, and how to let these components interact. In part it's about procedures and guidelines, in other parts it is scripting, it often requires programming, and always basic sys-admin.
- how to require at least three +1 CR votes in gerrit for approving a changeset?
- how to let sonar cast votes against CR instead of V when integration test coverage is below a threshold?
- what is a git repository setup that allows snapshots releases of components in the dev environment, and two differently versioned release branches for staging and production?
continuous integration
This boils down to integration testing configuration and reporting, and homogeneity of components build processes (well; a lot more actually, but I don't want to start my daily rant against agile here); would mostly be a sysadmin role against a build server, but requires very deep knowledge of build tools, the language, how to write good tests, and testing code in general.
- how to classify maven-generated rpm packages of spring java components in nexus, for the different deployment environments?
- functional/integration test failing with unit tests successful? how to report/what to do?
- how to enforce semantic versioning in commits, accordingly to integration tests results?
continuous deployment
This is power-scripting helped/depending on very different, but very specific, tools (chef/puppet/rundeck/...). While it is true that the provisioning of standard services to service nodes is pure sys-admin (i mean tomcat/postgres/postfix/....); the same for in-house components composing a platform requires very strong understanding of a software architecture.
- what is a good way to mark a nightly compose as a "good nightly", so that the most recent is used as a staging release-candidate when the sprint ends?
- should deployment of development environment be triggered by the code review code repository, and staging/production from the canonical one, or every envronment from different branches in the canonical one? (note: this is primarily opinion-based on purpose)
- how to setup the chef environment so that the httpd proxy load-balancer is updated when a new node of an horizontally scaling component is deployed?
monitoring
This is not monitoring of liveliness of a smtp server on a random linux distribution; it is the glue between monitoring facilities exposed by the deliverables and external monitoring tools. This need strong understanding of the software architecture, development skills for this specific duty, domain knowledge. Counter-intuitively, this would be most often closer to being on topic on programmers, then server fault.
- how to write the xml configuration of an hyperic agent plugin for the mbean exposed by spring in this way?
- what mechanism is available for dynamically changing the threading of an activemq queue consumer accordingly to the fact one broker of a two nodes failover setup failed?
- how to write a EL query that returns this, given that setup of logstash tags?
In doing my daily job of build engineer, I ask myself hundreds of these questions. Sometimes stackoverflow fits, sometime server fault does (less often); anyway, it would be awesome to have a tool of the same utility and helpfulness of stackoverflow, to answer all the questions that would be marked off-topic, getting help and letting share my knowledge with others.