This is part four of a five part series where we will look at DevOps and the solutions that can be gained by its implementation.
For all of the reasons we’ve been describing so far, it’s a good idea to start treating Dev and Ops as equally important participants in a single process. This means embracing the Build-to-Delivery cycle as a single, all-encompassing workflow, rather than continuing to treat it as many disparate procedures. It also requires aligning the previously incongruent organizational goals of both the Dev and Ops teams. This realization is the first step towards making the vision of “Continuous Delivery” and “Continuous Deployment” a reality.
As we stated earlier, the most successful DevOps implementations proceed from a Dev-first perspective. There are three primary justifications for this approach.
1. Take advantage of Dev’s comprehensive understanding of the application model
As the creator of the application, Dev teams are intimately familiar with what will be deployed. Dev can supply Ops with unparalleled insight into critical internal software attributes, such as:
Application structure
Necessary ancillary software and services
Configuration settings
Optimal application-specific runtime patterns
Understanding these characteristics is a prerequisite for a smooth software deployment process. By using a system that can leverage the Dev application “smarts”, Ops can learn the application model and its infrastructure dependencies quickly and accurately.
2. Benefit from Dev’s experience with the application deployment process
As part of their normal responsibilities, Dev teams conduct frequent application deployments into many development environments. These tasks repeatedly occur at many points in the Dev cycle, such as:
Software development
Integration testing
Functional/system testing
Acceptance testing
In response to these demands, Dev usually has a great deal of experience with deployment. They have to, because they wouldn’t be able to fulfill their responsibilities without this knowledge. This expertise is very helpful when it comes time to place the solution into production. Examples of Dev’s operational proficiencies include:
Installing and adjusting platforms such as operating systems and middleware to comply with application requirements
Properly configuring the applications
Fine tuning the applications to the specific functional need of the Dev tasks
Ops teams can leverage this expertise instead of starting from scratch.
3. Let Dev provide critical end-to-end visibility for minimizing potential deployment and production problems
Recall from earlier that a primary goal of the Ops team is to keep things running smoothly. However, with the frequent deployments mandated by Agile and other factors, this goal is at risk. The results can be downtime, poor performance, errors, and a host of other undesirable outcomes.
As the owner of the application software, Dev teams have complete comprehension of what changes have been applied, their history, and who approved these updates. Pairing this proficiency with Ops’ knowledge of the enterprise’s infrastructure yields complete end-to-end awareness.
Come back next week for the conclusion of this 5 week blog series.