The Difference Between SOA and Microservices?
Source – infoq.com
We’ve had a few articles over the years on the differences and similarities between SOA and microservices. Some suggest there is much to be learned from SOA whereas others believe that distancing microservices from SOA is more beneficial. Furthermore, Neal Ford amongst others, have suggested that moving from monolithic architectures to a services-based approach may be easier than going to microservices. There has not been much activity recently around the overall “SOA or microservices” debate until RedMonk’s Stephen O’Grady published an article on the subject. In it Stephen suggests that the size of the service is not the deciding factor, similar to what others have argued over the years such as Dan North and separately Jeppe Cramon stated:
Using only size for defining microservices is a poor measure and useless for determining whether a service has the right responsibilities
In fact Stephen believes these are a lot of facts behind the association between SOA and microservices:
For all of its other faults, SOA was a vision of enterprises that looks remarkably like what progressive organizations are building today with cloud native architectures composed of, among other things, microservices. Stripped to its core, SOA was the idea that architectures should be composed of services rather than monolithic applications.
Within his article Stephen has produced a couple of nice diagrams using Google Trends and the first shows that despite its popularity, SOA peaked and was popular for a relatively short period of time in the industry.
Stephen believes that the argument about size as a differentiator ignores or obscures the real reason why SOA dropped in popularity and microservices came on the scene: in his view SOA was a vendor driven effort whereas microservices is driven far more by developers.
Given the success of platforms such as AWS, it’s difficult to make the argument that service driven platforms are not an effective way of building platforms that scale or that they’re not the dominant approach at present. But notably, service-based platforms are generally developer constructs at present. The SOA-driven world originally envisioned by large vendors, one in which services were built out upon a byzantine framework of complex (and frequently political) “standards” never came to pass for the simple reason that developers wanted no part of it.
Stephen mentions that microservices do benefit from SOA, both on what worked and what did not work.
Microservices are easier for them to develop than monolithic alternatives, and come without the vendor standards baggage of SOA […]
Others have made the same argument over the last few years, including Asanka who said:
Today, enterprises are moving toward a clean SOA and embracing the concept of an MSA within a SOA. Possibly the biggest draws are the componentization and single function offered by these microservices that make it possible to deploy the component rapidly as well as scale it as needed. It isn’t a novel concept though.
And the second Google Trends graph Stephen shows is also interesting.