DevOps means that a lot of various things to different folks because the discussion around it covers a great deal of ground. The simplest way to define it in depth is to use a parallel method to the definition of a similarly advanced term, agile development. Agile development consists of 4 totally different “levels” of concern. I’ve added a fifth, the tooling level – talk about agile and devops will get method too obsessed with tools, but pretending they don’t exist is additionally unhelpful.
Agile Values – high level philosophy, typically agreed to be embodied within the agile manifesto. These are the core values that inform agile.
Agile Principles –The Agile declaration cites a dozen of these a lot of specific principles. You don’t need to buy into all of them to be Agile, but if you don’t subscribe to several of them, you’re probably doing something else.
Agile methods – a lot of specific method implementations of the principles. XP, Scrum, your own homebrew method – this can be where the philosophy gives way to operational playbooks of “how we shall do that in real world.” None of them are mandatory, simply possible implementations.
Agile Tools – Specific technical implementations of those practices used by teams to facilitate doing their work according to these methods. JIRA Agile (aka Greenhopper), planningpoker.com, et al.
Ideally the higher levels inform the lower levels – folks or organizations that pick up specific tools and practices without understanding the fundamentals might or might not see benefits.
DevOps Values –the fundamental DevOps values are effectively captured within the agile declaration – with maybe one slight emendation to focus on the service or software totally delivered to the client instead of simply “working software.”
DevOps Principles – there's not one agreed upon list, but there are many wide accepted tries
DevOps methods – a number of the ways here square measure the same; you'll use beginning with operations, Kanban with operations, etc. (although typically with a lot of focus on integrating Ops with dev, QA, and products within the product teams).
DevOps Practices –Specific techniques used as a part of implementing the above ideas and processes. Continuous integration and continuous readying, “Give your developers a pager and place them on call,” using configuration management, metrics and watching schemes, a tool chain approach to tooling… Even using virtualization and cloud computing may be a common practice used to accelerate modification within the trendy infrastructure world.
DevOps Tools – Within the DevOps Training Institute in Marathahalli DevOps world there’s been an explosion of tools in release (jenkins, travis, teamcity), configuration management (puppet, chef, ansible, cfengine) etc. While, like Agile, it’s incorrect to mention a tool is “a DevOps tool” within the sense that it'll magically bring you DevOps, there are actually specific tools being developed with the categorical goal of facilitating the above principles, methods, and practices, and a holistic understanding of DevOps should incorporate this layer.
In the end, DevOps may be a little tricky to define, just like its older brother Agile. However it’s worth doing. In the end, what DevOps hopes to bring to Agile is that the understanding and follow that code isn’t done till it’s with success delivered to a user and meets their expectations around availability, performance, and pace of modification.