In case you have not already heard of microservices, yet another evolution is upon us in the world of software development. A microservice is the antonym of the monolith and is a relatively new name for some concepts that have been around for some time. Microservices push us further toward the dream of decoupling with a promise of simpler, easier and cheaper services that are more reusable. As we get started, you can find a great primer on microservices through Martin Fowler’s blog at http://martinfowler.com/articles/microservices.html
Before I continue, I should point out that I am the Product Manager for Oracle Service Bus and that may cause you to wonder why I would be talking about microservices. As a matter of fact, Martin Fowler in his blog states “The microservice community favours an alternatitive approach: Smart endpoints and dumb pipes”. Others position microservices as an alternative to SOA even going as far as saying that microservices can be SOA done the right way.
You might think that as a product manager for an enterprise service bus product, I might be inclined to defend my product against this movement, but I don’t think that is necessary. I think this is not an either-or question, but rather a hybrid approach to integration and service delivery is a more realistic direction to take. Quite simply we will need to leverage microservices, and SOA and we can learn and apply principles from both.
In this post, I’ll very briefly discuss the evolution from the monolith to services. I’ll compare and contrast SOA and microservices, mainly because of how monolithic elements have grown in SOA over the years. I’ll point out some of the pain-points of both SOA and microservices and will conclude with how choosing a hybrid approach can realize the benefit of both SOA and microservices while helping to reduce the pain-points.
Our long journey in software development began with the mega-monolith, the mainframe. From the very beginning, business rapidly came up with new requirements for software and the need to bring new features to production faster continues to grow every day. In the early days, when mainframes ruled, the change cycles were extremely long.
An example of this comes from very large insurance company that I worked for. Just to make a small change in their claims processing system would take from months, up to a year or longer, and would be exceptionally expensive to complete. That change never happened because even though it would have helped the “human workflow”, it was just too expensive to implement. In those days of the mega-monolith, human users simply had to adapt to the machine even if it was not the most efficient approach, rather than to incur the cost of changing the system.
Our approach has evolved quite a bit since the early days of the mainframe. We determined that rather than change a large monolith, we could make incremental changes and integrate systems together in order to support business processes more rapidly. From the early integration patterns, we progressed to Service Oriented Architecture (SOA).
Over the years however, we have witnessed SOA implementations that have taken on a more monolithic approach so some observers have associated SOA itself as being monolithic.
I do believe that there is a place for monoliths and it is important for the practitioner to strike a balance of when to use a monolithic approach, and when to use a microservice approach. While we may be more familiar with SOA, let’s discuss some of the characteristics of MSA.
Microservice Architecture (MSA) is mostly an organizational approach to developing and delivering discrete functionality that is highly de-coupled. If anything is tightly coupled, it is the functions of development and operations which we will talk more about shortly. Read the complete article here.
For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.