artifacts in a repository[Berczuk] and having easy to reproduce builds.
The next logical step is to routinize deployments into production. For this to happen the project team needs to incorporate operation issues into the backlog early, and incorporate operations team roles into the core development team.
Some concrete steps that teams can take to move towards a dev ops perspective are:
- Including the operations team in the project team. Some tasks might lend themselves to implementation by someone familiar with the operations systems.
- Extend your toolset to include tools that the operations team can easily use. Your may be developing a web application in Java, but some deployment and configuration tasks might be easier to execute in, say, Bash of Python.
- Developing tools and process to do deployments into production early. These tools should be in a form that works well in an operation environment, and be as automated as possible.
- Making realistic deployment environments available to the team so that production deployments can be exercised early, and automated.
- Place system artifacts under the same change management paradigm that you use for code. The tools may be different, but the you should strive to deploy not only an identical version of the code, but an identical version of the code in an identical server configuration.
- Each of these steps seems simple, but there are technical and organizational challenges to making them work reliably. In most cases the payoff will be worth the effort.
Why Dev Ops Matters
Teams are starting to realize that the development processes of agile, while essential to successful incremental deployments, are not enough for delivering value reliably. Operations is an essential part of the product value chain. Much as teams are willing to invest in build infrastructure such as maven repository management tools, teams are slowly discovering the value of considering tools for managing and automating deployments to production environments. Whether you call it Dev Ops, or a Larger Team Approach, Collaboration, or simply Doing the Right Thing, incorporating operations concerns earlier in the process will help you identify potentially critical issues earlier and address them with minimal cost.
[Berczuk]Berczuk, S. P. and B. Appleton (2003). Software configuration management patterns : effective teamwork, practical integration. Boston, Addison-Wesley.
[Duvall] Duvall, P. M., S. Matyas, et al. (2007). Continuous integration : improving software quality and reducing risk. Upper Saddle River, NJ, Addison-Wesley.
[Humble] Humble, J. and D. Farley (2010). Continuous delivery : reliable software releases through build, test, and deployment automation. Upper Saddle River, NJ, Addison-Wesley.
[Cowham] Cowham, Robert, (2010-October) Agility Throughout the LifeCycle: The Rise of DevOps