Jason Bloomberg, President, Intellyx
Service-Oriented Architecture (SOA) is an approach for abstracting enterprise software capabilities as reusable services in order to support more flexible business processes and ideally, more agile organizations. SOA was one of the hottest topics in information technology (IT) back offices and enterprise vendor marketing departments for a number of years back in the 2000s.
However, in retrospect the original promise of SOA was largely unrealized at that time. Vendors used the approach to sell middleware, which led to expensive and difficult implementations. The architectural focus on improving IT and organizational governance in order to achieve greater levels of business agility was largely subsumed into the technical minutiae of enterprise integration.
“SOA is going stronger than ever, as organizations adopt SOA enterprise-wide, they become more flexible in business processes”
Then along came cloud computing and SOA was no longer the cool kid on the block. Vendors and their hype-driven marketing teams quickly dropped SOA from their product lines, replacing it with cloud and big data and now Internet of things. It seemed that SOA was nothing more than a difficult step on the road to better approaches, a learning opportunity to be relegated to the technology history books.
Now that the hype surrounding SOA has long since blown over, however, we can shine the light on the reality. SOA never went away. “Over years of surveys, only 2 percent to 3 percent of those trying SOA have decided to give it up,” according to Randy Heffner, VP & Principal Analyst at Forrester Research. The tales of SOA’s failure and demise are simply wrong.”
In fact, SOA is going stronger than ever, as organizations adopt SOA enterprise-wide. “Moving to a Service- Oriented Enterprise is a journey,” says Sundar Ramanathan, Manager of IT Advisory and enterprise architect for global professional services firm Ernst & Young. “However, modern business drivers of cost, globalization, and agility make this easier to understand and justify.”
Yet, this enterprise context for SOA has been a hard-fought battle, as the path to success with enterprise SOA typically begins at the departmental level and builds from there, as opposed to trying to boil the enterprise ocean with SOA.
“The main change is that instead of going ‘enterprise-wide’ with a massive strategy and calling in Accenture and others to ‘solve’ the ‘SOA problem’ or lay out a grand architecture, the customer wants to solve tactical problems fast,” according to Atul Saini, CEO of middleware vendor Fiorano Software. “The pressures of cloud, social computing and mobile devices make rapid delivery of projects even more critical.”
In fact, the larger shift in focus from back-office integration and middleware concerns to customer-driven digital initiatives has both changed the priorities for many SOA initiatives as it has driven SOA maturity overall. “The problem with SOA was that the entire concept was ‘sold’ to the enterprise as a complex technology or process,” continues Saini. “The ‘services’ in classic SOA tended to be way too large and dev teams spend months just on interface specifications.”
The Rise of Microservices
Instead, today’s cloud-centric, digital sensibilities have led to a rethinking of what the core notion of “service” should be. First-generation or classic SOA centered on Web Services, an XML-based set of software interface standards that SOA teams typically implemented as complex software components running on heavyweight Enterprise Service Buses (ESBs). As the SOA approach matured, however, the ostensibly new notion of microservice has risen to the fore.
Microservices are still relatively new to the SOA story, and precisely what they are is still somewhat up to debate. Perhaps the best definition, however, comes from Janakiram MSV, Principal at Janakiram & Associates.
“Microservices are fine-grained units of execution. They are designed to do one thing very well,” according to Janakiram. “They contain everything from the operating system, platform, framework, runtime and dependencies, packaged as one unit of execution.” As a result, “microservice architecture [MSA] promotes developing and deploying applications composed of independent, autonomous, modular, self-contained units.”
Ironically, the core principles that characterize microservices have been a part of the SOA lexicon for well over a decade. “It turns out that what people are now starting to call microservices are precisely the Services that Fiorano implements and has been using since 2003,” explains Fiorano’s Saini. He predictably credits Fiorano’s use of microservices for some of the platform’s key differentiators: “In fact, the use of microservices and the overall platform architecture that has developed around the microservices is a key reason for the significant productivity benefits of Fiorano.”
Other SOA vendors aren’t willing to cede leadership on this point to Fiorano, however. “The whole premise of microservices is to spin up multiple back end services, and separate out the solutions stack between different service entities, so that when they fail, they don’t take the other ones down, and also that they can scale independently,” says Chris Haddad, vice president of platform evangelism at Fiorano competitor WSO2. “Microservices are about taking the organization’s services portfolio and decomposing them based on business domain function.”
Another leading vendor in the still-percolating SOA space is Red Hat. “What you are seeing is moving from more heavier weighted models like [Web Services standard] SOAP and ESBs and into more RESTful services and smaller units of computing,” explains Joe Fernandes, Director of Product Management for the OpenShift PaaS offering at Red Hat.
Microservices Pros and Cons
Industry analysts, however, are likely to balance excitement over microservices with a note of caution. “Microservices enables you to implement much smaller deployable units, which then enables you to push out updates or do features and capabilities much more quickly,” said Anne Thomas, VP & Distinguished Analyst at Gartner.
However, “there is a price to pay for microservices,” cautions Thomas. “You are increasing the complexity of the application system by having a lot more moving parts and a lot more interdependencies.”
Thomas’s colleague Gary Olliffe, Research Director at Gartner, also provides a balanced perspective on microservices. “It’s not all new, but if the new label raises awareness of (and interest in following) good SOA principles and practices I think everyone will benefit,” Olliffe opines. “The challenge I see is how end-user orgs implement what I call the ‘outer architecture’ aspects of MSA (building small services is easier and safer but managing lots of them through development, deployment and operation is much more complex).”
Fiorano’s Saini agrees. “The traditional SOA world confused the term ‘Service’ with a very broad definition, where a Service could possibly be a full application system (such as an ERP system),” Saini points out. “We strongly recommend to users that each Service typically implement a particular business function. What customers want today is SOA based on simplified components. Microservices are the classic outgrowth of this.”
On the one hand, therefore, microservices are what services should have been all along, even during SOA’s early days, and on the other hand, getting microservices right might be more difficult than it sounds.
Add to these challenges vendors’ predilection for marketing hype. “Vendors will not miss the opportunity to ‘microservices-wash’ their tools and platforms to get your attention,” Gartner’s Olliffe says. Clearly, microservices aren’t out of the SOA woods yet.
Regardless of whether microservices architecture will eventually become the default approach to SOA, however, there’s no question SOA is here to stay. In fact, all of cloud computing is fundamentally based on SOA. “The cloud is a particular expression of SOA,” explains Ernst & Young’s Ramanathan. “The SOA reference architecture provides the fundamental fabric around which we can design cloud architectures.”
The same is true of today’s digital architectures–scratch the surface and you’ll find SOA. The SOA hype may have shifted to microservices, but SOA has become an essential enabler of today’s digital world.