Performing DevOps and Release Management outside of the Cloud.
As more and more organization and application providers develop richer features for DevOps in the Cloud, performing advanced DevOps activities on self hosted systems seems to be getting left behind.
And actually doing it right on self hosted systems is becoming more and more a lost art.
But don't worry, DevOps and Agile is a journey, (and not all shops work the same).
If you try to keep working towards the below key factors, you'll find success.
Integration is a key factor to success.
Any tool involved in your delivery pipeline should be integrated. Integration will provide the needed data for the feedback loop
The issue tracker Jira DC
The version control system BitBucket DC, GitHub Enterprise Server self-hosted
The build system Bamboo, Jenkins
The repository management system Nexus, Artifactory
The publication system Confluence DC
The service management system JSM, SNOW
You have to be able to rely on what is going into the feedback loop is a key factor to success.
Any tool involved in your delivery pipeline should be evaluated for standards required to complete your feedback loop. Once identified apply the governance in that tool where it is applicable.
Jira -> issue types, custom fields, field validators, workflow conditions, automations
The version control system pre-receive hooks ensuring that a Jira ID is in the commit, branch protection rules, merge policies
The build system Jira Steps pushing that details back, artifact versioning, tagging
The deployment system permissions, inputs, triggers
The repository management system permissions, metadata
You can't manage what you don't measure knowing what to measure is a key factor to success
Work with the teams that are using Jira to perform software development to understand how they work and where you need to implement data inputs, if those inputs need to be required, if conditions need to be applied to workflow transitions, where and when automations can be leveraged... or always applied.
It's all about the data that will drive the feedback loop.
Always remember that the feedback loop is a loop -> meaning it is also a feed forward loop.
Scripts are repeatable, and trigger without coffee... automation is a key factor to success
How script work is done has as many flavors as there are software shops. Your biggest friend at this junction is probably a plugin scripting tool that allows usage of an api and rest calls into the other tools in your delivery pipeline toolset leveraging the necessary integrations of those tools. Remember the above about getting your upfront right, these are your inputs and potentially your outputs as well as further trigger mechanisms.
Scripting under the hood within Jira can provide an organization with things like self-service deployments, DORA (DevOps Reporting and Analytics), Release Planning, Capacity Management, Value Streams, and a host of others. These scripts can go further and provide report publication to Confluence as either live reports that refresh on page load or as historical reports allow for trend analysis. We'll talk about the key factor to success with reports in another article soon.
In conclusion, DevOps in a non cloud environment is a journey of continuous improvement and it is usually built not bought.
I have to mention I'm looking forward to hearing about your DevOps journey outside the Cloud.
Craig Nodwell
Software Configuration Management Specialist
Consultant
Toronto Ontario Canada
176 accepted answers
1 comment