Instant download: Applying DevOps to the BPM lifecycle
Modern BPM systems must be compatible with the DevOps approach and employ DevOps best practices to aid application development.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
You also agree that your personal information may be transferred and processed in the United States, and that you have read and agree to the Terms of Use and the Privacy Policy.
"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."
There is a price to pay for microservices.
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.
Fernandes is noticing the same movement. "What you are seeing is moving from more heavier weighted models like SOAP and ESBs and into more RESTful services and smaller units of computing," he 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.
We do use microservices. Like any design decision, it has its advantages and disadvantages.
For instance, my team mostly works on a lot of backend data processing. Data used to be processed in large batches before we implemented microservices. The order that each piece of information gets processed matters in many of our cases. It seems to me like microservices may not be the best choice for this situation, as we had to do some funky things to preserver order.
Like any powerful tool, if you use it correctly is a very good solution for horizontal scale making code a little more complex. But if you use it in the wrong way microservices are very dangerous...
What a microservice is certainly does depend on who you ask. I think that’s evident just from reading this article. Todd Biske has identified three key differences between SOA and microservices that help to define what they are in the TechTarget article “What is the difference between an SOA and a microservice architecture?”
But if you use it in the wrong way microservices are very dangerous...