Best Practices and Lessons Learned in Microservices

Workshop Chair(s): Julia Rubin , Yingying Wang , Harshavardhan Kadiyala , John Steinbacher , Tony Erwin
Theme: Cloud Computing
Date: Monday, November 4th ( Afternoon)
Room: Evergreen
Format: Panel
Level: Beginner
Description: 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.
15:15 - 15:45 From Monolith to Microservices;

- Speaker: Anthony Erwin, Lead Architect Cloud UI Platform, IBM USA

15:45 - 16:15: Lessons Learned from Deploying Microservices: An Exploratory Study

- Speaker: Yingying Wang, the University of British Columbia, Canada

16:15 - 17:15: Panel, group discussion

- Anthony Erwin, Lead Architect Cloud UI Platform, IBM;
- Eyal Sivan, Senior Director, Enterprise Architecture, CIBC;
- Farnoush Kahani, Cloud and Cloud Native Strategy Practice Lead, Cgi Management Consultant Inc.