Microservices Architectural Styles: Agile or not Agile?

First International Workshop on Microservices for Agile software development


26/05/2016


Collocated with XP2017 - 26/05/2017 Cologne

Software architectures for large and complex systems have been developing for several years. This reflects on how companies organize their teams, source code versioning systems, and packages. Monolithic systems are often developed, deployed and tested as one big self-standing piece of code. The modification of one feature in a monolithic system often requires the execution of comprehensive test suites to test the whole system. Experience teaches that monoliths often turn into unmaintainable systems.

Starting from 2012, Microservices have become an important architectural style, thanks to their decomposable nature. Microservices allow developers to decompose products into building blocks that do only one function, and do it well. Moreover, microservices have a set of different properties, since they need to be autonomous, isolated, elastic, resilient, and responsive. These properties differentiate them from previous service-oriented approaches.

Microservice-based architectures are complex to design, requiring substantial expertise. Companies that decide to adopt microservice-based architectural styles, need to adapt their standards and practices, by adding an extra overhead to the design phase. As any new technology, microservices require training and effort overhead for the migration to the new patterns.

On one hand, microservices can help developers to split the development into autonomous tasks, improving user story assignment to developers, on the other hand, they require to implement a complex architecture and a messaging system to communicate between each other that require a lot of planning effort that contradicts agility. Therefore, the introduction of microservices often slows down or interferes with the Agile development process, turning it into a waterfall-like process [1], particularly in migration projects.

In the last years, cloud-native architectures have emerged as a target platform for the deployment of microservice architectures. The migration of existing monoliths into cloud-native applications is still in the early phase, and only few companies already started their migrations. Therefore, success and failure stories about different approaches are not available in the literature. This context connects also to the recently discussed DevOps context where development and continuous deployment are closely linked.

To address the current uncertainties including a limited documentation of best-practice and benefits, this workshop aims at collecting experiences on microservice adoption, reporting best practices, but also specially failure cases, so as to build a community knowledge based on previous errors and successes. The workshop is open to experience reports from practitioners and academia.

Important Dates

  • Submissions due : 30-Mar-2017
  • Notification of acceptance: tbd
  • Camera ready due: tbd
  • Workshop date: 24-May-2017