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). In his SATURN 2017 keynote, Chris Richardson makes similar remarks and defines (micro-)services as loosely coupled and organized around business capabilities (which is very much in line with SOA introductions such as one in an OOPSLA tutorials given from 2005 to 2008).

 

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 designbehaviour-driven development),
  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?  

 

Presentations, 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? Make sure to ask the right questions to decide whether microservices are for you, for example the ones listed here.

 

Research articles on microservices co-authored by us include:

  1. Pardon, G., Pautasso, C., Zimmermann, O.: Consistent Disaster Recovery for Microservices: the Backup, Availability, Consistency (BAC) Theorem. In: IEEE Cloud Computing, 5(1) 2018, pp. 49-59.
  2. Pahl, C.; Jamshidi, P.; Zimmermann, O.: Architectural Principles for Cloud Software. In: ACM Trans. on Internet Technology (TOIT), 18 (2) 2018, pp. 17:1-17:23.
  3. Furda, A.; Fidge, C.; Zimmermann, O.; Kelly, W.; Barros, A.: Migrating Enterprise Legacy Source Code to Microservices: On Multitenancy, Statefulness, and Data Consistency. In: IEEE Software, 35 (3) 2018, pp. 63-72.

 

Related Research Venues

  • Microservices 2019 is a hybrid event bringing together practitioners and academics; there also is a  community.
  • SummerSoC focuses on all things service orientation (and cloud computing).
  • ESOCC does so too.

SOA and microservices are also welcome topics at general software architecture conferences such as ECSA and ICSA, e.g. New and Emerging Ideas (NEMI) track and the AMS and WMSA workshops.

 

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: The Microservices Conference (many slide casts)
  5. API Design and Management advice, see this page

 

Contact for this page: Olaf Zimmermann.