If you are interested in IT management — and web operations in particular — you might have recently heard the term “DevOps” being hot in the market. You can find couple of discussion around #DevOps on twitter. Meetups and Conferences are gaining popularity around DevOps.
What is DevOps about?
I introduced with DevOps around 3 years back. And since that time, i’ve learnt so many things around DevOps. It is not a technology But the approach to identify unique set of requirements of your team. And try to script as much as possible. It is all about to find the balance between manual and automatic processes to make them as fast as possible in delivery context.
DevOps creates trust between development and operations teams to increase deployment efficiency and reduce risk. It’s a 4 step process: collaborate, validate, automate and iterate. In other words decide what you should have, validate that it is correct, automate it and then iterate.
- Knowledge Capture: System knowledge from the entire IT team should be stored in one location to prevent misinformation.
- Cross-Team: Team members need to be able to collaborate on system configurations to make the best use of subject matter experts.
- Baseline: Define a reference architecture for your operating environment and baseline to create a 360 degree view of your infrastructure.
- Quality Assurance: You should have continuous testing of your current state vs your desired state to prevent drift.
- Audit/Compliance: Provide in depth audit and change information to satisfy audit and regulatory compliance needs.
- Cross-Platform: DevOps is applicable to both legacy and modern systems.
- Executable documentation: The documented system knowledge should be executable and serve as a configuration contract between teams. You should only need to write it once and be able to execute it multiple times.
- Best Practice Templates: Re-usable best practice templates should be created to speed up the automation process.
- Process Integration: Contrary to the popular belief, DevOps actually complements existing processes and methodologies such as ITIL, Agile and CMMI.
- Reporting: Desired state configuration monitoring helps you to trace errors quickly. You should have a version controlled history of every test and configuration alongside performance metrics.
- Environment Health: There should be detailed information on the health of application and infrastructure configurations of your internally managed or cloud hosted systems.
- Improvement: Build on a well defined, validated baseline. There is no need to reinvent the wheel each time.
Essential skill set to get Developers operations smooth.
- Agile methodology to deliver jobs in couple of iteration.
- Continuous Integration for better release management. You should be capable to release to production n times a day.
- Chef, Puppet or Bash to bake new server.
- Strong understanding around cloud management. Popular providers are Amazon Web services, Rackspace.
- Understanding of your team culture. And delivery flow management. It is so important to understand their culture of programming, how they are involved with others.
- Last but not least, you must be a Developer and System Administrator to get things smoother.