Service-oriented architectures (SOAs)

A services design pattern that has been around since before the cloud is the SOA. This is the first major evolution of breaking down a monolithic application into separate parts to reduce the blast radius and help make application development and deployment processes faster to support business velocity. SOA design patterns are often still a large application split into subsystems that interact with each other just as they would in a monolithic system. However, they often have an intermediation layer in between (for example, an Enterprise Service Bus (ESB)).

The use of an ESB to mediate service requests allows for heterogeneous communication protocols and further service decoupling, often through the exchange of messaging. The ESB allows for message translation, routing, and other forms of mediation to ensure that the consumer service is receiving the messages in the right form at the right time. Because SOA design patterns are often combined to make a large and complex enterprise system, individual services often contain a full set of business logic for a specific subsystem. This design allows for the service to be partially self-contained and send messages, through the EBS, to provide or request data from other subsystems.

This SOA design approach drastically increased the ability for systems to be more distributed, serve business needs faster, and take advantage of cheaper compute resources. However, there are some drawbacks that are associated with SOAs as well. Because services interact with other components through an ESB, it can quickly become a bottleneck or single point of failure. Message flow becomes very complicated and any disruption to the ESB could cause significant slowdowns or queueing of messages, clogging up the entire system. In addition, because each service requires a specific message type formatted with its requirements, testing of the full composite application becomes very complicated and not isolated, slowing down business velocity. For example, when two services have significant business logic updates, each with new and enhanced message formats, the deployment will require an update to both subsystems and the ESB, potentially disrupting the entire composite application.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset