DevOps is reshaping the way software is produced and delivered. But how can you apply DevOps principles consistently...
across your organization when making changes to your entire enterprise architecture? Here, we explore how best to integrate DevOps into your enterprise architecture.
At the most basic level, DevOps means that software developers and IT operations engineers (also known as system administrators) work together on software production. By facilitating collaboration between the programmers who write software and the administrators who manage it in production, implementing strong DevOps principles eliminates communication barriers that could lead to software design mishaps, bugs going unnoticed until they are too costly to fix and other software delivery issues.
An important practice that DevOps promotes is continuous delivery of software. Under the continuous delivery model, small changes to a software program are designed, written, tested and placed into production at a constant pace. For continuous delivery to work, however, all members of the organization who play a role in software production need to be in constant communication.
DevOps principles for an enterprise architecture
To make your enterprise architecture friendly for DevOps, you should adhere to a few key principles:
Build flexibility into your architecture. DevOps requires coordination between many different parts of the organization. For that coordination to work, you need a flexible architecture. Don't wed yourself to a particular set of tools or platforms. Instead, make your architecture nimble enough so that your team can adopt whichever tools it needs to solve the various and changing challenges it faces.
Make roles flexible. Because DevOps breaks down barriers that traditionally separate various teams within an IT organization, individual roles need to be malleable. For example, someone whose job title is "developer" should have the organizational flexibility to participate in IT operations work when needed.
Upgrade your infrastructure. DevOps is about cultural practices, not specific technologies or tools. Still, DevOps works best when the IT team has modern, agile tool sets and frameworks at its disposal. For example, migrating from virtual machines to containers can help your organization manage DevOps more effectively.
Maximize information visibility. When designing your enterprise architecture, controlling access to sensitive information about the infrastructure or the data stored on it is important. But this need should be balanced against the importance of maximizing visibility across the organization. In order for continuous delivery pipelines to flow effectively and for all parts of the IT organization to collaborate, every staff member should have access to the information he or she needs to do the job. Dashboards, network maps and other tools should be made available to the extent that is appropriate from a security standpoint.
Learn how DevOps helps organizations nail down nonfunctional application requirements upfront.
Remember that DevOps involves more than IT. To maximize efficiency, everyone who plays a role in software delivery should be able to collaborate. This includes people whose jobs are not in the programming or IT department. Customer support, legal and even HR departments often have a role to play in producing software. A DevOps-friendly enterprise architecture should ensure these non-IT departments can collaborate with software developers and IT operations staff as needed. Otherwise, nontechnical issues could prevent continuous delivery.
Following these DevOps principles should help your enterprise update its architecture and collaborate more effectively. Otherwise, you may be missing out on major optimizations that can be achieved when software delivery pipelines flow continuously and all parts of the organization are able to support of software delivery.
First there was DevOps, now there's DevSecOps? Find out what it is
Why a groupthink mentality is killing DevOps initiatives
IT admins: Test yourself on your DevOps know-how