I’ve described in one of my previous post very shortly the main ideas behind DevOps. DevOps is about improving the collaboration between the traditionally soiled development and operations functions. DevOps is all about trust, communication and merging of two different disciplines inside IT. On one side we have developers and on the other side we have operations. DevOps is an extension of Agile software development principles – allowing us to build, deploy and change our software with accelerated delivery cycle times.
Part 1: What is DevOps
Traditional Development and Operations teams worked in a way that Development team created a solution for production and when it was finished they handed over to Operations team. Operations team then started with preparation to implement the project in the production environment and manually changed the configuration files and other data in order to comply for deployment. This caused a lot of duplication and issues which were very hard to resolve due to different files and environments.
DevOps is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals thereby:
- Enable rapid evolution of products and services
- Lower the risk, enhance quality across portfolio, and reduce costs
DevOps integration targets product delivery, quality testing, feature development and maintenance releases in order to improve reliability and security and faster development and deployment cycles. The adoption of DevOps is being motivated by following factors:
- Use of Agile and other development operations;
- Requirement for an expanded rate of production releases from application and business stakeholders.
- Extensive possibility of visualized and cloud infrastructure from internal and external providers.
- Enlarged usage of data center automation and configuration management tools.
Part 2: Principles of DevOps
One of the commonly cited DevOps principle is “Infrastructure as a code”. Another major principle is also to get the fast feedback throughout every phase of the software lifecycle. Feedback helps to achieve the higher quality of code and to reduce as much as possible bugs in the production. Moreover, the DevOps practices helps to gather data to identify, diagnose, and resolve issues quickly.
- Develop and test in an environment similar to production
- Frequent Build deployment
- Continuous validation of operation quality
- Strengthen feedback loops
Part 3: Why DevOps Exist
There is a gap between Developers and Operations team. With the implementation of DevOps:
- Close collaboration between Developers and Operations to Developers work with to understand the impact of code changes.
- Developers work is done in environment which is very close to production environment.
- Developers are focused on metrics required by Ops team.
- More transparency for Operations on infrastructure needs.
- Higher level of automation on deployment.
- The pipeline of Dev – Test – Prod is closely monitored for each deployment with immediate feedback.
- Better collaboration and communication.
DevOps is helping businesses in a tremendous way. Its bridging the gap between Developer’s ‘need for change’ and Operations ‘resist to change’ and thus create a smooth path for continuous development and continuous integration. You might also be interested in taking DevOps Self-Assessment. You can visit Microsoft’s website and gauge your readiness in the 7 key DevOps practice areas.