While originally DevOps was popularized by Web (Cloud) -based companies, such as Flickr and Netflix, large enterprises, in one form or another, have long been using select DevOps practices.
For deeper penetration of DevOps in the Enterprise space and establishing it as a true enterprise capability, it needs to be placed under control within the existing enterprise governance processes.
For sure, there is no cast-in-stone rules on how to set up the DevOps capability and every organization finds its own organizational form for DevOps. For example,
- Some companies create a joint DevOps group with a single reporting line
- Others establish a small contact group with representatives from all stakeholder groups
- Still others completely delegate Ops functions to Dev (this is mostly the case with Cloud-based shops)
It stands to reason that wrong people and inefficient processes may turn DevOps into a liability rather than an asset and, in some cases, a certain (sometimes very painful) shift in mentality and organizational culture is required to fully exercise the benefits of the DevOps practice. However, in the long run, embracing DevOps practices help organizations to more efficiently and effectively manage aggressive software delivery schedules by minimizing the number of software defects and deployment failures. Also, in addition to the known benefits (higher delivery velocity and more predictable application development and production deployment cycles, etc.), DevOps help promote collaborative environment within an organization.
Note: Sometimes, the “communal” spirit of the DevOps operations is not a welcome practice as the nature of some businesses may dictate a clear separation and strict enforcement of operational scopes aligned along discrete roles within the organization.
To be successful, DevOps need to use the right combinations of tools, techniques and practices, including:
- Collaborative steering
- Continuous testing of all aspects of the application delivery pipe-line
- Using a version control system
- Using a bug tracking system
- Iterative and frequent integration and deployment
- Deployment automation
- Change management
- Monitoring and auditing
Proper governance of the above DevOps activities and ensuring that IT decisions are aligned with the strategic and operational business goals will help organizations to
- Mitigate IT risks
- Make the outcome of IT activities predictable
- Measure IT performance
- Promote standards and best practices
- Establish proven policies and procedures to ensure project success
In many cases, a PaaS cloud may be an ideal platform for organizations to establish the DevOps capability and fully realize its value. Due to the managed nature of PaaS, most of the run-time and provisioning tasks are handled by the platform vendor. DevOps involvement on a PaaS cloud is limited to code promotion and some high-level environment settings’ tuning (the push, update, and scale operations) meaning that all DevOps activities can be safely handled by Dev alone.
Popular PaaS platforms are: Microsoft Azure (built on top of the Azure IaaS infrastructure), Google App Engine, AWS Elastic Beanstalk (built on top of the AWS IaaS platform), Heroku (acquired by Salesforce.com in 2010), OpenShift, CloudFoundry, and (last but, by far, not least!) IBM Bluemix (built on top of CloudFoundry).
We’re almost done in this post. There is more to say about this fascinating topic, so stay tuned …