Institute for
HSR

Microservices Resources and Positions

Positions: Overview and Evidence (for Position 3)

Three rather different positions can be observed, both online and in print:

  1. Microservices as a new architectural style competing with SOA and to be contrasted with it.
  2. Microservices as a synonym to SOA ("nothing new"), see e.g. this blog post and this one.
  3. Microservices as a substyle, variant, and/or implementation approach to SOA ("SOA done right"), see e.g. several positions from SEI SATURN 2015 microservices workshop.

In this Software Engineering Radio interview, James Lewis highlights the close connection from/to SOA (assuming that SOA is understood and done right). And in this goto 2014 presentation, Martin Fowler points out that it is fair to say that the microservices approach has been done under the name of SOA for at least a decade if not more (with the term SOA being too broad, and meaning different things to different people).

 

A Jan./Feb. 2017 interview with James Lewis, Mike Amundsen and Nicolai Josuttis in IEEE Software , facilitated by the Insights department editors Cesare Pautasso and Olaf Zimmermann, contains a side bar that comes to similar conclusions. The article also discusses the relationship of Domain-Driven Design and microservices as well as other service design issues. Part 2 of the interview was published in the March/April issue and covers architectural and organizational concerns such as service composition, data integrity, and versioning.  

 

Finally, position 3 from above is also supported by the findings in our SummerSoC 2016 paper published in Springer Computer Science - Research and Development (online access, authors copy, conference slides). The paper compares definitions and identfies seven microservices tenets:

  1. Fine-grained interfaces (to independently deployable services),
  2. Business-driven development (e.g. domain-driven design),
  3. IDEAL cloud application architectures,
  4. Polyglot programming and persistence,
  5. Lightweight container deployment,
  6. Decentralized continuous delivery, and
  7. DevOps with holistic service monitoring.

In addition, our CSCUBS 2017 keynote presentations discusses loose coupling and service granularity and reports on related research and development effort as well as miscellaneous projects lessons learned. An earlier and shorter version of this talk was presented as an invited talk at the HPI FutureSoC 2017 conference.

 

Resources: Introductions and Definitions

You can start with the following online articles and post:

  1. J. Lewis and M. Fowler, Microservices - a definition of this new architectural term (but also listen to their presentations and interviews)
  2. C. Richardson, Microservices: Decomposing Applications for Deployability and Scalability (InfoQ) and Introduction to Microservices (NGINX)
  3. Microservices in Practice, Part 1: Reality Check and Service Design, IEEE Software, 2017.
  4. Microservices in Practice, Part 2: Service Integration and Sustainability, IEEE Software, 2017.
  5. A Gartner definition is referenced in this TM Forum Open API discussion.

Reflection: What are the new facets in these definitions (in terms of business and design goals, principles, patterns, practices, and technologies)? Which of the above positions do the articles and definitions support?

 

Case Studies

Exercise: Can you find the SOA principles and microservices tenets that have been applied? What are the business drivers and contexts?  

 

Articles and Books

Many more articles can be found e.g. at InfoQ and DZone. Note: Be aware of "microservicification" of earlier material, as well as the "trend surfing" phenomenon. Has semantic diffusion occurred again?

 

Related Research Venues

SOA and microservices are also welcome topics at general software architecture conferences such as ECSA 2017 and ICSA 2017, e.g. New and Emerging Ideas (NEMI) track and AMS workshop. More scientific conferences and workshops are expected to pick up the topic.

 

More Information and Related Topics

  1. Microservice Prerequisite and other microservices material on M. Fowler's bliki
  2. DZone RefCard, https://dzone.com/refcardz/getting-started-with-microservices
  3. InfoQ content, https://www.infoq.com/microservices/
  4. µCon 2014: The Microservices Conference (many slide casts)
  5. API Design and Management advice, see this page

 

Contact for this page: Olaf Zimmermann.