If you are designing an IT system, you can greatly benefit from a good reference architecture. A good reference architecture can be:
- a superset of whatever architecture you design
- a guide to what is possible in your design
- a reminder of what is essential and what you may have left out
- an explainer of all the potentially relevant parts to your design
- a supporter of whatever architecture you do decide on
- like a mentor providing you thought leadership and guidance on what works and why you need it
IBM has long put together such good reference architectures. Of all I have seen, this is one of the better ones I have seen: DevOps architecture: Reference diagram – IBM Cloud Architecture Center.
It covers all the stages of DevOps, from Planning to Deployment to Learning. It shows the logical parts of the DevOps Architecture and what tools support that. It reveals the relationships between the parts, both static and dynamic. It reminds you of the things you need that you might not be aware of. I think it’s fantastic.
I think it is great for another reason. Implicit in the architecture is the definition — at least for IBM and I — of what DevOps should be. It’s not just CI and CD. It’s not just a toolchain/pipeline from Dev to Ops. DevOps is really this entire cycle:
Each stage is important. Too often the focus is on Development and Deployment. But stages like Planning and Learning are an essential part of the DevOps cycle that are essential not just for code quality but testing quality and ops quality. It all ends up with better results for all the stakeholders of an IT system, from the business sponsors to the users.
Anyone involved with IT architecture, system design, IT testing, system operations or DevOps in general would benefit from studying that reference architecture.
(Images are links to IBM pages)