Enterprises may often be exposed to rhetoric regarding moving away a SOA-based software strategy and adopting a more microservices-focused approach. Whether you see microservices as the next evolution of SOA or even just SOA by another name, the fact is that enterprises aren’t necessarily required to choose between one and the other.
But combining microservices and SOA is more than a technological decision. It requires developers and operations people to have a deep understanding of the fundamental things that differentiate the original concepts surrounding SOA from the REST model that surrounds microservices. In his article on bringing the worlds of SOA and microservices together, software development pro Tom Nolle explains how REST is conceptually different from SOA particularly because of the shift from using modules to depending on location-independent resources. To me it seems akin to using a service like Spotify to listen to your music rather than exclusively listening to music saved on your computer’s hard drive.
This difference, Nolle explained, is the primary thing that developers will have to think about when trying to jam SOA and microserevices together.
“Microservices evolve from the REST model, so they represent a different software architecture paradigm than SOA did initially,” he says in his article. “To put SOA under a microservices front, we’d have to implement it partly using SOA, which means harmonizing SOA with the RESTful front-end interface.”
Nolle also warns in his article on the links between SOA, web services and microservices that developers should also consider advancements in the cloud and web services important in the transition from SOA to microservices, as microservices contain much of the characteristics of RESTful, web-like, functional components. With this in mind, using a cloud-hosted API gateway can help developers solve latency issues related to deploying microservices in the cloud. While it is possible to present a microservice as a RESTful API without the need for a manager, this approach may present problems particularly if scaling the microservices under heavy loads. The API gateway can help provide load balancing capabilities that will help with this scaling. An alternative to this – a technology which is being further developed through this next year – is the use of load balancing DNS services such as NGINX plus, a popular open source option.
Wherever your journey on the road to microservices takes you, just remember: dream big, but think small.
What are your tips for developers trying to put microservices and SOA together? Let us know with your comments below.