Exemplify CI/CD to a colleague from Microsoft world using product-neutral terms After a chat with a colleague who collaborates with quite high-end projects on Microsoft stack (for example, ASP.Net + MS SQL Server). 

An interesting outcome was that although I believe that DevOps must be possible in the Microsoft world as well, my knowledge is too little so that I cannot give good examples how he could organize a CI/CD approach. Indeed in our community there are some hints about Team Foundation Server and PSBuildStack (?), but an official source does not reveal all that at a glance. The described hosted services make it even less transparent for a newcomer - is that a cloud build environment like CloudBees/BlueMix?

So, my question is now: how could I describe an example of mature toolchain using established DevOps terms which are valid more or less independent from specific environment/tooling - or do we have to admit that this engineering terminology is not there yet?

Something like this:


Source code version control system
Build agents
Automation and packaging scheduling system to encapsulate artefact composition logic
A binary repository (different classes of binaries: libraries, distros, container images)
A configuration repository for different environments
Package and configuration distribution system to encapsulate deployment logic
I would say that instead of describing a CI/CD system by the products/tools that you use, you should be describing the system by the purpose of each step in the system. Instead of saying "I have a Jenkins server that builds the artifacts, stores them in Artifactory, then Puppet deploys the artifacts to EC2." You could say, "Our build server creates and stores our artifacts in an artifact repository. Then our configuration management software detects the artifacts and deploys them to our cloud infrastructure." Your colleague can then make the connections and find the correct solution that Microsoft provides.