The second pillar in the DevOps stack is that of Integration. DevOps integration targets quality testing, feature development, and product delivery. Integration, or more specifically, Systems Integration is the process of linking together different computing or component systems and software applications physically or functionally to perform as a single consolidated unit.
Systems integration requires a wide skill set in areas such as network architecture, protocols, systems, software engineering, documentation and communication. A DevOps Engineer needs to have a unique skill set that combines that of both the traditional software developer with that of the IT engineer. Typically DevOps engineers are either developers who get interested in the deployment process of their applications or system administrators who have a passion for scripting and software development.
The Methods of Systems Integration
System integration traditionally falls into three methods. Vertical, Star, and Horizontal (or Enterprise Service Bus).
Vertical integration involves integrating systems according to their functionality by creating functional components referred to as silos. One of the key benefits of this method is performed quickly and typically is cheaper in the shorter term. But, a negative to this methods is that the cost of ownership is often higher and scaling the system would likely require implementing another silo. Also subsystem reuse for new functionality is often not possible.
Star (or Spaghetti) Integration is the method of integration where multiple systems are interconnected to each other (like a plate of spaghetti). The cost varies depending on the types of interfaces the system use. Costs and time are greatly increased when adding additional systems. This method is very flexible and provides high levels of reuse.
Horizontal Integration (or Enterprise Service Bus) is a method where a dedicated system is used to communicate to other subsystems. This allows for only one connection per subsystem to the service bus and the ESB translates the interface to a different system. With this method, it is designed to allow for you to replace one subsystem with another easily by updating the ESB with the new systems interface.
Integration is just one piece of the DevOps puzzle. In my next article I’ll discuss how communication is integral in the DevOps process.