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.
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.
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.
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
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.
SOA & BPM Partner Community
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.
Blog Twitter LinkedIn Facebook Wiki
Technorati Tags: SOA Community,Oracle SOA,Oracle BPM,OPN,Jürgen Kress