Wednesday, 26 December 2012

Release Coordinator in DevOps

A relatively new role in enterprise IT which is primarily tasked with coordinating deployments of enterprise software to pre-production environments. The need for the release coordinator has been driven by:

·         The need to fill the DevOps “gap”
·         Increased infrastructure complexity  -  multiple layers and platforms which form web applications.
·         Growth in rate of release – due to agile and iterative development.
·         Distributed teams – globally deployed, outsourced and hybrid environment, testing and infrastructure teams.

The release co-ordinator role (referred  to as a  deployment or integration co-ordinator) has emerged from the release management or release engineering teams. This role is similar to an air traffic controller  - performing real time co-ordination activities across diverse teams to achieve  a group goal using shared resources .
Release co-ordination contrast with release management, which is often focused on planning and reporting on software changes, in order to control the release of specific application changes into production. Release engineering is concerned with the systematic and technical work related to building and deployment code into enviroments.

Characteristics of DevOps:



1    Ability to write code beyond simple scripts.
2.       Focus on stability and uptime.
3.       Extra focus on moving between states :-
 In dev land, I have situations when the end result of a particular feature  was analysed on its ow merit, without taking into consideration how a system can be moved from its desired future state. DevOps pays extra attention to this problematic area.
4.       Different angle on business revenue : -
While developers usually work on things that are meant to increase or sustain business revenues, devops often work on things that are meant to prevent or reduce loss of business revenues
5.       In  devops, we are users of our own software .
6.       Architect, developers, tester, product manager, project manager – all in one.
7.       Awareness of normal accidents.
8.       Quality Assurance in production.
9.       Manual First, then Automate
10.   Almost always distributed or hyper-distributed.

DevOps: New face of software development.


It is a software development method that stresses communication, collaboration and integration between software developers and information technology professionals.

               
                   Src:-http://en.wikipedia.org/wiki/DevOps
DevOps is a response to the growing awareness that there is  disconnect between what is traditional considered development activity and what is traditional considered operations activity. This disconnect often manifests itself as conflict and inefficiency.
As there is a “Wall Of confusion ” between development and operations . This “Wall” is caused by a combination of conflicting motivations, processes, and tooling.
                                
             Src:-http://www.somic.org/2010/03/02/the-rise-of-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.