In a previous article, we explained why a model-driven approach is the best strategy to scale DevOps in an organization. But it's not as simple as picking a DevOps project and broadcasting its success across the company.
Organizations really need to ask why they adopted DevOps in the first place and how they intend to push and present a DevOps model to the rest of the company. In order to scale to full maturity with a model-driven approach, organizations will need to heed these best practices for DevOps models.
Governance and compliance
Some companies look at governance and compliance as, "We need to check all these boxes." Others see governance and compliance as, "We have all these risks and need to take actions to mitigate them."
By considering governance and compliance upfront, organizations can include them in their model-driven process. For example, if an organization builds role-based access control in a way that users are logging in as themselves instead of using shared logins, the company can see who did what and when. Bonus: It makes auditors happy, too.
A compliant model-driven approach shows intent and usage. An organization can show auditors only what they need in one place instead of having to dig through multiple log files and waste additional time aggregating the data. Like most best practices for DevOps, this not only applies to auditors, but to teams within the organization as well. It enables a level of visibility that allows teams to determine what's going on faster and move at a quicker pace.
An object that is available for reuse is not necessarily the same thing as a reusable object. This means that good platforms make it easy to reference or copy an existing model elsewhere in the software for reuse. But if that model was created with some hardcoded details or it makes numerous assumptions as to what type of input or what type of environment it's being run in, then it's not practical to reuse that artifact.
If, on the other hand, the existing model makes use of runtime parameters and has context-specific metadata that others can easily copy and paste into a different context -- and it would still run as you expect it -- then you can integrate the model as a more straightforward and time-saving exercise. Some platforms offer additional tools to create templates, master components and self-service catalog items that allow the user to scale on demand as needed.
When you create a model, you have to think about reusability. The model could be something simple or an item that creates a multistage, continuous delivery pipeline that performs code coverage, measures performance and defines approvals. Remember these best practices for DevOps, because the model needs to empower the organization as it scales.
Application release orchestration platforms
This doesn't mean the organization has to give up what's currently working well. In fact, these platforms should allow users to keep and build on those pieces. However, by bringing everything into one central platform it eliminates waste and makes the process more lean and agile.
That centralized location creates enhanced visibility that allows the organization to see what's going on for an individual run, as well as an aggregate of release performance. It's critical that platforms that can collect all this information from all corners of the toolchain and use the data to provide better aggregate metrics. Furthermore, if you can see this information through dashboards and analytics in the platform itself, individual stakeholders can dig deeper into the data and performance indicators they care about most.