Microservice-based architecture is an approach to developing a single application as a suite of independent services. The services run in separate processes and communicate with each other via lightweight language-agnostic protocols, such as HTTP REST. The services are split following business capabilities; each service has a fully automated pipeline and is independently deployable.

Microservices aim at shortening the development lifecycle while improving the quality, availability, and scalability of applications at runtime. From the development perspective, cutting one big application into small independent pieces reinforces the component abstraction, and makes it easier for the system to maintain clear boundaries between components. At runtime, microservices can be individually scaled by adding more instances of those microservices that experience increasing traffic.

Due to these advantages, microservice-based architectures are now becoming increasingly popular in industry. Examples of companies that have been using microservices include Amazon, Netflix, IBM, Uber, LinkedIn, Groupon, and eBay.

Yet, adopting microservice-based architectures and implementing it “right” is no a trivial endeavour. Just “jumping on the microservices trend” and expecting that the transition itself, together with the adoption of advanced technology, such as Docker and Kubernetes, will allow companies to achieve significant improvements is a false belief.

In this workshop, we intend to explore best practices, lessons learned, and technical challenges practitioners face when adopting and implementing microservices. These include considerations for identifying the right service granularity and topology, issues related to synchronization and constancy, security of microservices, performance debugging, efficient monitoring and troubleshooting, and more.

Our goal is to gather researchers and practitioners interested in exchanging ideas on the topic. For practitioners, the workshop will provide venue to learn from each other, borrow successful ideas, and avoid common mistakes. For researchers, a description of current practices and challenges practitioners face can inspire novel software engineering methods and techniques.

The workshop will be structured as a series panel discussions and invited talks by participants from industry and academia.