Large and complex systems have been developing for several years. Monolithic systems are often developed, deployed and tested as one bigself-standing piece of code. The modification of features in monolithic systems often requires the execution of comprehensive test suites to test the whole system. Experience teaches that monoliths often turn into
Microservice-based architectures can support the migration into cloud of monolithic systems. However, they are complex to design, requiring substantial expertise. On one hand, microservices can help developers to split the development into autonomous tasks, 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, particularly in migration projects. 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 tutorial 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.
13:15 Opening (5 minutes)
13:20 Introduction to Microservices: What is a microservice and which problems can solve? Is microservice just another SOA architecture?
13:40 Process, Motivations and Issues for migrating to Microservices.
14:15 Work Group Formation
14:25 Discussion and classification of agile best practices, failure cases, advantages and disadvantages in adopting Microservices in agile contexts.
14:45 Coffee Break
15:30 WG summary and presentation of results
15:45 Microservices Advantages and Disadvantages: a survey on industrial case studies
16:00 Wrap Up and Conclusions