freshidea - Fotolia
What are microservices? The answer may depend on whom you ask.
"It's a new term for an old technique," said Joe Fernandes, director of product management for Red Hat's OpenShift.
"Microservices is the practice of applying service-oriented architecture principles at a small level of granularity," according to Anne Thomas, vice president and distinguished analyst at Gartner.
"It's a name to denote lightweight, faster-to-develop-and-deploy services than traditional SOA," said Pierre Fricke, director of product marketing for Red Hat JBoss Middleware.
Regardless of how you define microservices, it seems clear the term should be on IT professionals' radar. As Fernandes put it, he may not be a fan of the term because it has become the "buzzword du jour," but it can't go unnoticed that "it is how applications are evolving and the combination of services that may be developed … this is how applications are being built."
Microservices are self-contained and don't necessarily require an application server to host them. Microservices should be considered in two specific instances. The first is in scenarios where increasing agility is the main objective.
Anne Thomasvice president and distinguished analyst, Gartner
"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 Thomas. This, she said, coincides with continuous delivery practices, where the goal is to push out small units without having to create a monolithic system.
The second scenario may be viewed as a dream for growing organizations -- precise scalability. "Being just a small section of a much larger application, I can replicate and create multiple instances, particularly microservices, and spread the load for just that one small piece of the application instead of having to do the entire system," said Thomas.
How does microservices differ from SOA?
Microservices is the same as SOA, "but at the same time it's not," said Thomas. "This is applying SOA principles at a finer level of granularity. In order to apply it at a fine level of granularity, you have to adopt new patterns to make it work."
Fricke echoed the notion that microservices and SOA are in the same vein. "You can think of it as SOA getting lean, getting more agile than it was before," he said.
That change in mind-set and how the technique is applied may be the real difference between microservices and SOA. Thomas said a lot of people who claim to have been doing SOA haven't necessarily done so at the micro-level. Furthermore, microservices is creating a shift in platform infrastructure use. "It's [microservices] definitely having an impact on heavyweight, super platform infrastructure that has been so pervasive for the last couple of decades. Watch this space," she said.
Are microservices a silver bullet?
When SOA first claimed the limelight, its reputation became tainted because many IT professionals tried to implement it in scenarios where it couldn't be successful. Just like SOA, microservices can't solve all problems and thinking otherwise will only lead to disappointment.
"There is a price to pay for microservices," said Thomas. "You are increasing the complexity of the application system by having a lot more moving parts and a lot more interdependencies."
If a team decides to use microservices, Thomas said, it's important to ensure each individual microservice owns its own data and can run autonomously. This will allow you to reap all the agility benefits possible.
Lightweight architectures featuring more productivity tools
Get an introduction to the world of microservices and container technologies
Learn how to manage microservices