What is DevOps all about? DevOps is an emerging set of principles, methods and practices for communication, collaboration and integration between software development (application/software engineering) and IT operations (systems administration/infrastructure) professionals.  It has developed in response to the emerging understanding of the interdependence and importance of both the development and operations disciplines in meeting an organization's goal of rapidly producing software products and services. http://en.wikipedia.org/wiki/Devops
Development-centric folks tend to come from a mindset where change is the thing that they are paid to accomplish. The business depends on them to respond to changing needs. Because of this relationship, they are often incentivized to create as much change as possible. Operations folks tend to come from a mindset where change is the enemy. The business depends on them to keep the lights on and deliver the services that make the business money today. Operations is motivated to resist change as it undermines stability and reliability. How many times have we heard the statistic that 80% of all downtime is due to those self-inflicted wounds known as changes? Both development and operations fundamentally see the world, and their respective roles in it, differently. Each believe that they are doing the right thing for the business... and in isolation they are both correct!
To make matters worse, development and operations teams tend to fall into different parts of a company's organizational structure (often with different managers and competing corporate politics) and often work at different geographic locations.
Nowhere is the Wall of Confusion more obvious than when it comes time for application changes to be pushed from development operations. Some organizations will call it a &quot;release&quot; some call it a &quot;deployment&quot;, but one thing they can all agree on is that trouble is likely to ensue. The following scenario is generalized, but if you've ever played a part in this process it should ring true. Adding to the Wall of Confusion is the all too common mismatch in development and operations tooling. Take a look at the popular tools that developers request and use on a daily basis. Then take a look at the popular tools that systems administrators request and use on a daily basis. With a few notable exceptions, like bug trackers and maybe SCM, it's doubtful you'll see much interest in using each others tools or significant integration between them. Even if there is some overlap in types of tools, often the implementations will be different in each group.
Development kicks things off by &quot;tossing&quot; a software release &quot;over the wall&quot; to Operations. Operations picks up the release artifacts and begins preparing for their deployment. Operations manually hacks the deployment scripts provided by the developers or creates their own scripts. They also hand edit configuration files to reflect the production environment, which is significantly different than the Development or QA environments. At best they are duplicating work that was already done in previous environments, at worst they are about to introduce or uncover new bugs. Operations then embarks on what they understand to be the currently correct deployment process, which at this point is essentially being performed for the first time due to the script, configuration, process, and environment differences between Development and Operations. Of course, somewhere along the way a problem occurs and the developers are called in to help troubleshoot. Operations claims that Development gave them faulty artifacts. Developers respond by pointing out that it worked just fine in their environments, so it must be the case that Operations did something wrong. Developers are having a difficult time even diagnosing the problem because the configuration, file locations, and procedure used to get into this state is different then what they expect (if security policies even allow them to access the production servers!).
Time is running out on the change window and, of course, there isn't a reliable way to roll the environment back to a previously known good state. So what should have been an eventless deployment ended up being an all-hands-on-deck fire drill where a lot of trial and error finally hacked the production environment into a usable state.
For the business, DevOps contributes directly to enabling two powerful and strategic business qualities, &quot;business agility&quot; and &quot;IT alignment&quot;. These may not be terms that the troops in the IT trenches worry about on a daily basis, but they should definitely get the attention of the executives who approve the budgets and sign the checks. A simple definition of IT alignment is &quot;a desired state in which a business organization is able to use information technology (IT) effectively to achieve business objectives -- typically improved financial performance or marketplace competitiveness“ DevOps helps to enable IT alignment by aligning development and operations roles and processes in the context of shared business objectives. Both development and operations need to understand that they are part of a unified business process. DevOps thinking ensures that individual decisions and actions strive to support and improve that unified business process, regardless of organizational structure.
what types of tooling is required to make DevOps a reality : 1. Deeply modeled systems —where a versioned system manifest describes all of the components, policies and dependencies related to a software system, making it simple to reproduce a system on demand or to introduce change without conflicts.
what types of tooling is required to make DevOps a reality : 2. Automation of manual tasks —taking the manual effort out of processes like dependency discovery and resolution, system construction, provisioning, update and rollback. Automation—not hoards of people—becomes the basis for command and control of high-velocity, conflict-free and massive-scale system administration.
1. "DevOps is not a technology problem. DevOps is a business problem." DevOps is an emerging set of principles, and practices for collaboration and integration between software development and IT operations professionals. http://en.wikipedia.org/wiki/Devops
2. "Wall-of-confusion" is caused by a combination of conflicting motivations, processes, and tooling.
3. Dev & Ops are distant
4. Dev & Ops are not communicated
5. Faulty deployment is propagated
6. Production is trial-and-error
7. DevOps fixs the wall-of-confusion
8. DevOps Tooling 1: Deeply Modeled System <ul><li> </li></ul>